@jxsuite/studio 6.1.1 → 8.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/dist/chunks/2020-5wtzce5g.js +4 -0
- package/dist/chunks/{action-group-2mqby73c.js → action-group-4aan7g6g.js} +3 -3
- package/dist/chunks/adapter-5tphg7xe.js +4 -0
- package/dist/chunks/add-new-flow-psym14sn.js +4 -0
- package/dist/chunks/cf-account-picker-haqazq5r.js +4 -0
- package/dist/chunks/cf-settings-h2wrh6hq.js +4 -0
- package/dist/chunks/color-area-6rbra5dy.js +4 -0
- package/dist/chunks/color-field-gy56c94g.js +4 -0
- package/dist/chunks/color-m7r1vk54.js +4 -0
- package/dist/chunks/color-slider-sqqdyf6c.js +4 -0
- package/dist/chunks/combobox-72h32ejk.js +4 -0
- package/dist/chunks/components-r22xca09.js +4 -0
- package/dist/chunks/content-source-mmppmcyg.js +4 -0
- package/dist/chunks/convert-to-repeater-he70fc2b.js +4 -0
- package/dist/chunks/dialog-c4x05vyx.js +4 -0
- package/dist/chunks/editor-ccd9jwsa.js +4 -0
- package/dist/chunks/entry-commands-6qxz9e8p.js +4 -0
- package/dist/chunks/extension-sections-0egb88dm.js +4 -0
- package/dist/chunks/file-ops-qnab36ek.js +4 -0
- package/dist/chunks/files-rcn56qvm.js +4 -0
- package/dist/chunks/format-host-yxz0kjjs.js +4 -0
- package/dist/chunks/fs-events-d1qxq4z4.js +4 -0
- package/dist/chunks/grid-open-4z1g062t.js +4 -0
- package/dist/chunks/grid-view-qg1b5eqx.js +51 -0
- package/dist/chunks/icons-63bjtbs7.js +4 -0
- package/dist/chunks/iframe-entry-2zggzajv.js +5 -0
- package/dist/chunks/iframe-entry-76j8vwwx.js +5 -0
- package/dist/chunks/iframe-entry-99nr5zfb.js +5 -0
- package/dist/chunks/iframe-entry-pkgmcgp0.js +5 -0
- package/dist/chunks/iframe-host-ssv7kyj0.js +4 -0
- package/dist/chunks/{index-2veqmnhr.js → index-32eqzv1k.js} +3 -3
- package/dist/chunks/index-f0jn7nnp.js +4 -0
- package/dist/chunks/{javascript-8nbvs12s.js → javascript-pjp734q4.js} +3 -3
- package/dist/chunks/jsonMode-njkvsa02.js +13 -0
- package/dist/chunks/jx-validate-ttasrbh7.js +4 -0
- package/dist/chunks/layers-bgyr11tr.js +4 -0
- package/dist/chunks/layers-panel-7ez66zeq.js +4 -0
- package/dist/chunks/listbox-c421cf8c.js +4 -0
- package/dist/chunks/lit-html-v9gh687x.js +4 -0
- package/dist/chunks/media-library-sq468wts.js +4 -0
- package/dist/chunks/media-picker-shfe59pt.js +4 -0
- package/dist/chunks/menu-bdpzbfvs.js +4 -0
- package/dist/chunks/monaco-binding-vq1hgnn0.js +4 -0
- package/dist/chunks/monaco-buffer-3afgwvbp.js +4 -0
- package/dist/chunks/monaco-setup-xrd2cbkp.js +4 -0
- package/dist/chunks/notify-kzrjr3fv.js +4 -0
- package/dist/chunks/number-field-y62xq0ty.js +4 -0
- package/dist/chunks/parse-v77xtwv7.js +4 -0
- package/dist/chunks/platform-7v4rtd7m.js +4 -0
- package/dist/chunks/popover-b89sfej7.js +4 -0
- package/dist/chunks/publish-panel-2z9gw8ee.js +4 -0
- package/dist/chunks/publish-quick-qx2455cj.js +4 -0
- package/dist/chunks/publish-workspace-wrc1dgwx.js +4 -0
- package/dist/chunks/quick-search-n0t0eqxb.js +4 -0
- package/dist/chunks/references-9547rg5s.js +4 -0
- package/dist/chunks/right-panel-wsgnr9pn.js +4 -0
- package/dist/chunks/select-rzds841e.js +4 -0
- package/dist/chunks/source-control-kwktr9y6.js +4 -0
- package/dist/chunks/split-c9zfdgxf.js +4 -0
- package/dist/chunks/studio-03ct6yfv.js +9 -0
- package/dist/chunks/studio-07rcfje3.js +5 -0
- package/dist/chunks/studio-3e54qh39.js +7 -0
- package/dist/chunks/studio-3exxhz5g.js +5 -0
- package/dist/chunks/studio-3q40e3rj.js +5 -0
- package/dist/chunks/studio-3qeh9t0h.js +6 -0
- package/dist/chunks/studio-3qqjeep5.js +6 -0
- package/dist/chunks/studio-43sd2mam.js +4 -0
- package/dist/chunks/studio-4hp8pkyt.js +5 -0
- package/dist/chunks/studio-58xg6j2q.js +9 -0
- package/dist/chunks/studio-5g0rprdt.js +7 -0
- package/dist/chunks/studio-6m380wp7.js +5 -0
- package/dist/chunks/studio-80jyh1xh.js +4 -0
- package/dist/chunks/studio-83mk4bgg.js +9 -0
- package/dist/chunks/{studio-kggey1jt.js → studio-881z1xrx.js} +4 -4
- package/dist/chunks/studio-8m0y2qe7.js +5 -0
- package/dist/chunks/studio-8tr6cfrc.js +5 -0
- package/dist/chunks/studio-8vcvfs7r.js +6 -0
- package/dist/chunks/studio-9tmebf0s.js +5 -0
- package/dist/chunks/studio-a2bvaptz.js +5 -0
- package/dist/chunks/studio-b7y5mr30.js +5 -0
- package/dist/chunks/studio-bavb31r0.js +5 -0
- package/dist/chunks/studio-bbe4c90a.js +5 -0
- package/dist/chunks/studio-c05wdnt3.js +5 -0
- package/dist/chunks/studio-ccv2svc6.js +5 -0
- package/dist/chunks/studio-d5grtb9e.js +16 -0
- package/dist/chunks/studio-df0baea9.js +5 -0
- package/dist/chunks/studio-dgk4dqtx.js +7 -0
- package/dist/chunks/studio-e1g64q43.js +5 -0
- package/dist/chunks/studio-ed1hp6zf.js +6 -0
- package/dist/chunks/studio-ed3xx40h.js +7 -0
- package/dist/chunks/studio-f14e1zdj.js +5 -0
- package/dist/chunks/studio-fbhxxc5f.js +5 -0
- package/dist/chunks/studio-fyh0jc96.js +5 -0
- package/dist/chunks/studio-gcxk20n7.js +5 -0
- package/dist/chunks/studio-jaaz8ce9.js +5 -0
- package/dist/chunks/{studio-8grwxtqk.js → studio-jcnsdaep.js} +4 -4
- package/dist/chunks/studio-jsgf2q5k.js +7 -0
- package/dist/chunks/{studio-1q1sh2ax.js → studio-k3xxbagr.js} +3 -3
- package/dist/chunks/studio-k7evxqh4.js +5 -0
- package/dist/chunks/studio-kt3pjkwd.js +5 -0
- package/dist/chunks/studio-m8g16bgz.js +5 -0
- package/dist/chunks/studio-mn0476ag.js +5 -0
- package/dist/chunks/studio-mx1smyq0.js +5 -0
- package/dist/chunks/studio-n0c5h6mf.js +5 -0
- package/dist/chunks/{studio-rv11kfwa.js → studio-nh6d342n.js} +7 -7
- package/dist/chunks/studio-nqxqf8p2.js +4 -0
- package/dist/chunks/studio-p4nrkvqr.js +5 -0
- package/dist/chunks/{studio-h46vtzk8.js → studio-pbxa5fpc.js} +4 -4
- package/dist/chunks/studio-pgmvdv7z.js +7 -0
- package/dist/chunks/studio-ph84avkf.js +5 -0
- package/dist/chunks/{studio-wszjyh0j.js → studio-q0mvbaq6.js} +4 -4
- package/dist/chunks/studio-q0tccd43.js +5 -0
- package/dist/chunks/studio-q7rtx6zq.js +14 -0
- package/dist/chunks/{studio-pre0skq6.js → studio-qgh13jtz.js} +4 -4
- package/dist/chunks/studio-qmn1xc24.js +5 -0
- package/dist/chunks/studio-qwdqwkj0.js +5 -0
- package/dist/chunks/{studio-t6b6qe31.js → studio-r5qy30vx.js} +4 -4
- package/dist/chunks/studio-rj9eamf8.js +5 -0
- package/dist/chunks/studio-rptgsk96.js +5 -0
- package/dist/chunks/studio-rthyg42z.js +928 -0
- package/dist/chunks/studio-s19tp1xr.js +5 -0
- package/dist/chunks/studio-s32578pn.js +5 -0
- package/dist/chunks/studio-svb7yyve.js +5 -0
- package/dist/chunks/studio-syreb644.js +5 -0
- package/dist/chunks/studio-tf9jryb1.js +10 -0
- package/dist/chunks/studio-tfkznv39.js +5 -0
- package/dist/chunks/studio-tft6r105.js +5 -0
- package/dist/chunks/studio-txf2kysx.js +5 -0
- package/dist/chunks/studio-v8867ddv.js +12 -0
- package/dist/chunks/studio-vxq7fcvv.js +5 -0
- package/dist/chunks/studio-w4rz9hdk.js +5 -0
- package/dist/chunks/studio-wbcjbhy1.js +9 -0
- package/dist/chunks/studio-wc649wss.js +5 -0
- package/dist/chunks/studio-wys23mxz.js +5 -0
- package/dist/chunks/studio-x1x167jh.js +5 -0
- package/dist/chunks/studio-x9hsze61.js +5 -0
- package/dist/chunks/studio-y0n7yxea.js +9 -0
- package/dist/chunks/studio-y3ahhdpx.js +5 -0
- package/dist/chunks/studio-z97c48fk.js +5 -0
- package/dist/chunks/studio-zat62m0c.js +5 -0
- package/dist/chunks/studio-zcd2e7yz.js +5 -0
- package/dist/chunks/studio-zz9qe3rw.js +64 -0
- package/dist/chunks/swatch-group-ewh24n1f.js +4 -0
- package/dist/chunks/tabs-f5cw3tgp.js +4 -0
- package/dist/chunks/textfield-wewc8rq2.js +4 -0
- package/dist/chunks/toast-1gv0h53h.js +4 -0
- package/dist/chunks/toast-host-1yg5ar8d.js +4 -0
- package/dist/chunks/{toolbar-2nnzqhrj.js → toolbar-44cm5cta.js} +3 -3
- package/dist/chunks/tooltip-yypz28gq.js +4 -0
- package/dist/chunks/tree-9xa4hm7n.js +4 -0
- package/dist/chunks/tsMode-epyfz1hv.js +14 -0
- package/dist/chunks/workspace-dz7nxfhv.js +4 -0
- package/dist/chunks/workspace-home-xsd7hkjw.js +4 -0
- package/dist/chunks/ws-client-bv552sfx.js +4 -0
- package/dist/iframe-entry.js +20 -16
- package/dist/manifest.json +77 -63
- package/dist/studio.js +106 -107
- package/dist/workers/ts.worker.js +3 -3
- package/package.json +17 -16
- package/src/about/about-modal.ts +4 -3
- package/src/account/action-flow.ts +45 -38
- package/src/account-status.ts +7 -2
- package/src/browse/component-examples.ts +272 -0
- package/src/browse/library-commands.ts +64 -104
- package/src/browse/library-layouts.ts +270 -53
- package/src/browse/library-model.ts +194 -134
- package/src/browse/library-pane.ts +748 -440
- package/src/browse/library-preview.ts +161 -26
- package/src/browse/library-source.ts +308 -41
- package/src/browse/preview-root.ts +78 -0
- package/src/browse/preview-style.ts +155 -0
- package/src/canvas/asset-refs.ts +40 -10
- package/src/canvas/asset-resolve.ts +19 -23
- package/src/canvas/canvas-helpers.ts +7 -6
- package/src/canvas/canvas-live-render.ts +260 -77
- package/src/canvas/canvas-origin.ts +37 -12
- package/src/canvas/canvas-page-context.ts +112 -0
- package/src/canvas/canvas-patcher.ts +30 -30
- package/src/canvas/canvas-perf.ts +11 -5
- package/src/canvas/canvas-render.ts +175 -148
- package/src/canvas/canvas-surface.ts +5 -3
- package/src/canvas/canvas-utils.ts +147 -61
- package/src/canvas/dialog-path.ts +9 -4
- package/src/canvas/dialog-state.ts +1 -2
- package/src/canvas/diff-marks.ts +9 -16
- package/src/canvas/diff-toolbar.ts +8 -7
- package/src/canvas/edit-width-drag.ts +4 -1
- package/src/canvas/edit-width.ts +1 -3
- package/src/canvas/iframe-channel.ts +27 -13
- package/src/canvas/iframe-drop.ts +120 -12
- package/src/canvas/iframe-editable-root.ts +29 -16
- package/src/canvas/iframe-entry.ts +104 -75
- package/src/canvas/iframe-eval.ts +73 -49
- package/src/canvas/iframe-host.ts +269 -158
- package/src/canvas/iframe-inline-edit.ts +49 -30
- package/src/canvas/iframe-insert.ts +5 -4
- package/src/canvas/iframe-interaction.ts +30 -25
- package/src/canvas/iframe-keys.ts +11 -0
- package/src/canvas/iframe-overlay.ts +1 -1
- package/src/canvas/iframe-patch.ts +25 -21
- package/src/canvas/iframe-position.ts +12 -6
- package/src/canvas/iframe-protocol.ts +36 -21
- package/src/canvas/iframe-render.ts +84 -35
- package/src/canvas/iframe-slash.ts +24 -11
- package/src/canvas/iframe-subtree.ts +10 -3
- package/src/canvas/npm-modules.ts +22 -0
- package/src/canvas/path-mapping.ts +19 -12
- package/src/canvas/popover-path.ts +7 -3
- package/src/canvas/popover-state.ts +1 -2
- package/src/canvas/preview-navigate.ts +16 -0
- package/src/canvas/repeater-sources.ts +200 -0
- package/src/canvas/serialize-scope.ts +13 -5
- package/src/canvas/stage-scrollbar.ts +7 -2
- package/src/canvas/surface-registry.ts +27 -3
- package/src/collab/collab-commands.ts +7 -2
- package/src/collab/collab-session.ts +84 -45
- package/src/collab/collab-state.ts +4 -3
- package/src/collab/monaco-binding.ts +16 -13
- package/src/collab/monaco-cursors.ts +5 -2
- package/src/commands/app-commands.ts +16 -6
- package/src/commands/budget.ts +13 -11
- package/src/commands/command-args.ts +103 -71
- package/src/commands/context.ts +55 -28
- package/src/commands/defaults.ts +69 -45
- package/src/commands/keymap.ts +56 -43
- package/src/commands/levels.ts +14 -8
- package/src/commands/live-context.ts +9 -7
- package/src/commands/reference.ts +2 -1
- package/src/commands/registry.ts +22 -11
- package/src/commands/run-reported.ts +15 -10
- package/src/component-props.ts +46 -30
- package/src/content/collection-match.ts +11 -9
- package/src/content/collection-pages.ts +412 -0
- package/src/content/content-collections.ts +270 -0
- package/src/content/draft-state.ts +4 -3
- package/src/content/entry-commands.ts +54 -62
- package/src/content/entry-editor.ts +137 -32
- package/src/content/entry-fields.ts +25 -8
- package/src/content/entry-inspector.ts +225 -0
- package/src/content/entry-model.ts +38 -15
- package/src/content/entry-open.ts +80 -0
- package/src/content/entry-summaries.ts +440 -0
- package/src/content/file-record-ids.ts +80 -0
- package/src/content/file-records.ts +125 -0
- package/src/content/page-summaries.ts +129 -0
- package/src/content/record-entry.ts +201 -0
- package/src/content/writing-banner.ts +177 -0
- package/src/create/add-new-commands.ts +185 -0
- package/src/create/add-new-flow.ts +1116 -0
- package/src/create/add-new.ts +1014 -0
- package/src/create/element-name.ts +121 -0
- package/src/editor/canvas-context-menu.ts +1 -2
- package/src/editor/canvas-slash-bridge.ts +3 -6
- package/src/editor/content-slice.ts +16 -14
- package/src/editor/context-menu.ts +35 -22
- package/src/editor/convert-targets.ts +30 -35
- package/src/editor/convert-to-component.ts +78 -48
- package/src/editor/convert-to-repeater.ts +34 -22
- package/src/editor/editable-tags.ts +17 -2
- package/src/editor/file-drop-action.ts +29 -22
- package/src/editor/inline-edit-apply.ts +79 -17
- package/src/editor/inline-edit.ts +76 -50
- package/src/editor/inline-format.ts +59 -56
- package/src/editor/inline-link.ts +40 -15
- package/src/editor/insert-component.ts +91 -0
- package/src/editor/insert-zone-action.ts +14 -5
- package/src/editor/merge-tags.ts +58 -19
- package/src/editor/repeater-scope.ts +39 -28
- package/src/editor/shortcuts.ts +76 -42
- package/src/editor/slash-menu.ts +52 -14
- package/src/files/asset-versions.ts +4 -4
- package/src/files/components.ts +89 -20
- package/src/files/elements.ts +5 -6
- package/src/files/file-ops.ts +92 -41
- package/src/files/files.ts +248 -239
- package/src/files/fs-events.ts +18 -7
- package/src/files/media-meta.ts +97 -2
- package/src/files/media-paths.ts +3 -0
- package/src/files/media-types.ts +55 -0
- package/src/files/media-upload.ts +209 -52
- package/src/files/new-file-name.ts +156 -0
- package/src/files/serialize-document.ts +15 -5
- package/src/format/constraints.ts +1 -1
- package/src/format/convert-file.ts +27 -13
- package/src/format/format-choices.ts +2 -1
- package/src/format/format-host.ts +91 -50
- package/src/github/github-auth-status.ts +27 -3
- package/src/github/github-auth.ts +21 -11
- package/src/github/github-publish.ts +28 -23
- package/src/grid/cell-editors.ts +46 -31
- package/src/grid/cell-popovers.ts +5 -3
- package/src/grid/edit-buffer.ts +10 -9
- package/src/grid/grid-controller.ts +25 -23
- package/src/grid/grid-layout.ts +21 -5
- package/src/grid/grid-open.ts +3 -33
- package/src/grid/grid-panel.ts +65 -6
- package/src/grid/grid-reveal.ts +34 -0
- package/src/grid/grid-source.ts +9 -31
- package/src/grid/grid-view.ts +45 -23
- package/src/grid/redirects-grid.ts +14 -5
- package/src/grid/redirects.ts +16 -14
- package/src/grid/schema-columns.ts +25 -19
- package/src/grid/sources/connector-source.ts +47 -20
- package/src/grid/sources/content-source.ts +100 -31
- package/src/grid/sources/csv-file-source.ts +2 -2
- package/src/grid/tabulator-tables.d.ts +61 -34
- package/src/hosting/document.ts +2 -2
- package/src/hosting/stage.ts +7 -7
- package/src/i18n/i18n-commands.ts +3 -3
- package/src/media/media-commands.ts +181 -0
- package/src/media/media-library-model.ts +232 -0
- package/src/media/media-library.ts +1283 -0
- package/src/media/media-pane.ts +51 -20
- package/src/new-project/add-repo-modal.ts +20 -19
- package/src/new-project/import-tab.ts +10 -14
- package/src/new-project/location-fields.ts +2 -1
- package/src/new-project/new-project-modal.ts +12 -9
- package/src/packages/jxsuite-update.ts +4 -3
- package/src/packages/pull-package-sync.ts +26 -25
- package/src/page-params.ts +97 -68
- package/src/panels/activity-panel.ts +38 -14
- package/src/panels/ai-chat/attached-context.ts +13 -7
- package/src/panels/ai-chat/chat-markdown.ts +8 -8
- package/src/panels/ai-chat/chat-view.ts +80 -73
- package/src/panels/ai-chat/composer.ts +30 -33
- package/src/panels/ai-chat/sessions-view.ts +1 -2
- package/src/panels/ai-panel.ts +23 -20
- package/src/panels/block-action-bar.ts +57 -46
- package/src/panels/bottom-dock.ts +5 -3
- package/src/panels/canvas-dnd-bridge.ts +36 -26
- package/src/panels/chat-panel.ts +6 -6
- package/src/panels/collections-panel.ts +306 -0
- package/src/panels/component-preview.ts +35 -13
- package/src/panels/data-explorer.ts +63 -26
- package/src/panels/data-grid.ts +18 -11
- package/src/panels/dnd.ts +115 -138
- package/src/panels/editors.ts +52 -21
- package/src/panels/elements-panel.ts +19 -5
- package/src/panels/empty-state.ts +2 -2
- package/src/panels/events-panel.ts +84 -69
- package/src/panels/formula-workspace.ts +78 -54
- package/src/panels/frontmatter-fields.ts +33 -28
- package/src/panels/git-diff-open.ts +10 -6
- package/src/panels/head-panel.ts +488 -202
- package/src/panels/i18n-panel.ts +20 -12
- package/src/panels/imports-panel.ts +25 -47
- package/src/panels/jump-bar.ts +75 -31
- package/src/panels/layers-panel.ts +130 -101
- package/src/panels/left-panel.ts +25 -11
- package/src/panels/navigator-panels.ts +23 -11
- package/src/panels/pane-context.ts +140 -49
- package/src/panels/pane-grid.ts +55 -26
- package/src/panels/panel-registry.ts +36 -46
- package/src/panels/properties-panel.ts +182 -124
- package/src/panels/quick-search.ts +53 -31
- package/src/panels/right-panel.ts +201 -45
- package/src/panels/seo-modal.ts +54 -125
- package/src/panels/settings-menu.ts +63 -61
- package/src/panels/settings-pane.ts +268 -162
- package/src/panels/signals-panel.ts +156 -135
- package/src/panels/site-model.ts +367 -0
- package/src/panels/site-panel.ts +638 -0
- package/src/panels/statement-editor.ts +230 -140
- package/src/panels/style-panel.ts +253 -206
- package/src/panels/style-utils.ts +114 -51
- package/src/panels/stylebook-doc.ts +195 -60
- package/src/panels/stylebook-layers-panel.ts +48 -89
- package/src/panels/stylebook-panel.ts +60 -27
- package/src/panels/styles-panel.ts +327 -0
- package/src/panels/tab-drop.ts +27 -11
- package/src/panels/tab-strip.ts +143 -49
- package/src/platform-errors.ts +57 -43
- package/src/platform.ts +59 -31
- package/src/platforms/cloud.ts +373 -176
- package/src/platforms/default-platform.ts +14 -8
- package/src/platforms/devserver.ts +180 -142
- package/src/platforms/read-batcher.ts +16 -8
- package/src/project-list.ts +2 -1
- package/src/publish/deploy-checklist.ts +20 -9
- package/src/publish/pages-service.ts +66 -27
- package/src/publish/publish-changes.ts +491 -0
- package/src/publish/publish-commands.ts +88 -22
- package/src/publish/publish-ids.ts +49 -0
- package/src/publish/publish-panel.ts +10 -6
- package/src/publish/publish-quick.ts +148 -0
- package/src/publish/publish-workspace.ts +926 -0
- package/src/publish/source-control.ts +907 -0
- package/src/recent-projects.ts +15 -8
- package/src/resize-edges.ts +26 -36
- package/src/services/a11y-report.ts +26 -19
- package/src/services/agent-seed.ts +23 -11
- package/src/services/ai-ask.ts +9 -12
- package/src/services/ai-command-tools.ts +68 -62
- package/src/services/ai-import-tools.ts +80 -67
- package/src/services/ai-models.ts +17 -13
- package/src/services/ai-project-tools.ts +68 -32
- package/src/services/ai-session-store.ts +19 -10
- package/src/services/ai-system-prompt.ts +46 -20
- package/src/services/ai-tools.ts +71 -27
- package/src/services/ai-write-report.ts +20 -12
- package/src/services/ai-writes.ts +4 -4
- package/src/services/automation.ts +74 -51
- package/src/services/cem-export.ts +149 -58
- package/src/services/cf-settings.ts +4 -4
- package/src/services/clock.ts +6 -1
- package/src/services/code-services.ts +37 -31
- package/src/services/connection.ts +2 -2
- package/src/services/context-manager.ts +14 -10
- package/src/services/context-resolver.ts +20 -8
- package/src/services/data-service.ts +19 -15
- package/src/services/directory-picker.ts +20 -14
- package/src/services/document-assistant.ts +39 -19
- package/src/services/gated-registry.ts +10 -6
- package/src/services/harness/chat-reducer.ts +23 -1
- package/src/services/import-client.ts +91 -38
- package/src/services/import-seed.ts +8 -2
- package/src/services/jx-validate.ts +28 -31
- package/src/services/live-preview.ts +0 -0
- package/src/services/live-surfaces.ts +6 -3
- package/src/services/model-uri.ts +10 -2
- package/src/services/module-preloads.ts +12 -8
- package/src/services/monaco-buffer.ts +43 -24
- package/src/services/monaco-lazy.ts +7 -8
- package/src/services/monaco-setup.ts +23 -16
- package/src/services/notify.ts +44 -17
- package/src/services/popover-report.ts +25 -10
- package/src/services/preview-eval.ts +20 -8
- package/src/services/profile.ts +13 -6
- package/src/services/project-path.ts +13 -10
- package/src/services/references.ts +0 -0
- package/src/services/render-critic.ts +29 -9
- package/src/services/settings/definitions.ts +25 -14
- package/src/services/settings/kernel.ts +13 -4
- package/src/services/settings/write-queue.ts +9 -9
- package/src/services/token-lint.ts +12 -10
- package/src/services/tool-executor.ts +17 -5
- package/src/services/tool-outcomes.ts +44 -24
- package/src/services/trusted-types.ts +24 -7
- package/src/settings/contexts-section.ts +11 -8
- package/src/settings/contributed-section.ts +128 -70
- package/src/settings/css-vars-editor.ts +119 -32
- package/src/settings/defs-editor.ts +38 -35
- package/src/settings/developer-panels.ts +43 -0
- package/src/settings/extension-rows.ts +16 -8
- package/src/settings/extension-sections.ts +42 -14
- package/src/settings/extensions-section.ts +4 -1
- package/src/settings/general-settings.ts +101 -28
- package/src/settings/locales-section.ts +20 -12
- package/src/settings/preferences-dialog.ts +17 -7
- package/src/settings/preferences-keymap.ts +7 -5
- package/src/settings/preferences-sections.ts +11 -5
- package/src/settings/project-sections.ts +28 -11
- package/src/settings/schema-field-ui.ts +12 -1
- package/src/settings/section-registry.ts +116 -11
- package/src/settings/settings-dialog.ts +192 -0
- package/src/settings/settings-document.ts +186 -166
- package/src/shell/tree.ts +6 -5
- package/src/shell.ts +536 -477
- package/src/site-context.ts +101 -32
- package/src/state.ts +68 -57
- package/src/store.ts +54 -34
- package/src/studio.ts +219 -116
- package/src/style/live-preview.ts +1 -1
- package/src/style/project-styles.ts +40 -7
- package/src/style/stylebook-specimens.ts +89 -0
- package/src/style/stylebook-target.ts +26 -0
- package/src/style/tag-inheritance.ts +105 -0
- package/src/style/token-ref.ts +5 -4
- package/src/style/variables-focus.ts +61 -0
- package/src/style/variables-view.ts +235 -0
- package/src/surfaces/about.ts +18 -19
- package/src/surfaces/add-new.json +1482 -0
- package/src/surfaces/add-new.ts +325 -0
- package/src/surfaces/add-repo.ts +17 -19
- package/src/surfaces/ai-chat.ts +33 -38
- package/src/surfaces/ai-credentials-form.ts +6 -16
- package/src/surfaces/ai-managed-connect.ts +3 -4
- package/src/surfaces/ai-model-picker.ts +3 -5
- package/src/surfaces/block-action-bar.ts +22 -11
- package/src/surfaces/boot-failure.json +4 -3
- package/src/surfaces/boot-failure.ts +4 -5
- package/src/surfaces/bottom-dock.json +1 -1
- package/src/surfaces/bottom-dock.ts +9 -18
- package/src/surfaces/canvas-stage.json +30 -19
- package/src/surfaces/canvas-stage.ts +17 -16
- package/src/surfaces/cf-account-picker.ts +17 -18
- package/src/surfaces/collections-panel.json +615 -0
- package/src/surfaces/collections-panel.ts +168 -0
- package/src/surfaces/commandbar.json +241 -96
- package/src/surfaces/commandbar.ts +145 -105
- package/src/surfaces/convert-repeater.ts +17 -19
- package/src/surfaces/data-actions.ts +9 -7
- package/src/surfaces/dialog.ts +26 -28
- package/src/surfaces/diff-toolbar.ts +9 -7
- package/src/surfaces/empty-state.json +1 -1
- package/src/surfaces/empty-state.ts +7 -10
- package/src/surfaces/entry-editor.json +136 -0
- package/src/surfaces/entry-editor.ts +35 -11
- package/src/surfaces/entry-inspector.json +371 -0
- package/src/surfaces/entry-inspector.ts +143 -0
- package/src/surfaces/expression-editor.ts +11 -25
- package/src/surfaces/files-panel.ts +27 -14
- package/src/surfaces/formula-palette.ts +4 -5
- package/src/surfaces/github-auth.ts +16 -20
- package/src/surfaces/github-publish.ts +17 -22
- package/src/surfaces/grid-cell.ts +30 -31
- package/src/surfaces/grid-open.ts +10 -14
- package/src/surfaces/grid-panel.ts +13 -9
- package/src/surfaces/grid-replace.ts +13 -13
- package/src/surfaces/grid-views.ts +15 -18
- package/src/surfaces/inspector-dock.json +162 -14
- package/src/surfaces/inspector-dock.ts +59 -31
- package/src/surfaces/jump-bar.ts +5 -6
- package/src/surfaces/jxsuite-update.ts +16 -22
- package/src/surfaces/library-pane.json +670 -437
- package/src/surfaces/library-pane.ts +111 -77
- package/src/surfaces/logic-panel.ts +17 -30
- package/src/surfaces/logic-workspace.ts +13 -15
- package/src/surfaces/media-browser.json +62 -6
- package/src/surfaces/media-browser.ts +26 -11
- package/src/surfaces/media-field.json +1 -1
- package/src/surfaces/media-field.ts +4 -5
- package/src/surfaces/media-library.json +1586 -0
- package/src/surfaces/media-library.ts +282 -0
- package/src/surfaces/media-pane.ts +8 -7
- package/src/surfaces/media-pick-dialog.json +71 -0
- package/src/surfaces/media-pick-dialog.ts +132 -0
- package/src/surfaces/menu.ts +47 -23
- package/src/surfaces/navigator-dock.ts +11 -12
- package/src/surfaces/new-project.ts +27 -26
- package/src/surfaces/pane-context.json +144 -77
- package/src/surfaces/pane-context.ts +44 -25
- package/src/surfaces/pane-grid.ts +15 -10
- package/src/surfaces/panel-activity.ts +5 -6
- package/src/surfaces/panel-data.ts +3 -4
- package/src/surfaces/panel-deploy-checklist.json +12 -6
- package/src/surfaces/panel-deploy-checklist.ts +8 -7
- package/src/surfaces/panel-elements.ts +5 -7
- package/src/surfaces/panel-i18n.ts +5 -7
- package/src/surfaces/panel-imports.ts +6 -13
- package/src/surfaces/panel-outline.ts +25 -19
- package/src/surfaces/panel-page.json +72 -2
- package/src/surfaces/panel-page.ts +49 -25
- package/src/surfaces/panel-problems.ts +5 -7
- package/src/surfaces/panel-signals.json +1 -1
- package/src/surfaces/panel-signals.ts +25 -39
- package/src/surfaces/panel-stylebook-layers.json +71 -204
- package/src/surfaces/panel-stylebook-layers.ts +5 -29
- package/src/surfaces/preferences.json +120 -48
- package/src/surfaces/preferences.ts +29 -11
- package/src/surfaces/progress-modal.ts +15 -9
- package/src/surfaces/properties-panel.json +1 -1
- package/src/surfaces/properties-panel.ts +20 -42
- package/src/surfaces/publish-quick.json +428 -0
- package/src/surfaces/publish-quick.ts +165 -0
- package/src/surfaces/publish-workspace.json +2892 -0
- package/src/surfaces/publish-workspace.ts +391 -0
- package/src/surfaces/publish.ts +18 -18
- package/src/surfaces/push-plan.ts +7 -8
- package/src/surfaces/rail.json +1 -159
- package/src/surfaces/rail.ts +22 -79
- package/src/surfaces/reference-field.ts +11 -15
- package/src/surfaces/schema-builder.ts +16 -22
- package/src/surfaces/schema-form.json +10 -2
- package/src/surfaces/schema-form.ts +17 -25
- package/src/surfaces/secret-field.ts +9 -6
- package/src/surfaces/seo.json +1 -1
- package/src/surfaces/seo.ts +21 -15
- package/src/surfaces/settings-contexts.ts +9 -7
- package/src/surfaces/settings-contributed.json +5 -5
- package/src/surfaces/settings-contributed.ts +32 -12
- package/src/surfaces/settings-css-vars.json +44 -36
- package/src/surfaces/settings-css-vars.ts +82 -16
- package/src/surfaces/settings-defs.json +2 -2
- package/src/surfaces/settings-defs.ts +17 -21
- package/src/surfaces/settings-deploy.json +2 -15
- package/src/surfaces/settings-deploy.ts +9 -16
- package/src/surfaces/settings-dialog.json +51 -0
- package/src/surfaces/settings-dialog.ts +169 -0
- package/src/surfaces/settings-extensions.ts +5 -6
- package/src/surfaces/settings-head.ts +33 -39
- package/src/surfaces/settings-locales.ts +8 -20
- package/src/surfaces/settings-overview.json +3 -3
- package/src/surfaces/settings-overview.ts +14 -8
- package/src/surfaces/settings-packages.ts +8 -7
- package/src/surfaces/settings-pane.json +269 -46
- package/src/surfaces/settings-pane.ts +88 -36
- package/src/surfaces/settings-rawjson.ts +5 -6
- package/src/surfaces/shell.json +2 -1
- package/src/surfaces/shell.ts +1 -2
- package/src/surfaces/site-panel.json +1029 -0
- package/src/surfaces/site-panel.ts +233 -0
- package/src/surfaces/slash-menu.json +63 -21
- package/src/surfaces/slash-menu.ts +42 -9
- package/src/surfaces/statements.ts +13 -18
- package/src/surfaces/statusbar.ts +56 -29
- package/src/surfaces/style-panel.ts +18 -31
- package/src/surfaces/stylebook-chrome.ts +3 -5
- package/src/surfaces/styles-panel.json +735 -0
- package/src/surfaces/styles-panel.ts +195 -0
- package/src/surfaces/styles-variables.json +149 -0
- package/src/surfaces/styles-variables.ts +145 -0
- package/src/surfaces/tab-strip.json +4 -4
- package/src/surfaces/tab-strip.ts +14 -13
- package/src/surfaces/target-line.ts +6 -7
- package/src/surfaces/welcome.ts +6 -8
- package/src/surfaces/writing-banner.json +94 -0
- package/src/surfaces/writing-banner.ts +80 -0
- package/src/tabs/bare-repeaters.ts +101 -0
- package/src/tabs/patch-ops.ts +4 -3
- package/src/tabs/project-config.ts +32 -21
- package/src/tabs/selection.ts +36 -8
- package/src/tabs/tab.ts +99 -48
- package/src/tabs/transact.ts +98 -53
- package/src/types.ts +53 -43
- package/src/ui/ai-credentials-form.ts +10 -13
- package/src/ui/ai-model-picker.ts +3 -3
- package/src/ui/cf-account-picker.ts +7 -9
- package/src/ui/color-selector.ts +9 -5
- package/src/ui/dynamic-slot.ts +7 -8
- package/src/ui/expression-editor.ts +112 -105
- package/src/ui/form-controls.ts +104 -56
- package/src/ui/formula-catalog.ts +239 -230
- package/src/ui/formula-chips.ts +33 -18
- package/src/ui/layers.ts +57 -31
- package/src/ui/media-picker.ts +300 -47
- package/src/ui/popover-surface.ts +20 -12
- package/src/ui/progress-modal.ts +13 -8
- package/src/ui/regions.ts +14 -12
- package/src/ui/schema-form.ts +372 -97
- package/src/ui/surface.ts +71 -8
- package/src/ui/timing.ts +9 -0
- package/src/ui/value-source.ts +44 -31
- package/src/ui/virtual-window.ts +29 -3
- package/src/utils/base64.ts +6 -4
- package/src/utils/edit-display.ts +366 -111
- package/src/utils/element-selectors.ts +3 -2
- package/src/utils/google-fonts.ts +15 -14
- package/src/utils/inherited-style.ts +18 -20
- package/src/utils/link-target.ts +1 -1
- package/src/utils/local-day.ts +18 -0
- package/src/utils/preview-format.ts +25 -3
- package/src/utils/strip-events.ts +49 -22
- package/src/utils/studio-utils.ts +29 -14
- package/src/view.ts +2 -3
- package/src/workspace/pane-derive.ts +14 -16
- package/src/workspace/session.ts +81 -50
- package/src/workspace/tab-workspace.ts +137 -0
- package/src/workspace/workspace-back.ts +189 -0
- package/src/workspace/workspace-home.ts +133 -0
- package/src/workspace/workspace-ids.ts +129 -0
- package/src/workspace/workspace-switch.ts +372 -0
- package/src/workspace/workspace.ts +165 -47
- package/styles/shell-frame.css +30 -7
- package/styles/shell-frame.json +15 -3
- package/dist/chunks/2020-va2wwra4.js +0 -4
- package/dist/chunks/adapter-f93pafd7.js +0 -4
- package/dist/chunks/cf-account-picker-af1h381v.js +0 -4
- package/dist/chunks/cf-settings-125tdm0w.js +0 -4
- package/dist/chunks/color-area-jqhna8zy.js +0 -4
- package/dist/chunks/color-field-embq5ctg.js +0 -4
- package/dist/chunks/color-fpezvnkt.js +0 -4
- package/dist/chunks/color-slider-1qmw7wqy.js +0 -4
- package/dist/chunks/combobox-773hdzyj.js +0 -4
- package/dist/chunks/components-ax2f1fnn.js +0 -4
- package/dist/chunks/content-source-108aqtk1.js +0 -4
- package/dist/chunks/convert-to-repeater-ry5rmppr.js +0 -4
- package/dist/chunks/dialog-mtm9fq5t.js +0 -4
- package/dist/chunks/editor-pfgdmkb0.js +0 -4
- package/dist/chunks/entry-commands-t0k1q0kx.js +0 -4
- package/dist/chunks/extension-sections-6mwh2hf8.js +0 -4
- package/dist/chunks/file-ops-meej5mqf.js +0 -4
- package/dist/chunks/files-44vp8a2s.js +0 -4
- package/dist/chunks/format-host-7q1petb9.js +0 -4
- package/dist/chunks/fs-events-h2mwnxaz.js +0 -4
- package/dist/chunks/git-panel-zngbymvd.js +0 -4
- package/dist/chunks/grid-view-sx9vynsp.js +0 -51
- package/dist/chunks/icons-p44xhjf0.js +0 -4
- package/dist/chunks/iframe-entry-f7mqjwpm.js +0 -5
- package/dist/chunks/iframe-entry-haw7jkvz.js +0 -5
- package/dist/chunks/iframe-entry-z6qrytv3.js +0 -5
- package/dist/chunks/iframe-host-qk3ycq87.js +0 -4
- package/dist/chunks/index-wkyfjeqz.js +0 -4
- package/dist/chunks/jsonMode-s8kt9dsj.js +0 -13
- package/dist/chunks/jx-validate-psgd7vsx.js +0 -4
- package/dist/chunks/layers-panel-1kq2jyfk.js +0 -4
- package/dist/chunks/layers-xd92fg8d.js +0 -4
- package/dist/chunks/listbox-s8fkmnq8.js +0 -4
- package/dist/chunks/lit-html-ac4cwwr4.js +0 -4
- package/dist/chunks/media-picker-0svzkdyb.js +0 -4
- package/dist/chunks/menu-37d07z9m.js +0 -4
- package/dist/chunks/menu-5c55ea3d.js +0 -4
- package/dist/chunks/monaco-binding-z6r70pdt.js +0 -4
- package/dist/chunks/monaco-buffer-fz6gq5y7.js +0 -4
- package/dist/chunks/monaco-setup-q4axkgj7.js +0 -4
- package/dist/chunks/notify-0xgtn8q1.js +0 -4
- package/dist/chunks/number-field-gw7sq8rn.js +0 -4
- package/dist/chunks/parse-897fvqah.js +0 -4
- package/dist/chunks/platform-v1qctbe6.js +0 -4
- package/dist/chunks/popover-8htra4er.js +0 -4
- package/dist/chunks/publish-panel-ym1fmgq5.js +0 -4
- package/dist/chunks/quick-search-a54e6t5n.js +0 -4
- package/dist/chunks/references-gmqp82fs.js +0 -4
- package/dist/chunks/right-panel-v7t9awbk.js +0 -4
- package/dist/chunks/section-registry-vhyf3zsr.js +0 -4
- package/dist/chunks/select-n3v7gwas.js +0 -4
- package/dist/chunks/split-pff8f3ze.js +0 -4
- package/dist/chunks/studio-0bhx5hz6.js +0 -5
- package/dist/chunks/studio-0k1ddnyy.js +0 -6
- package/dist/chunks/studio-1b04pd0j.js +0 -64
- package/dist/chunks/studio-4dwbj6gb.js +0 -5
- package/dist/chunks/studio-4tanh828.js +0 -5
- package/dist/chunks/studio-55h4mstj.js +0 -4
- package/dist/chunks/studio-5tnvjkz4.js +0 -5
- package/dist/chunks/studio-60dqgb0c.js +0 -5
- package/dist/chunks/studio-61dp09qg.js +0 -9
- package/dist/chunks/studio-63epcrj2.js +0 -5
- package/dist/chunks/studio-74k29dy9.js +0 -5
- package/dist/chunks/studio-7vg6jcd3.js +0 -5
- package/dist/chunks/studio-7zx31knw.js +0 -9
- package/dist/chunks/studio-8bxk97km.js +0 -5
- package/dist/chunks/studio-933e30n4.js +0 -5
- package/dist/chunks/studio-98wnwhbg.js +0 -5
- package/dist/chunks/studio-9mccjwjh.js +0 -14
- package/dist/chunks/studio-a2ke1e4t.js +0 -5
- package/dist/chunks/studio-e3a2a6v3.js +0 -4
- package/dist/chunks/studio-e81q1vb9.js +0 -5
- package/dist/chunks/studio-epgrmqqm.js +0 -5
- package/dist/chunks/studio-ery42sqr.js +0 -4
- package/dist/chunks/studio-g1shz58g.js +0 -5
- package/dist/chunks/studio-gf0fz03c.js +0 -5
- package/dist/chunks/studio-gjtpe62q.js +0 -6
- package/dist/chunks/studio-gkskhg7m.js +0 -5
- package/dist/chunks/studio-gx4dnjzd.js +0 -5
- package/dist/chunks/studio-j03zga3y.js +0 -9
- package/dist/chunks/studio-jhpxeckz.js +0 -5
- package/dist/chunks/studio-k01r7ykp.js +0 -5
- package/dist/chunks/studio-kk7h30ne.js +0 -7
- package/dist/chunks/studio-kt1zqney.js +0 -5
- package/dist/chunks/studio-m3cwhvye.js +0 -5
- package/dist/chunks/studio-mcayt6hz.js +0 -5
- package/dist/chunks/studio-myjcghv3.js +0 -5
- package/dist/chunks/studio-n8bxwc3y.js +0 -4
- package/dist/chunks/studio-ngm8gvpb.js +0 -5
- package/dist/chunks/studio-nj5a01jy.js +0 -928
- package/dist/chunks/studio-pcgz8heb.js +0 -5
- package/dist/chunks/studio-qcsq0t15.js +0 -5
- package/dist/chunks/studio-qkstvve9.js +0 -5
- package/dist/chunks/studio-qv1pwd3c.js +0 -5
- package/dist/chunks/studio-rc6dvxjb.js +0 -7
- package/dist/chunks/studio-s8dmmz66.js +0 -5
- package/dist/chunks/studio-sp5xzbj4.js +0 -6
- package/dist/chunks/studio-szsjbj0g.js +0 -5
- package/dist/chunks/studio-t1xzawhr.js +0 -16
- package/dist/chunks/studio-tdcprbqb.js +0 -5
- package/dist/chunks/studio-vrmcjf9g.js +0 -7
- package/dist/chunks/studio-vyc0b4he.js +0 -10
- package/dist/chunks/studio-w0cgf6jg.js +0 -5
- package/dist/chunks/studio-w3hskzqk.js +0 -5
- package/dist/chunks/studio-xgrgcdyh.js +0 -9
- package/dist/chunks/studio-xz2yxfcb.js +0 -5
- package/dist/chunks/studio-y6n42tgs.js +0 -5
- package/dist/chunks/studio-yb560vxr.js +0 -5
- package/dist/chunks/studio-yn9f8vtx.js +0 -5
- package/dist/chunks/studio-yw05w8f0.js +0 -7
- package/dist/chunks/studio-z16sgavc.js +0 -5
- package/dist/chunks/studio-zey7zsdw.js +0 -12
- package/dist/chunks/studio-zyqn40w4.js +0 -5
- package/dist/chunks/swatch-group-8qh9a3bm.js +0 -4
- package/dist/chunks/tabs-jwthg40w.js +0 -4
- package/dist/chunks/textfield-spy3hc77.js +0 -4
- package/dist/chunks/toast-4d35zd64.js +0 -4
- package/dist/chunks/toast-host-8sjmfed3.js +0 -4
- package/dist/chunks/tooltip-fd6g9xy3.js +0 -4
- package/dist/chunks/tree-h19v1jfz.js +0 -4
- package/dist/chunks/tsMode-2frah6h1.js +0 -14
- package/dist/chunks/workspace-zt81g1ms.js +0 -4
- package/dist/chunks/ws-client-n2bh4hkf.js +0 -4
- package/src/panels/frontmatter-panel.ts +0 -701
- package/src/panels/git-panel.ts +0 -1120
- package/src/surfaces/doc-header.json +0 -776
- package/src/surfaces/doc-header.ts +0 -231
- package/src/surfaces/git-panel.json +0 -1880
- package/src/surfaces/git-panel.ts +0 -272
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import{ot,Zm,sf,e1,xI,yo,t1,qn,Rs,aM,Pv,jn,Vi,n1,lM,i0,Fv,X,yt,pi,Rr,wo,H,sc,Oh,ia,nu,$n,cM,dn,Ds,ro,Qn,Fe,ac,dM,Fa,jv,Xm,e,b,rn,ve,oi,Zr,Ns,Do,uM,ja,Ai,As,De,oa,He,Dr,N,d,i,ce,_I,Hn,un,I,o,cc,No,Nr,Os,ra,ps,po,ye,Ge,o0,hn,Mh,Bv,ml,q,s,t,F,_,fs,Ph,hr,r0,o1,zv,gl,Qm,bl,Fh,hM,jh,ms,r1,eg,Wv,s0,Ut,Je,Vv,ei,s1,Ha,Ui,Ci,Gn,Rt,pr,af,a0,iu,vl,Ao,Ms,In,dc,yl,ou,mM,a1,ld,ri,Qe,si,Yt,uc,gM,bM,qi,Ar,fi,ai,Ce,aa,vM,ti,se,ng,ru,Gi,Zo,Hh,cf,SI,su,c0,qt,mi,d0,f,Rn,l1,fr,W,ni,yM,wM,Ye,xM,cd,j,Pe,Ps,so,CI,d1,kI,Bh,mr,dd,B,mn,c,Ct,_M,au,u0,h0,qv,ki,p0,la,at,u1,SM,kt,Gv,Oo,wl,en,xl,Ft,Fs,lu,df,Ke,Le,uf,E,ke,gi,k,gn,w,CM,Mo,fo,Ba,f0,Re,Qr,EI,ue,hf,Sn,A,ie,Ee,Et,Dn,xo,dt,gs,pc,J,Ue,Te,L,M,G,ht,Nn,pf,l,Oi,Kn,fc,Ki,Cn,lt,Bn,tn,Ji,kM,ud,An,bs,EM,Mi,TM,ff,h1,LM,cu,Ze,p1,ao,TI,rg,mf,nn,U,Kv,gr,Po,K,O,m0,$M,fe,ii,vs,re,xt,xe,kn,gf,Or,lo,ut,Jv,ca,bf,mc,es,Xo,ts,ys,du,Yv,V,vf,g0,m1,g1,IM,ee,Gt,b0,sg,_l,Fo,bt,Yi,yf,_o,li,LI,ag,D,gc,y,Zv,z,$I,jo,Tt,RM,Sl,Xi,ws,hd,zn,Ho,Pi,Qv,Wh,sn,Vh,ey,b1,DM,Cl,P,a,Mr,be,lg,Oe,v0,cg,je,Zt,dg,Qo,za,Bo,xf,ug,NM,Wa,_f,js,Sf,AM,pd,hg,OM,da,MM,bc,PM,pg,ty,Cf,v1,y1,FM,jM,HM,BM,Uh,hu,y0,pu,ny,w1,II,w0,x0,kf,_0,zM,S0,x1,_1,fg,qh,mg,iy,Gh,fd,gg,md,kl,oy,br,Kh,Lt,$t,jt,Ei,C0,El,gt,Tl,S1,gd,k0,Ef,RI,bg,WM,Tf,fu,ry,et,Ti,DI,vg,Mt,sy,Fi,ay,Jh,ns,yg,k1,Lf,vc,r,$f,Be,bn,Li,VM,E1,wg,T0,T1,L1,pn,wc,wt,Pr,NI,qM,me,L0,Fr,GM,ha,Jn,xg,mo,ly,vn,$0,I0,R0,D0,$1,KM,mu,I1,bd,de,vd,xc,On,gu,JM,xs,Yn,_g,If,R1,D1,N1,AI,XM,Zh,is,cy,yd,QM,Mn,Xh,jr,O1,dy,N0,So,Ll,er,e2,zo,OI,A0,Hr,Sg,En,Pn,_c,O0,M1,P1,uy,uo,_s,nt,bi,Df,M0,MI,Eg,vr,$i,Ne,Co,Sc,hy,py,fy,j1,Nf,wd,Tg,i2,$l,H1,my,Qi,gy,B1,Cc,P0,go,F0,j0,kc,z1,H0,B0,z0,W0,V0,fa,PI,W1,V1,U1,an,U0,Br,q1,Ua,Hs,ma,G1,o2,r2,K1,s2,J1,Ec,Tc,Y1,q0,Kt,Il,Lg,ga,Qh,vy,vu,yu,ek,qa,Ht,tk,yy,FI,Ss,os,nk,Ii,xu,xd,Ga,K0,vi,ct,J0,tp,np,Ka,wy,ik,Pf,Cs,xy,Ff,HI,a2,BI,jf,we}from"./studio-rthyg42z.js";import{le}from"./studio-qgh13jtz.js";class zf{constructor(u,n,h,g,p){this._onDidChange=new jf,this._onDidExtraLibsChange=new jf,this._extraLibs=Object.create(null),this._removedExtraLibs=Object.create(null),this._eagerModelSync=!1,this.setCompilerOptions(u),this.setDiagnosticsOptions(n),this.setWorkerOptions(h),this.setInlayHintsOptions(g),this.setModeConfiguration(p),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(u,n){let h;if(typeof n>"u")h=`ts:extralib-${Math.random().toString(36).substring(2,15)}`;else h=n;if(this._extraLibs[h]&&this._extraLibs[h].content===u)return{dispose:()=>{}};let g=1;if(this._removedExtraLibs[h])g=this._removedExtraLibs[h]+1;if(this._extraLibs[h])g=this._extraLibs[h].version+1;return this._extraLibs[h]={content:u,version:g},this._fireOnDidExtraLibsChangeSoon(),{dispose:()=>{let p=this._extraLibs[h];if(!p)return;if(p.version!==g)return;delete this._extraLibs[h],this._removedExtraLibs[h]=g,this._fireOnDidExtraLibsChangeSoon()}}}setExtraLibs(u){for(let n in this._extraLibs)this._removedExtraLibs[n]=this._extraLibs[n].version;if(this._extraLibs=Object.create(null),u&&u.length>0)for(let n of u){let h=n.filePath||`ts:extralib-${Math.random().toString(36).substring(2,15)}`,g=n.content,p=1;if(this._removedExtraLibs[h])p=this._removedExtraLibs[h]+1;this._extraLibs[h]={content:g,version:p}}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(u){this._compilerOptions=u||Object.create(null),this._onDidChange.fire(void 0)}getDiagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(u){this._diagnosticsOptions=u||Object.create(null),this._onDidChange.fire(void 0)}setWorkerOptions(u){this._workerOptions=u||Object.create(null),this._onDidChange.fire(void 0)}setInlayHintsOptions(u){this._inlayHintsOptions=u||Object.create(null),this._onDidChange.fire(void 0)}setMaximumWorkerIdleTime(u){}setEagerModelSync(u){this._eagerModelSync=u}getEagerModelSync(){return this._eagerModelSync}setModeConfiguration(u){this._modeConfiguration=u||Object.create(null),this._onDidChange.fire(void 0)}}var PS={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},wI=new zf({allowNonTsExtensions:!0,target:99},{noSemanticValidation:!1,noSyntaxValidation:!1,onlyVisible:!1},{},{},PS),_D=new zf({allowNonTsExtensions:!0,allowJs:!0,target:99},{noSemanticValidation:!0,noSyntaxValidation:!1,onlyVisible:!1},{},{},PS);function AS(){return le("epyfz1hv"),import("./tsMode-epyfz1hv.js")}we.onLanguage("typescript",()=>AS().then((u)=>u.setupTypeScript(wI)));we.onLanguage("javascript",()=>AS().then((u)=>u.setupJavaScript(_D)));class FS extends U{constructor(){super({id:"editor.action.forceRetokenize",label:b(1606,"Developer: Force Retokenize"),precondition:void 0})}run(u,n){if(!n.hasModel())return;let h=n.getModel();h.tokenization.resetTokenization();let g=new un;h.tokenization.forceTokenization(h.getLineCount()),g.stop(),console.log(`tokenization took ${g.elapsed()}`)}}O(FS);class zt{static{this.sep="."}static{this.None=new zt("@@none@@")}static{this.Empty=new zt("")}constructor(u){this.value=u}equals(u){return this.value===u.value}contains(u){return this.equals(u)||this.value===""||u.value.startsWith(this.value+zt.sep)}intersects(u){return this.contains(u)||u.contains(this)}append(...u){return new zt((this.value?[this.value,...u]:u).join(zt.sep))}}var bD=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},vD=function(u,n){return function(h,g){n(h,g,u)}},wD=de.register({description:"inline-progress-widget",stickiness:1,showIfCollapsed:!0,after:{content:a1,inlineClassName:"inline-editor-progress-decoration",inlineClassNameAffectsLetterSpacing:!0,widthInEm:1}});class Kf extends i{static{this.baseId="editor.widget.inlineProgressWidget"}constructor(u,n,h,g,p){super();this.typeId=u,this.editor=n,this.range=h,this.delegate=p,this.allowEditorOverflow=!1,this.suppressMouseDown=!0,this.create(g),this.editor.addContentWidget(this),this.editor.layoutContentWidget(this)}create(u){this.domNode=w(".inline-progress-widget"),this.domNode.role="button",this.domNode.title=u;let n=w("span.icon");this.domNode.append(n),n.classList.add(...J.asClassNameArray(_.loading),"codicon-modifier-spin");let h=()=>{let g=this.editor.getOption(75);this.domNode.style.height=`${g}px`,this.domNode.style.width=`${Math.ceil(0.8*g)}px`};h(),this._register(this.editor.onDidChangeConfiguration((g)=>{if(g.hasChanged(61)||g.hasChanged(75))h()})),this._register(c(this.domNode,E.CLICK,(g)=>{this.delegate.cancel()}))}getId(){return Kf.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 Iv=class u extends i{constructor(n,h,g){super();this.id=n,this._editor=h,this._instantiationService=g,this._showDelay=500,this._showPromise=this._register(new ce),this._currentWidget=this._register(new ce),this._operationIdPool=0,this._currentDecorations=h.createDecorationsCollection()}dispose(){super.dispose(),this._currentDecorations.clear()}async showWhile(n,h,g,p,m){let v=this._operationIdPool++;this._currentOperation=v,this.clear(),this._showPromise.value=fi(()=>{let S=t.fromPositions(n);if(this._currentDecorations.set([{range:S,options:wD}]).length>0)this._currentWidget.value=this._instantiationService.createInstance(Kf,this.id,this._editor,S,h,p)},m??this._showDelay);try{return await g}finally{if(this._currentOperation===v)this.clear(),this._currentOperation=void 0}}clear(){this._showPromise.clear(),this._currentDecorations.clear(),this._currentWidget.clear()}};Iv=bD([vD(2,A)],Iv);var SD=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},HS=function(u,n){return function(h,g){n(h,g,u)}},zu,ci=class u{static{zu=this}static{this.ID="editor.contrib.messageController"}static{this.MESSAGE_VISIBLE=new M("messageVisible",!1,e(1353,"Whether the editor is currently showing an inline message"))}static get(n){return n.getContribution(zu.ID)}constructor(n,h,g){this._openerService=g,this._messageWidget=new ce,this._messageListeners=new d,this._mouseOverMessage=!1,this._editor=n,this._visible=zu.MESSAGE_VISIBLE.bindTo(h)}dispose(){this._messageListeners.dispose(),this._messageWidget.dispose(),this._visible.reset()}showMessage(n,h){if(zn(jr(n)?n.value:n),this._visible.set(!0),this._messageWidget.clear(),this._messageListeners.clear(),jr(n)){let p=this._messageListeners.add(Ll(n,{actionHandler:(m,v)=>{this.closeMessage(),OI(this._openerService,m,v.isTrusted)}}));this._messageWidget.value=new Ku(this._editor,h,p.element)}else this._messageWidget.value=new Ku(this._editor,h,n);this._messageListeners.add(I.debounce(this._editor.onDidBlurEditorText,(p,m)=>m,0)(()=>{if(this._mouseOverMessage)return;if(this._messageWidget.value&&en(Ft(),this._messageWidget.value.getDomNode()))return;this.closeMessage()})),this._messageListeners.add(this._editor.onDidChangeCursorPosition(()=>this.closeMessage())),this._messageListeners.add(this._editor.onDidDispose(()=>this.closeMessage())),this._messageListeners.add(this._editor.onDidChangeModel(()=>this.closeMessage())),this._messageListeners.add(c(this._messageWidget.value.getDomNode(),E.MOUSE_ENTER,()=>this._mouseOverMessage=!0,!0)),this._messageListeners.add(c(this._messageWidget.value.getDomNode(),E.MOUSE_LEAVE,()=>this._mouseOverMessage=!1,!0));let g;this._messageListeners.add(this._editor.onMouseMove((p)=>{if(!p.target.position)return;if(!g)g=new t(h.lineNumber-3,1,p.target.position.lineNumber+3,1);else if(!g.containsPosition(p.target.position))this.closeMessage()}))}closeMessage(){if(this._visible.reset(),this._messageListeners.clear(),this._messageWidget.value)this._messageListeners.add(Ku.fadeOut(this._messageWidget.value))}};ci=zu=SD([HS(1,G),HS(2,er)],ci);var CD=nn.bindToContribution(ci.get);K(new CD({id:"leaveEditorMessage",precondition:ci.MESSAGE_VISIBLE,handler:(u)=>u.closeMessage(),kbOpts:{weight:130,primary:9}}));class Ku{static fadeOut(u){let n=()=>{u.dispose(),clearTimeout(h),u.getDomNode().removeEventListener("animationend",n)},h=setTimeout(n,110);return u.getDomNode().addEventListener("animationend",n),u.getDomNode().classList.add("fadeOut"),{dispose:n}}constructor(u,{lineNumber:n,column:h},g){this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._editor=u,this._editor.revealLinesInCenterIfOutsideViewport(n,n,0),this._position={lineNumber:n,column:h},this._domNode=document.createElement("div"),this._domNode.classList.add("monaco-editor-overlaymessage"),this._domNode.style.marginLeft="-6px";let p=document.createElement("div");p.classList.add("anchor","top"),this._domNode.appendChild(p);let m=document.createElement("div");if(typeof g==="string")m.classList.add("message"),m.textContent=g;else g.classList.add("message"),m.appendChild(g);this._domNode.appendChild(m);let v=document.createElement("div");v.classList.add("anchor","below"),this._domNode.appendChild(v),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(u){this._domNode.classList.toggle("below",u===2)}}fe(ci.ID,ci,4);var Uf=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},cl=function(u,n){return function(h,g){n(h,g,u)}};class qu{constructor(u){this.copyMimeTypes=[],this.kind=u,this.providedDropEditKinds=[this.kind],this.providedPasteEditKinds=[this.kind]}async provideDocumentPasteEdits(u,n,h,g,p){let m=await this.getEdit(h,p);if(!m)return;return{edits:[{insertText:m.insertText,title:m.title,kind:m.kind,handledMimeType:m.handledMimeType,yieldTo:m.yieldTo}],dispose(){}}}async provideDocumentDropEdits(u,n,h,g){let p=await this.getEdit(h,g);if(!p)return;return{edits:[{insertText:p.insertText,title:p.title,kind:p.kind,handledMimeType:p.handledMimeType,yieldTo:p.yieldTo}],dispose(){}}}}class Rh extends qu{static{this.id="text"}constructor(){super(zt.Empty.append("text","plain"));this.id=Rh.id,this.dropMimeTypes=[kn.text],this.pasteMimeTypes=[kn.text]}async getEdit(u,n){let h=u.get(kn.text);if(!h)return;if(u.has(kn.uriList))return;let g=await h.asString();return{handledMimeType:kn.text,title:e(980,"Insert Plain Text"),insertText:g,kind:this.kind}}}class qf extends qu{constructor(){super(zt.Empty.append("uri","path","absolute"));this.dropMimeTypes=[kn.uriList],this.pasteMimeTypes=[kn.uriList]}async getEdit(u,n){let h=await BS(u);if(!h.length||n.isCancellationRequested)return;let g=0,p=h.map(({uri:v,originalText:S})=>{if(v.scheme===se.file)return v.fsPath;else return g++,S}).join(" "),m;if(g>0)m=h.length>1?e(981,"Insert Uris"):e(982,"Insert Uri");else m=h.length>1?e(983,"Insert Paths"):e(984,"Insert Path");return{handledMimeType:kn.uriList,insertText:p,title:m,kind:this.kind}}}var Uu=class u extends qu{constructor(n){super(zt.Empty.append("uri","path","relative"));this._workspaceContextService=n,this.dropMimeTypes=[kn.uriList],this.pasteMimeTypes=[kn.uriList]}async getEdit(n,h){let g=await BS(n);if(!g.length||h.isCancellationRequested)return;let p=yo(g.map(({uri:m})=>{let v=this._workspaceContextService.getWorkspaceFolder(m);return v?LM(v.uri,m):void 0}));if(!p.length)return;return{handledMimeType:kn.uriList,insertText:p.join(" "),title:g.length>1?e(985,"Insert Relative Paths"):e(986,"Insert Relative Path"),kind:this.kind}}};Uu=Uf([cl(0,ma)],Uu);class WS{constructor(){this.kind=new zt("html"),this.providedPasteEditKinds=[this.kind],this.copyMimeTypes=[],this.pasteMimeTypes=["text/html"],this._yieldTo=[{mimeType:kn.text}]}async provideDocumentPasteEdits(u,n,h,g,p){if(g.triggerKind!==Qm.PasteAs&&!g.only?.contains(this.kind))return;let v=await h.get("text/html")?.asString();if(!v||p.isCancellationRequested)return;return{dispose(){},edits:[{insertText:v,yieldTo:this._yieldTo,title:e(987,"Insert HTML"),kind:this.kind}]}}}async function BS(u){let n=u.get(kn.uriList);if(!n)return[];let h=await n.asString(),g=[];for(let p of bg.parse(h))try{g.push({uri:q.parse(p),originalText:p})}catch{}return g}var xa={scheme:"*",hasAccessToAllModels:!0},VC=class u extends i{constructor(n,h){super();this._register(n.documentDropEditProvider.register(xa,new Rh)),this._register(n.documentDropEditProvider.register(xa,new qf)),this._register(n.documentDropEditProvider.register(xa,new Uu(h)))}};VC=Uf([cl(0,z),cl(1,ma)],VC);var UC=class u extends i{constructor(n,h){super();this._register(n.documentPasteEditProvider.register(xa,new Rh)),this._register(n.documentPasteEditProvider.register(xa,new qf)),this._register(n.documentPasteEditProvider.register(xa,new Uu(h))),this._register(n.documentPasteEditProvider.register(xa,new WS))}};UC=Uf([cl(0,z),cl(1,ma)],UC);class xn{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(u){return u>=48&&u<=57}static isVariableCharacter(u){return u===95||u>=97&&u<=122||u>=65&&u<=90}text(u){this.value=u,this.pos=0}tokenText(u){return this.value.substr(u.pos,u.len)}next(){if(this.pos>=this.value.length)return{type:14,pos:this.pos,len:0};let u=this.pos,n=0,h=this.value.charCodeAt(u),g;if(g=xn._table[h],typeof g==="number")return this.pos+=1,{type:g,pos:u,len:1};if(xn.isDigitCharacter(h)){g=8;do n+=1,h=this.value.charCodeAt(u+n);while(xn.isDigitCharacter(h));return this.pos+=n,{type:g,pos:u,len:n}}if(xn.isVariableCharacter(h)){g=9;do h=this.value.charCodeAt(u+ ++n);while(xn.isVariableCharacter(h)||xn.isDigitCharacter(h));return this.pos+=n,{type:g,pos:u,len:n}}g=10;do n+=1,h=this.value.charCodeAt(u+n);while(!isNaN(h)&&typeof xn._table[h]>"u"&&!xn.isDigitCharacter(h)&&!xn.isVariableCharacter(h));return this.pos+=n,{type:g,pos:u,len:n}}}class Ia{constructor(){this._children=[]}appendChild(u){if(u instanceof hi&&this._children[this._children.length-1]instanceof hi)this._children[this._children.length-1].value+=u.value;else u.parent=this,this._children.push(u);return this}replace(u,n){let{parent:h}=u,g=h.children.indexOf(u),p=h.children.slice(0);p.splice(g,1,...n),h._children=p,function m(v,S){for(let C of v)C.parent=S,m(C.children,C)}(n,h)}get children(){return this._children}get rightMostDescendant(){if(this._children.length>0)return this._children[this._children.length-1].rightMostDescendant;return this}get snippet(){let u=this;while(!0){if(!u)return;if(u instanceof Pd)return u;u=u.parent}}toString(){return this.children.reduce((u,n)=>u+n.toString(),"")}len(){return 0}}class hi extends Ia{constructor(u){super();this.value=u}toString(){return this.value}len(){return this.value.length}clone(){return new hi(this.value)}}class Gf extends Ia{}class oo extends Gf{static compareByIndex(u,n){if(u.index===n.index)return 0;else if(u.isFinalTabstop)return 1;else if(n.isFinalTabstop)return-1;else if(u.index<n.index)return-1;else if(u.index>n.index)return 1;else return 0}constructor(u){super();this.index=u}get isFinalTabstop(){return this.index===0}get choice(){return this._children.length===1&&this._children[0]instanceof La?this._children[0]:void 0}clone(){let u=new oo(this.index);if(this.transform)u.transform=this.transform.clone();return u._children=this.children.map((n)=>n.clone()),u}}class La extends Ia{constructor(){super(...arguments);this.options=[]}appendChild(u){if(u instanceof hi)u.parent=this,this.options.push(u);return this}toString(){return this.options[0].value}len(){return this.options[0].len()}clone(){let u=new La;return this.options.forEach(u.appendChild,u),u}}class Zf extends Ia{constructor(){super(...arguments);this.regexp=new RegExp("")}resolve(u){let n=this,h=!1,g=u.replace(this.regexp,function(){return h=!0,n._replace(Array.prototype.slice.call(arguments,0,-2))});if(!h&&this._children.some((p)=>p instanceof Ln&&Boolean(p.elseValue)))g=this._replace([]);return g}_replace(u){let n="";for(let h of this._children)if(h instanceof Ln){let g=u[h.index]||"";g=h.resolve(g),n+=g}else n+=h.toString();return n}toString(){return""}clone(){let u=new Zf;return u.regexp=new RegExp(this.regexp.source,(this.regexp.ignoreCase?"i":"")+(this.regexp.global?"g":"")),u._children=this.children.map((n)=>n.clone()),u}}class Ln extends Ia{constructor(u,n,h,g){super();this.index=u,this.shorthandName=n,this.ifValue=h,this.elseValue=g}resolve(u){if(this.shorthandName==="upcase")return!u?"":u.toLocaleUpperCase();else if(this.shorthandName==="downcase")return!u?"":u.toLocaleLowerCase();else if(this.shorthandName==="capitalize")return!u?"":u[0].toLocaleUpperCase()+u.substr(1);else if(this.shorthandName==="pascalcase")return!u?"":this._toPascalCase(u);else if(this.shorthandName==="camelcase")return!u?"":this._toCamelCase(u);else if(this.shorthandName==="kebabcase")return!u?"":this._toKebabCase(u);else if(this.shorthandName==="snakecase")return!u?"":this._toSnakeCase(u);else if(Boolean(u)&&typeof this.ifValue==="string")return this.ifValue;else if(!Boolean(u)&&typeof this.elseValue==="string")return this.elseValue;else return u||""}_toKebabCase(u){if(!u.match(/[\p{L}0-9]+/gu))return u;if(!u.match(/[\p{L}0-9]/u))return u.trim().toLowerCase().replace(/^_+|_+$/g,"").replace(/[\s_]+/g,"-");let h=u.trim().replace(/^_+|_+$/g,""),g=h.match(/\p{Lu}{2,}(?=\p{Lu}\p{Ll}+[0-9]*|[\s_-]|$)|\p{Lu}?\p{Ll}+[0-9]*|\p{Lu}(?=\p{Lu}\p{Ll})|\p{Lu}(?=[\s_-]|$)|[0-9]+/gu);if(!g)return h.split(/[\s_-]+/).filter((p)=>p.length>0).map((p)=>p.toLowerCase()).join("-");return g.map((p)=>p.toLowerCase()).join("-")}_toPascalCase(u){let n=u.match(/[\p{L}0-9]+/gu);if(!n)return u;return n.map((h)=>h.charAt(0).toUpperCase()+h.substr(1)).join("")}_toCamelCase(u){let n=u.match(/[\p{L}0-9]+/gu);if(!n)return u;return n.map((h,g)=>{if(g===0)return h.charAt(0).toLowerCase()+h.substr(1);return h.charAt(0).toUpperCase()+h.substr(1)}).join("")}_toSnakeCase(u){return u.replace(/(\p{Ll})(\p{Lu})/gu,"$1_$2").replace(/[\s\-]+/g,"_").toLowerCase()}clone(){return new Ln(this.index,this.shorthandName,this.ifValue,this.elseValue)}}class ls extends Gf{constructor(u){super();this.name=u}resolve(u){let n=u.resolve(this);if(this.transform)n=this.transform.resolve(n||"");if(n!==void 0)return this._children=[new hi(n)],!0;return!1}clone(){let u=new ls(this.name);if(this.transform)u.transform=this.transform.clone();return u._children=this.children.map((n)=>n.clone()),u}}function VS(u,n){let h=[...u];while(h.length>0){let g=h.shift();if(!n(g))break;h.unshift(...g.children)}}class Pd extends Ia{get placeholderInfo(){if(!this._placeholders){let u=[],n;this.walk(function(h){if(h instanceof oo)u.push(h),n=!n||n.index<h.index?h:n;return!0}),this._placeholders={all:u,last:n}}return this._placeholders}get placeholders(){let{all:u}=this.placeholderInfo;return u}offset(u){let n=0,h=!1;if(this.walk((g)=>{if(g===u)return h=!0,!1;return n+=g.len(),!0}),!h)return-1;return n}fullLen(u){let n=0;return VS([u],(h)=>(n+=h.len(),!0)),n}enclosingPlaceholders(u){let n=[],{parent:h}=u;while(h){if(h instanceof oo)n.push(h);h=h.parent}return n}resolveVariables(u){return this.walk((n)=>{if(n instanceof ls){if(n.resolve(u))this._placeholders=void 0}return!0}),this}appendChild(u){return this._placeholders=void 0,super.appendChild(u)}replace(u,n){return this._placeholders=void 0,super.replace(u,n)}clone(){let u=new Pd;return u._children=this.children.map((n)=>n.clone()),u}walk(u){VS(this.children,u)}}class no{constructor(){this._scanner=new xn,this._token={type:14,pos:0,len:0}}static escape(u){return u.replace(/\$|}|\\/g,"\\$&")}static guessNeedsClipboard(u){return/\${?CLIPBOARD/.test(u)}parse(u,n,h){let g=new Pd;return this.parseFragment(u,g),this.ensureFinalTabstop(g,h??!1,n??!1),g}parseFragment(u,n){let h=n.children.length;this._scanner.text(u),this._token=this._scanner.next();while(this._parse(n));let g=new Map,p=[];n.walk((S)=>{if(S instanceof oo)if(S.isFinalTabstop)g.set(0,void 0);else if(!g.has(S.index)&&S.children.length>0)g.set(S.index,S.children);else p.push(S);return!0});let m=(S,C)=>{let x=g.get(S.index);if(!x)return;let T=new oo(S.index);T.transform=S.transform;for(let R of x){let Z=R.clone();if(T.appendChild(Z),Z instanceof oo&&g.has(Z.index)&&!C.has(Z.index))C.add(Z.index),m(Z,C),C.delete(Z.index)}n.replace(S,[T])},v=new Set;for(let S of p)m(S,v);return n.children.slice(h)}ensureFinalTabstop(u,n,h){if(n||h&&u.placeholders.length>0){if(!u.placeholders.find((p)=>p.index===0))u.appendChild(new oo(0))}}_accept(u,n){if(u===void 0||this._token.type===u){let h=!n?!0:this._scanner.tokenText(this._token);return this._token=this._scanner.next(),h}return!1}_backTo(u){return this._scanner.pos=u.pos+u.len,this._token=u,!1}_until(u){let n=this._token;while(this._token.type!==u){if(this._token.type===14)return!1;else if(this._token.type===5){let g=this._scanner.next();if(g.type!==0&&g.type!==4&&g.type!==5)return!1}this._token=this._scanner.next()}let h=this._scanner.value.substring(n.pos,this._token.pos).replace(/\\(\$|}|\\)/g,"$1");return this._token=this._scanner.next(),h}_parse(u){return this._parseEscaped(u)||this._parseTabstopOrVariableName(u)||this._parseComplexPlaceholder(u)||this._parseComplexVariable(u)||this._parseAnything(u)}_parseEscaped(u){let n;if(n=this._accept(5,!0))return n=this._accept(0,!0)||this._accept(4,!0)||this._accept(5,!0)||n,u.appendChild(new hi(n)),!0;return!1}_parseTabstopOrVariableName(u){let n,h=this._token;if(!(this._accept(0)&&(n=this._accept(9,!0)||this._accept(8,!0))))return this._backTo(h);return u.appendChild(/^\d+$/.test(n)?new oo(Number(n)):new ls(n)),!0}_parseComplexPlaceholder(u){let n,h=this._token;if(!(this._accept(0)&&this._accept(3)&&(n=this._accept(8,!0))))return this._backTo(h);let p=new oo(Number(n));if(this._accept(1))while(!0){if(this._accept(4))return u.appendChild(p),!0;if(this._parse(p))continue;return u.appendChild(new hi("${"+n+":")),p.children.forEach(u.appendChild,u),!0}else if(p.index>0&&this._accept(7)){let m=new La;while(!0){if(this._parseChoiceElement(m)){if(this._accept(2))continue;if(this._accept(7)){if(p.appendChild(m),this._accept(4))return u.appendChild(p),!0}}return this._backTo(h),!1}}else if(this._accept(6)){if(this._parseTransform(p))return u.appendChild(p),!0;return this._backTo(h),!1}else if(this._accept(4))return u.appendChild(p),!0;else return this._backTo(h)}_parseChoiceElement(u){let n=this._token,h=[];while(!0){if(this._token.type===2||this._token.type===7)break;let g;if(g=this._accept(5,!0))g=this._accept(2,!0)||this._accept(7,!0)||this._accept(5,!0)||g;else g=this._accept(void 0,!0);if(!g)return this._backTo(n),!1;h.push(g)}if(h.length===0)return this._backTo(n),!1;return u.appendChild(new hi(h.join(""))),!0}_parseComplexVariable(u){let n,h=this._token;if(!(this._accept(0)&&this._accept(3)&&(n=this._accept(9,!0))))return this._backTo(h);let p=new ls(n);if(this._accept(1))while(!0){if(this._accept(4))return u.appendChild(p),!0;if(this._parse(p))continue;return u.appendChild(new hi("${"+n+":")),p.children.forEach(u.appendChild,u),!0}else if(this._accept(6)){if(this._parseTransform(p))return u.appendChild(p),!0;return this._backTo(h),!1}else if(this._accept(4))return u.appendChild(p),!0;else return this._backTo(h)}_parseTransform(u){let n=new Zf,h="",g="";while(!0){if(this._accept(6))break;let p;if(p=this._accept(5,!0)){p=this._accept(6,!0)||p,h+=p;continue}if(this._token.type!==14){h+=this._accept(void 0,!0);continue}return!1}while(!0){if(this._accept(6))break;let p;if(p=this._accept(5,!0)){p=this._accept(5,!0)||this._accept(6,!0)||p,n.appendChild(new hi(p));continue}if(this._parseFormatString(n)||this._parseAnything(n))continue;return!1}while(!0){if(this._accept(4))break;if(this._token.type!==14){g+=this._accept(void 0,!0);continue}return!1}try{n.regexp=new RegExp(h,g)}catch(p){return!1}return u.transform=n,!0}_parseFormatString(u){let n=this._token;if(!this._accept(0))return!1;let h=!1;if(this._accept(3))h=!0;let g=this._accept(8,!0);if(!g)return this._backTo(n),!1;else if(!h)return u.appendChild(new Ln(Number(g))),!0;else if(this._accept(4))return u.appendChild(new Ln(Number(g))),!0;else if(!this._accept(1))return this._backTo(n),!1;if(this._accept(6)){let p=this._accept(9,!0);if(!p||!this._accept(4))return this._backTo(n),!1;else return u.appendChild(new Ln(Number(g),p)),!0}else if(this._accept(11)){let p=this._until(4);if(p)return u.appendChild(new Ln(Number(g),void 0,p,void 0)),!0}else if(this._accept(12)){let p=this._until(4);if(p)return u.appendChild(new Ln(Number(g),void 0,void 0,p)),!0}else if(this._accept(13)){let p=this._until(1);if(p){let m=this._until(4);if(m)return u.appendChild(new Ln(Number(g),void 0,p,m)),!0}}else{let p=this._until(4);if(p)return u.appendChild(new Ln(Number(g),void 0,void 0,p)),!0}return this._backTo(n),!1}_parseAnything(u){if(this._token.type!==14)return u.appendChild(new hi(this._scanner.tokenText(this._token))),this._accept(void 0),!0;return!1}}function ju(u,n,h){if(typeof h.insertText==="string"?h.insertText==="":h.insertText.snippet==="")return{edits:h.additionalEdit?.edits??[]};return{edits:[...n.map((g)=>new Tc(u,{range:g,text:typeof h.insertText==="string"?no.escape(h.insertText)+"$0":h.insertText.snippet,insertAsSnippet:!0})),...h.additionalEdit?.edits??[]]}}function qC(u){function n(v,S){if("mimeType"in v)return v.mimeType===S.handledMimeType;return!!S.kind&&v.kind.contains(S.kind)}let h=new Map;for(let v of u)for(let S of v.yieldTo??[])for(let C of u){if(C===v)continue;if(n(S,C)){let x=h.get(v);if(!x)x=[],h.set(v,x);x.push(C)}}if(!h.size)return Array.from(u);let g=new Set,p=[];function m(v){if(!v.length)return[];let S=v[0];if(p.includes(S))return console.warn("Yield to cycle detected",S),v;if(g.has(S))return m(v.slice(1));let C=[],x=h.get(S);if(x)p.push(S),C=m(x),p.pop();return g.add(S),[...C,S,...m(v.slice(1))]}return m(Array.from(u))}function Xf(u,n){if(n&&(u.stack||u.stacktrace))return e(33,"{0}: {1}",KS(u),zS(u.stack)||zS(u.stacktrace));return KS(u)}function zS(u){if(Array.isArray(u))return u.join(`
|
|
2
|
+
`);return u}function KS(u){if(u.code==="ERR_UNC_HOST_NOT_ALLOWED")return`${u.message}. Please update the 'security.allowedUNCHosts' setting if you want to allow this host.`;if(typeof u.code==="string"&&typeof u.errno==="number"&&typeof u.syscall==="string")return e(34,"A system error occurred ({0})",u.message);return u.message||e(35,"An unknown error occurred. Please consult the log for more details.")}function Rv(u=null,n=!1){if(!u)return e(36,"An unknown error occurred. Please consult the log for more details.");if(Array.isArray(u)){let h=yo(u),g=Rv(h[0],n);if(h.length>1)return e(37,"{0} ({1} errors in total)",g,h.length);return g}if($n(u))return u;if(u.detail){let h=u.detail;if(h.error)return Xf(h.error,n);if(h.exception)return Xf(h.exception,n)}if(u.stack)return Xf(u,n);if(u.message)return u.message;return e(38,"An unknown error occurred. Please consult the log for more details.")}class Yf extends i{constructor(u){super();this._onChange=this._register(new o),this.onChange=this._onChange.event,this._checked=!!u.checked,this._title=u.title??u.ariaLabel,this.domNode=w("button.monaco-switch"),this.domNode.type="button",this.domNode.setAttribute("role","switch"),k(this.domNode,w(".monaco-switch-thumb")),this._register($i().setupDelayedHover(this.domNode,()=>({content:this._title,style:1}))),this.setAriaLabel(u.ariaLabel,u.title),this.disabled=!!u.disabled,this._applyState(),this._register(c(this.domNode,E.CLICK,(n)=>{if(ke.stop(n,!0),this.domNode.disabled)return;this._checked=!this._checked,this._applyState(),this._onChange.fire(this._checked)}))}get checked(){return this._checked}set checked(u){if(this._checked!==u)this._checked=u,this._applyState()}get disabled(){return this.domNode.disabled}set disabled(u){this.domNode.disabled=u}setAriaLabel(u,n=u){this.domNode.setAttribute("aria-label",u),this._title=n}_applyState(){this.domNode.setAttribute("aria-checked",String(this._checked)),this.domNode.classList.toggle("checked",this._checked)}}var yD=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},US=function(u,n){return function(h,g){n(h,g,u)}},Ad=class u extends i{get enabled(){return this._enabled}set enabled(n){if(n)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=n}constructor(n,h,g={},p,m){super();this._link=h,this._hoverService=p,this._enabled=!0,this.el=k(n,w("a.monaco-link",{tabIndex:h.tabIndex??0,href:h.href},h.label)),this.hoverDelegate=g.hoverDelegate??vr("mouse"),this.setTooltip(h.title),this.el.setAttribute("role","button");let v=this._register(new gt(this.el,"click")),S=this._register(new gt(this.el,"keydown")),C=I.chain(S.event,(R)=>R.map((Z)=>new Qe(Z)).filter((Z)=>Z.keyCode===3||Z.keyCode===10)),x=this._register(new gt(this.el,$t.Tap)).event;this._register(jt.addTarget(this.el));let T=I.any(v.event,C,x);this._register(T((R)=>{if(!this.enabled)return;if(ke.stop(R,!0),g?.opener)g.opener(this._link.href);else m.open(this._link.href,{allowCommands:!0})})),this.enabled=!0}setTooltip(n){if(!this.hover&&n)this.hover=this._register(this._hoverService.setupManagedHover(this.hoverDelegate,this.el,n));else if(this.hover)this.hover.update(n)}};Ad=yD([US(3,On),US(4,er)],Ad);var o_=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},hs=function(u,n){return function(h,g){n(h,g,u)}},Jf,Gu="acceptSelectedCodeAction",Zu="previewSelectedCodeAction",xD=new Set([Gu,Zu,"toggleSectionCodeAction"]),ID="actionList.remove";class qS{get templateId(){return"header"}renderTemplate(u){u.classList.add("group-header");let n=document.createElement("span");return u.append(n),{container:u,text:n}}renderElement(u,n,h){h.text.textContent=u.group?.title??u.label??""}disposeTemplate(u){}}class jS{get templateId(){return"separator"}renderTemplate(u){u.classList.add("separator");let n=document.createElement("span");return u.append(n),{container:u,text:n}}renderElement(u,n,h){h.container.classList.toggle("has-label",!!u.label),h.text.textContent=u.label??""}disposeTemplate(u){}}function $S(u){return!!u.submenuActions?.length&&!u.hover?.content||!!u.hover?.expandable}function GS(u){return $S(u)&&u.hover?.showIndicator!==!1}var Qf=class u{get templateId(){return"action"}constructor(n,h,g,p,m,v,S,C,x,T,R,Z){this._supportsPreview=n,this._onRemoveItem=h,this._onShowSubmenu=g,this._reservesSubmenuSpace=p,this._groupTitleByIndex=m,this._linkHandler=v,this._hideDefaultKeybindingTooltip=S,this._stopToolbarPointerPropagation=C,this._registerStandaloneToggle=x,this._registerToolbar=T,this._keybindingService=R,this._openerService=Z}renderTemplate(n){n.classList.add(this.templateId);let h=document.createElement("div");h.className="icon",n.append(h);let g=document.createElement("span");g.className="title",n.append(g);let p=document.createElement("span");p.className="action-item-badge",p.ariaHidden="true",n.append(p);let m=document.createElement("span");m.className="description",n.append(m);let v=document.createElement("span");v.className="group-title",n.append(v);let S=document.createElement("span");S.className="detail",n.append(S);let C=new qa(n,Ai),x=document.createElement("div");x.className="action-list-item-toolbar",n.append(x);let T=document.createElement("div");T.className="action-list-submenu-indicator",n.append(T);let R=document.createElement("div");R.className="action-list-item-inline-toggle",n.append(R);let Z=new d;return{container:n,icon:h,text:g,detail:S,badge:p,description:m,groupTitle:v,keybinding:C,toolbar:x,submenuIndicator:T,inlineToggleContainer:R,elementDisposables:Z}}renderElement(n,h,g){if(g.elementDisposables.clear(),n.iconClasses?.length)g.icon.className=["icon",...n.iconClasses].join(" "),g.icon.style.color="";else if(n.group?.icon)g.icon.className=J.asClassName(n.group.icon),g.icon.style.color=n.group.icon.color?P(n.group.icon.color.id):"";else g.icon.className=J.asClassName(_.lightBulb),g.icon.style.color="var(--vscode-editorLightBulb-foreground)";if(!n.item&&!n.standaloneToggle||!n.label)return;if(CM(!n.hideIcon,g.icon),n.isSectionToggle){let T=n.group?.icon===_.chevronDown;g.container.setAttribute("aria-expanded",String(T))}else g.container.removeAttribute("aria-expanded");if(g.previousClassNames?.length)g.container.classList.remove(...g.previousClassNames);let p=n.className?.split(/\s+/).filter((T)=>T.length>0)??[];if(g.container.classList.toggle("action-list-custom",p.length>0),p.length)g.container.classList.add(...p);if(g.previousClassNames=p,g.text.textContent=Go(n.label),n.badge)g.badge.textContent=n.badge,g.badge.style.display="";else g.badge.textContent="",g.badge.style.display="none";if(n.keybinding)g.description.textContent=n.keybinding.getLabel(),g.description.style.display="inline",g.description.style.letterSpacing="0.5px";else if(n.description){if(mn(g.description),typeof n.description==="string")g.description.textContent=Go(n.description);else{let T=Ll(n.description,{actionHandler:(R)=>{let Z=q.parse(R);if(this._linkHandler)this._linkHandler(Z,n);else this._openerService.open(Z,{allowCommands:!0})}});g.elementDisposables.add(T),g.description.appendChild(T.element)}g.description.style.display="inline"}else g.description.textContent="",g.description.style.display="none";let m=this._groupTitleByIndex.get(h);if(m)g.groupTitle.textContent=m,g.groupTitle.style.display="";else g.groupTitle.textContent="",g.groupTitle.style.display="none";if(n.detail)g.detail.textContent=Go(n.detail),g.detail.style.display="";else g.detail.textContent="",g.detail.style.display="none";g.container.classList.toggle("has-detail",!!n.detail),mn(g.inlineToggleContainer);let v=n.standaloneToggle??n.inlineToggle;if(v){let T=document.createElement("span");if(T.className="action-list-item-inline-toggle-label",T.textContent=Go(v.label),!n.standaloneToggle)g.inlineToggleContainer.append(T);g.inlineToggleContainer.style.display="",g.container.classList.toggle("has-inline-toggle",!!n.inlineToggle),g.container.classList.toggle("has-standalone-toggle",!!n.standaloneToggle);let R=g.elementDisposables.add(new Yf({ariaLabel:v.title??v.label,checked:v.checked,disabled:v.disabled}));if(g.inlineToggleContainer.append(R.domNode),n.standaloneToggle)g.elementDisposables.add(this._registerStandaloneToggle(n,R));g.elementDisposables.add(R.onChange(()=>v.onChange(R.checked))),g.elementDisposables.add(c(g.inlineToggleContainer,E.CLICK,(Z)=>Z.stopPropagation()))}else g.inlineToggleContainer.style.display="none",g.container.classList.remove("has-inline-toggle"),g.container.classList.remove("has-standalone-toggle");let S=this._keybindingService.lookupKeybinding(Gu)?.getLabel(),C=this._keybindingService.lookupKeybinding(Zu)?.getLabel();if(g.container.classList.toggle("option-disabled",!!n.disabled),n.hover!==void 0)g.container.title="";else if(n.tooltip)g.container.title=n.tooltip;else if(n.disabled)g.container.title=n.label;else if(n.standaloneToggle)g.container.title="";else if(this._hideDefaultKeybindingTooltip)g.container.title="";else if(S&&C)if(this._supportsPreview&&n.canPreview)g.container.title=e(1731,"{0} to Apply, {1} to Preview",S,C);else g.container.title=e(1732,"{0} to Apply",S);else g.container.title="";mn(g.toolbar);let x=[...n.toolbarActions??[]];if(n.onRemove)x.push(pc({id:ID,label:e(1733,"Remove"),class:J.asClassName(_.close),run:async()=>{await n.onRemove(),this._onRemoveItem?.(n)}}));if(g.container.classList.toggle("has-toolbar",x.length>0),x.length>0){let T=new Qi(g.toolbar);if(g.elementDisposables.add(T),this._stopToolbarPointerPropagation)g.elementDisposables.add(au(g.toolbar,(R)=>{R.preventDefault(),R.stopPropagation()})),g.elementDisposables.add(c(g.toolbar,E.CLICK,(R)=>R.stopPropagation())),g.elementDisposables.add(c(g.toolbar,$t.Tap,(R)=>R.stopPropagation()));else g.elementDisposables.add(au(g.toolbar,(R)=>R.preventDefault()));T.push(x,{icon:!0,label:!1}),g.elementDisposables.add(this._registerToolbar(n,T))}if(GS(n))g.submenuIndicator.className="action-list-submenu-indicator has-submenu "+J.asClassName(_.chevronRight),g.submenuIndicator.style.display="",g.submenuIndicator.style.visibility="",g.elementDisposables.add(c(g.submenuIndicator,E.CLICK,(T)=>{T.stopPropagation(),this._onShowSubmenu?.(n)}));else if(this._reservesSubmenuSpace())g.submenuIndicator.className="action-list-submenu-indicator",g.submenuIndicator.style.display="",g.submenuIndicator.style.visibility="hidden";else g.submenuIndicator.className="action-list-submenu-indicator",g.submenuIndicator.style.display="none";if($S(n))g.container.setAttribute("aria-haspopup",n.hover?.expandable?"dialog":"menu"),g.container.setAttribute("aria-expanded","false");else if(g.container.removeAttribute("aria-haspopup"),!n.isSectionToggle)g.container.removeAttribute("aria-expanded")}disposeTemplate(n){n.keybinding.dispose(),n.elementDisposables.dispose()}};Qf=o_([hs(10,me),hs(11,er)],Qf);class e_ extends UIEvent{constructor(){super("acceptSelectedAction")}}class t_ extends UIEvent{constructor(){super("previewSelectedAction")}}function LD(u){if(u.kind==="action")return u.label;return}var i_=Jf=class u extends i{constructor(n,h,g,p,m,v,S,C,x){super();if(this._supportsPreview=h,this._delegate=p,this._options=v,this._keybindingService=S,this._openerService=C,this._instantiationService=x,this._headerLineHeight=24,this._separatorLineHeight=8,this.cts=this._register(new Ge),this._submenuDisposables=this._register(new d),this._submenuHoverActionElements=[],this._itemMoveAnimation=this._register(new ce),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 ce),this._groupTitleByIndex=new Map,this._standaloneToggles=new Map,this._itemToolbars=new Map,this._onDidRequestLayout=this._register(new o),this.onDidRequestLayout=this._onDidRequestLayout.event,this._visibleMenuItems=g,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 Y=this._options.className.split(/\s+/).filter((Q)=>Q.length>0);if(Y.length>0)this.domNode.classList.add(...Y)}if(this._actionLineHeight=24,this._submenuContainer=document.createElement("div"),this._submenuContainer.className="action-list-submenu-panel action-widget",this._submenuContainer.style.display="none",this._options?.persistentHover)this._submenuContainer.style.boxSizing="border-box";if(this._submenuContainer.tabIndex=-1,this.domNode.append(this._submenuContainer),this._register(c(this._submenuContainer,"keydown",(Y)=>{if((Y.key==="Enter"||Y.key===" ")&&this._currentSubmenuElement?.hover?.tabThroughPanel){let te=Le(Y.target)?Y.target:void 0;if(te&&this._currentSubmenuElement.hover.getTabbableElements?.().includes(te)){Y.stopPropagation();return}}if(Y.key!=="ArrowLeft"&&Y.key!=="Escape")return;ke.stop(Y,!0);let Q=Y.key==="Escape"&&this._currentSubmenuWidget!==void 0;if(this._hideSubmenu(),Q){this.hide();return}this._setKeyboardNavigation(!0),this._list.domFocus()})),this._register(c(this._submenuContainer,"mouseenter",()=>{if(this._cancelSubmenuHide(),this._usesSubmenuPointerIntent())this._cancelSubmenuShow(),this._resetSubmenuPointer()})),this._register(c(this._submenuContainer,"mouseleave",()=>{this._scheduleSubmenuHide()})),this._register(c(this.domNode,E.MOUSE_LEAVE,()=>{this._cancelSubmenuShow(),this._resetSubmenuPointer()})),this._usesSubmenuPointerIntent())this._register(c(this.domNode,E.MOUSE_MOVE,(Y)=>{if(Le(Y.target)&&this._expandedTrigger?.contains(Y.target))this._updateSubmenuPointer(Y)}));if(this._register(N(()=>{this._cancelSubmenuHide(),this._cancelSubmenuShow()})),this._options?.collapsedByDefault)for(let Y of this._options.collapsedByDefault)this._collapsedSections.add(Y);let T={getHeight:(Y)=>this._getItemHeight(Y),getTemplateId:(Y)=>Y.kind},R=()=>{let Y=this._options?.reserveSubmenuSpace??!0;return Y==="always"||Y&&this._allMenuItems.some(GS)};this._list=this._register(new Co(n,this.domNode,T,[new Qf(this._supportsPreview,(Y)=>this._removeItem(Y),(Y)=>this._showSubmenuForItem(Y),R,this._groupTitleByIndex,this._options?.linkHandler,this._options?.hideDefaultKeybindingTooltip??!1,this._options?.stopToolbarPointerPropagation??!1,(Y,Q)=>(this._standaloneToggles.set(Y,Q),N(()=>{if(this._standaloneToggles.get(Y)===Q)this._standaloneToggles.delete(Y)})),(Y,Q)=>(this._itemToolbars.set(Y,Q),this._updateToolbarFocusability(),N(()=>{if(this._itemToolbars.get(Y)===Q)this._itemToolbars.delete(Y)})),this._keybindingService,this._openerService),new qS,new jS],{keyboardSupport:!1,typeNavigationEnabled:!this._options?.showFilter&&!this._options?.onType,keyboardNavigationLabelProvider:{getKeyboardNavigationLabel:LD},accessibilityProvider:{getAriaLabel:(Y)=>{if(Y.kind==="action"){let Q=Y.label?Go(Y?.label):"";if(Y.badge)Q=Q+", "+Go(Y.badge);if(Y.detail)Q=Q+", "+Go(Y.detail);if(Y.ariaDescription)Q=Q+", "+Go(Y.ariaDescription);else if(Y.description){let oe=typeof Y.description==="string"?Y.description:Y.description.value;Q=Q+", "+Go(oe)}if(Y.hover?.content&&!Y.ariaDescription&&!Y.description){let oe=Y.hover.content,ne=typeof oe==="string"?oe:jr(oe)?oe.value:Le(oe)?oe.textContent??void 0:void 0;if(ne&&(!Y.detail||Go(Y.detail)!==Go(ne)))Q=Q+", "+Go(ne)}if(Y.group?.title)Q=Q+", "+Y.group.title;let te=Y.standaloneToggle??Y.inlineToggle;if(te)Q=Y.standaloneToggle?te.checked?e(1734,"{0}, on",te.label):e(1735,"{0}, off",te.label):Q+", "+(te.checked?e(1736,"{0}, on",te.label):e(1737,"{0}, off",te.label));if(Y.disabled)Q=e(1738,"{0}, Disabled Reason: {1}",Q,Y.disabled);if(Y.submenuActions?.length)Q=e(1739,"{0}, use right arrow to access options",Q);return Q}return null},getWidgetAriaLabel:()=>e(1740,"Action Widget"),getSetSize:()=>this._visibleMenuItems.filter((Y)=>Y.kind==="action").length,getPosInSet:(Y,Q)=>Math.max(this._visibleMenuItems.slice(0,Q+1).filter((te)=>te.kind==="action").length,1),getRole:(Y)=>{switch(Y.kind){case"action":return"option";case"separator":return"separator";default:return"separator"}},getWidgetRole:()=>"listbox",...m}})),this._list.style(Nf),this._register(this._list.onKeyDown(()=>this._setKeyboardNavigation(!0))),this._register(c(this._list.getHTMLElement(),E.MOUSE_MOVE,(Y)=>{if(Y.movementX!==0||Y.movementY!==0)this._setKeyboardNavigation(!1)})),this._register(this._list.onMouseClick((Y)=>this.onListClick(Y))),this._register(this._list.onMouseOver((Y)=>{if(!this._ignoreInitialHover)this.onListHover(Y)}));let Z=this._register(new ce);if(Z.value=this._list.onMouseMove((Y)=>{if(Y.browserEvent.movementX!==0||Y.browserEvent.movementY!==0)Z.clear(),this._ignoreInitialHover=!1,this.onListHover(Y)}),this._register(this._list.onMouseDown(()=>{Z.clear(),this._ignoreInitialHover=!1,this._setKeyboardNavigation(!1)})),this._register(this._list.onDidChangeFocus(()=>{this._updateToolbarFocusability(),this.onFocus()})),this._register(this._list.onDidChangeSelection((Y)=>this.onListSelection(Y))),this._register(this._list.onDidScroll(()=>{if(!this._isMeasuringWidth)this._layoutSubmenu?.()})),this._allMenuItems=[...g],this._options?.showFilter||this._options?.secondaryHeading){this._filterContainer=document.createElement("div"),this._filterContainer.className="action-list-filter";let Y=k(this._filterContainer,w(".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")),Y.appendChild(this._filterInput),this._register(c(this._filterInput,E.KEY_DOWN,(oe)=>{if(this._setKeyboardNavigation(!0),oe.isComposing||!this._filterInput?.closest(".action-list-submenu-panel"))return;let ne=this._keybindingService.softDispatch(new Qe(oe),this._filterInput);if(ne.kind===2&&ne.commandId!==null&&xD.has(ne.commandId)||oe.key.length===1&&!oe.ctrlKey&&!oe.metaKey&&!oe.altKey)oe.stopPropagation()})),this._register(c(this._filterInput,E.MOUSE_DOWN,()=>this._setKeyboardNavigation(!1))),this._options.tabThroughItemActions)this._register(c(this._filterInput,"keydown",(oe)=>this._handleTabThroughPanelKeyDown(oe),!0));if(this._options.filterAsCombobox){let oe=this._list.getHTMLElement();oe.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",oe.id),this._register(this._list.onDidChangeFocus(()=>this._updateFilterActiveDescendant())),this._register(c(this._filterInput,"focus",()=>this._updateFilterActiveDescendant())),this._register(c(this._filterInput,"blur",()=>this._updateFilterActiveDescendant())),this._register(Ct(this._filterInput,"keydown",(ne)=>{if(this._imeSessionInProgress||ne.browserEvent.isComposing||ne.keyCode===114||ne.keyCode===15||ne.keyCode===17||ne.keyCode===14||ne.keyCode===13){ne.stopPropagation();return}let ge=ne.keyCode===16||ne.keyCode===18;if(!ge&&ne.keyCode!==3)return;if(ne.ctrlKey||ne.metaKey||ne.altKey||ne.shiftKey){if(ge)ne.stopPropagation();return}if(ke.stop(ne,!0),ne.keyCode===16)this.focusPrevious();else if(ne.keyCode===18)this.focusNext();else this.acceptSelected()}))}let Q=this._options?.filterActions??[];if(Q.length>0){let oe=k(Y,w(".action-list-filter-actions"));this._register(new Qi(oe)).push(Q,{icon:!0,label:!1})}let te=()=>{let oe=this._filterInput.value;if(this._imeSessionInProgress||oe===this._filterText&&!this._filterCts.value?.token.isCancellationRequested)return;this._filterText=oe,this._applyOrUpdateFilter()};this._register(c(this._filterInput,"compositionstart",()=>{this._imeSessionInProgress=!0,this._filterCts.value?.cancel()})),this._register(c(this._filterInput,"compositionend",()=>{this._imeSessionInProgress=!1,te()})),this._register(c(this._filterInput,"input",te))}if(this._options?.secondaryHeading){let Q=k(Y,w(".action-list-filter-label"));Q.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 Q=k(this._headerContainer,w("span.action-list-header-icon"));Q.classList.add(...J.asClassNameArray(this._options.headerIcon)),Q.setAttribute("aria-hidden","true")}let Y=k(this._headerContainer,w("span.action-list-header-text"));if(Y.textContent=this._options.headerText,this._register(c(this._headerContainer,E.MOUSE_ENTER,()=>{if(this._options?.persistentHover)this._cancelSubmenuShow(),this._resetSubmenuPointer();else this._hideSubmenu()})),this._options.headerLink){let{label:Q,uri:te}=this._options.headerLink;Y.textContent+=" ",this._register(this._instantiationService.createInstance(Ad,Y,{label:Q,href:te.toString(!0)},{}))}if(this._options.headerDismiss){let Q=this._options.headerDismiss,te=k(this._headerContainer,w("span.action-list-header-dismiss"));te.appendChild(w(J.asCSSSelector(_.close))),te.tabIndex=0,te.setAttribute("role","button"),te.setAttribute("aria-label",e(1743,"Dismiss"));let oe=()=>{Q(),this.focus(),this._headerContainer?.remove(),this._headerContainer=void 0,this._onDidRequestLayout.fire()};this._register(u0(te,()=>oe())),this._register(c(te,E.KEY_DOWN,(ne)=>{if(ne.key==="Enter"||ne.key===" ")ne.preventDefault(),oe()}))}}if(this._applyFilter(),this._list.length)this._focusCheckedOrFirst();if(this._register(c(this.domNode,"keydown",(Y)=>{if(Y.key==="ArrowRight"&&!Y.isComposing){let Q=this._list.getFocus();if(Q.length>0){let te=this._list.element(Q[0]);if(te?.submenuActions?.length||te?.hover?.expandable){ke.stop(Y,!0);let oe=this._getRowElement(Q[0]);if(oe)if(this._showSubmenuForElement(te,oe),te.hover?.tabThroughPanel)this._focusFirstTabThroughPanelControl(te,oe);else if(this._currentSubmenuWidget)this._currentSubmenuWidget.focus();else this._submenuContainer.focus()}}}})),this._register(c(this.domNode,"keydown",(Y)=>this._handleTabThroughPanelKeyDown(Y),!0)),this._filterInput||this._options?.onType)this._register(c(this.domNode,"keydown",(Y)=>{let Q=Y.target;if((this._options?.onType||this._options?.filterAsCombobox)&&Le(Q)&&(Qr(Q)||Q.closest('button, a, [contenteditable="true"], .action-list-submenu-panel')))return;if((!this._filterInput||!Fs(this._filterInput))&&!Y.isComposing&&Y.key.length===1&&Y.key!==" "&&!Y.ctrlKey&&!Y.metaKey&&!Y.altKey)if(Y.preventDefault(),Y.stopPropagation(),this._filterInput)this._filterInput.focus(),this._filterInput.value=Y.key,this._filterText=Y.key,this._applyOrUpdateFilter();else this._options?.onType?.(Y.key)}))}_toggleSection(n){let h=this._collapsedSections.has(n);if(h)this._collapsedSections.delete(n);else{this._collapsedSections.add(n);let g=this.getFocusedElement();if(g?.section===n&&!g.isSectionToggle){let p=this._visibleMenuItems.findIndex((m)=>m.section===n&&m.isSectionToggle);if(p>=0)this._list.setFocus([p])}}if(this._options?.onDidToggleSection?.(n,this._collapsedSections.has(n)),this._applyFilter(),h)this._revealFirstItemOfSection(n)}_revealFirstItemOfSection(n){for(let h=0;h<this._list.length;h++){let g=this._list.element(h);if(g.section===n&&!g.isSectionToggle){this._list.reveal(h);return}}}_applyOrUpdateFilter(){if(!this._delegate.onFilter){this._applyFilter();return}let n=this._filterText;this._filterCts.value?.cancel();let h=new Ge;this._filterCts.value=h,this._delegate.onFilter(n,h.token).then((g)=>{if(h.token.isCancellationRequested)return;this._allMenuItems=[...g],this._applyFilter(!0)}).catch(()=>{}).finally(()=>{if(this._filterCts.value===h&&!h.token.isCancellationRequested)this._filterCts.clear()})}_applyFilter(n=!1,h=!0,g){this._itemMoveAnimation.clear();let p=n?"":this._filterText.toLowerCase(),m=!n&&p.length>0,v=[],S=this._list.getFocus(),C;if(S.length>0)C=this._list.element(S[0]);if(m){let te,oe=[],ne=!1,he=()=>{if(te&&ne)v.push(te);v.push(...oe),te=void 0,oe=[],ne=!1},ge=(_e)=>{let Se=(_e.label??"").toLowerCase(),ae=typeof _e.description==="string"?_e.description:_e.description?.value??"";return Se.includes(p)||ae.toLowerCase().includes(p)};for(let _e of this._allMenuItems){if(_e.kind==="header")continue;if(_e.kind==="separator"){he(),te=_e.label?_e:void 0;continue}if(_e.showAlways){oe.push(_e);continue}if(_e.isSectionToggle)continue;if(_e.filterItems){let Se=ge(_e)?_e.filterItems:_e.filterItems.filter(ge);if(Se.length>0)ne=!0,oe.push(...Se);continue}if(ge(_e))ne=!0,oe.push(_e)}he()}else for(let te of this._allMenuItems){if(te.kind==="header"){v.push(te);continue}if(te.kind==="separator"){if(te.section&&this._collapsedSections.has(te.section))continue;v.push(te);continue}if(te.isSectionToggle&&te.section){let oe=this._collapsedSections.has(te.section);v.push({...te,group:{...te.group,icon:oe?_.chevronRight:_.chevronDown}});continue}if(te.section&&this._collapsedSections.has(te.section))continue;v.push(te)}let x=[],T=!1;for(let te=0;te<v.length;te++)if(x[te]=T,v[te].kind==="action")T=!0;let R=[],Z=!1;for(let te=v.length-1;te>=0;te--){if(v[te].kind==="action"){Z=!0;continue}if(v[te].kind!=="separator")continue;R[te]=Z,Z=!1}for(let te=v.length-1;te>=0;te--){let oe=v[te];if(oe.kind!=="separator")continue;let ne=R[te],he=!oe.label&&!x[te];if(!ne||he)v.splice(te,1)}if(this._options?.showGroupTitleOnFirstItem)this._recomputeGroupTitles(v);let Y=this._filterInput&&Fs(this._filterInput),Q=lu(this._list.getHTMLElement());if(this._visibleMenuItems=v,this._list.splice(0,this._list.length,v),h)this._onDidRequestLayout.fire();if(Y)this._filterInput?.focus(),this._focusCheckedOrFirst();else if(this._hasLaidOut){if(C||g){let te=g??C?.item?.id;if(te){for(let oe=0;oe<this._list.length;oe++)if(this._list.element(oe).item?.id===te){this._list.setFocus([oe]),this._list.reveal(oe);break}if(Q)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(n){return!n.disabled&&n.kind==="action"}_setKeyboardNavigation(n){if(this._keyboardNavigation===n)return;this._keyboardNavigation=n;let h=this._list.getHTMLElement();h.classList.toggle("keyboard-navigation",n===!0),h.classList.toggle("mouse-navigation",n===!1)}_updateFilterActiveDescendant(){if(!this._filterInput)return;let[n]=this._list.getFocus();if(Fs(this._filterInput)&&n!==void 0)this._filterInput.setAttribute("aria-activedescendant",this._list.getElementID(n));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 n=this._list.getFocus();if(n.length>0)return this._list.element(n[0]);return}_updateToolbarFocusability(){if(!this._options?.tabThroughItemActions)return;let[n]=this._list.getFocus(),h=n!==void 0&&n<this._list.length?this._list.element(n):void 0;for(let[g,p]of this._itemToolbars)p.setFocusable(g===h)}_focusCheckedOrFirst(){let n=this._suppressHover;this._suppressHover=!0;try{let h=this._initialFocusItemId;if(this._initialFocusItemId=void 0,h)for(let m=0;m<this._list.length;m++){let v=this._list.element(m);if(this.focusCondition(v)&&v.item?.id===h){this._list.setFocus([m]),this._list.reveal(m);return}}let[g]=this._list.getFocus();if(g!==void 0){let m=this._list.element(g);if(m&&this.focusCondition(m)){this._list.reveal(g);return}}for(let m=0;m<this._list.length;m++){let v=this._list.element(m);if(this.focusCondition(v)&&v.item?.checked){this._list.setFocus([m]),this._list.reveal(m);return}}this._list.focusFirst(void 0,this.focusCondition);let p=this._list.getFocus();if(p.length>0)this._list.reveal(p[0])}finally{if(this._suppressHover=n,this._options?.filterAsCombobox)this._updateFilterActiveDescendant()}}hide(n){this._delegate.onHide(n),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((n)=>n.isSectionToggle)}get lineHeight(){return this._actionLineHeight}_getItemHeight(n){return this._itemHeightWith(n,this._options)}_itemHeightWith(n,h){switch(n.kind){case"header":return this._headerLineHeight;case"separator":return n.label?this._actionLineHeight:this._separatorLineHeight;default:if(n.inlineToggle)return h?.inlineToggleItemHeight??70;return n.detail?h?.detailItemHeight??48:this._actionLineHeight}}computeFullHeight(){return this.computeHeightForItems(this._allMenuItems,void 0,this._options)}computeHeightForItems(n,h,g){let p=0;for(let m of n){if(h&&m.section&&!m.isSectionToggle&&h.has(m.section))continue;p+=this._itemHeightWith(m,g)}return p}computeListHeight(){let n=this._list.length,h=0;for(let g=0;g<n;g++){let p=this._list.element(g);h+=this._getItemHeight(p)}return h}layout(n,h){this._hasLaidOut=!0,this._list.layout(n,h),this.domNode.style.height=`${n}px`;let g=this.domNode.parentElement;if(g&&this._filterContainer?.parentElement===g)g.insertBefore(this._filterContainer,this.domNode);this._layoutSubmenu?.()}computeMaxWidth(n){let h=this._list.length,g=Math.max(n,this._options?.minWidth??0),p=this._options?.maxWidth??Number.POSITIVE_INFINITY,m=Math.max(p,g),v=(T)=>Math.min(Math.max(T,g),m),S=this._allMenuItems.length;if(S>=50)return v(380);if(S>h){let T=[];for(let te=0;te<h;te++)T.push(this._list.element(te));let R=this._list.renderHeight,Z=this._list.scrollTop,Y=this._list.getFocus(),Q=this._isMeasuringWidth;this._isMeasuringWidth=!0;try{let te=[...this._allMenuItems];this._list.splice(0,h,te);let oe=0;for(let he of te)oe+=this._getItemHeight(he);this._list.layout(oe);let ne=this._measureItemWidths(te);return v(Math.max(...ne))}finally{try{this._list.splice(0,this._list.length,T),this._list.layout(R),this._list.scrollTop=Z;let te=this._suppressHover;this._suppressHover=!0;try{this._list.setFocus(Y)}finally{this._suppressHover=te}}finally{this._isMeasuringWidth=Q}}}let C=[];for(let T=0;T<h;T++)C.push(this._list.element(T));let x=this._measureItemWidths(C);return v(Math.max(...x))}focusPrevious(){if(this._setKeyboardNavigation(!0),this._focusFilterResult("previous"))return;if(this._filterInput&&Fs(this._filterInput)){this._list.domFocus();let g=this._list.getFocus();if(g.length>0){this._list.focusPrevious(1,!1,void 0,this.focusCondition);let p=this._list.getFocus();if(p.length>0&&p[0]>=g[0])this._filterInput.focus();else if(p.length>0)this._list.reveal(p[0])}else{this._list.focusLast(void 0,this.focusCondition);let p=this._list.getFocus();if(p.length>0)this._list.reveal(p[0])}return}let n=this._list.getFocus();this._list.focusPrevious(1,!0,void 0,this.focusCondition);let h=this._list.getFocus();if(h.length>0){if(this._filterInput&&n.length>0&&h[0]>n[0]){this._list.setFocus([]),this._filterInput.focus();return}this._list.reveal(h[0])}}focusNext(){if(this._setKeyboardNavigation(!0),this._focusFilterResult("next"))return;if(this._filterInput&&Fs(this._filterInput)){if(this._list.domFocus(),this._list.getFocus().length>0){this._list.focusNext(1,!1,void 0,this.focusCondition);let p=this._list.getFocus();if(p.length>0)this._list.reveal(p[0])}else{this._list.focusFirst(void 0,this.focusCondition);let p=this._list.getFocus();if(p.length>0)this._list.reveal(p[0])}return}let n=this._list.getFocus();this._list.focusNext(1,!0,void 0,this.focusCondition);let h=this._list.getFocus();if(h.length>0){if(this._filterInput&&n.length>0&&h[0]<n[0]){this._list.setFocus([]),this._filterInput.focus();return}this._list.reveal(h[0])}}_focusFilterResult(n){if(!this._options?.filterAsCombobox||!this._filterInput||!Fs(this._filterInput))return!1;if(n==="previous")this._list.focusPrevious(1,!0,void 0,this.focusCondition);else this._list.focusNext(1,!0,void 0,this.focusCondition);let[h]=this._list.getFocus();if(h!==void 0)this._list.reveal(h);return!0}collapseFocusedSection(){let n=this._getFocusedSection();if(n&&!this._collapsedSections.has(n))this._toggleSection(n)}expandFocusedSection(){let n=this._getFocusedSection();if(n&&this._collapsedSections.has(n))this._toggleSection(n)}toggleFocusedSection(){let n=this._list.getFocus();if(n.length===0)return!1;let h=this._list.element(n[0]);if(h.isSectionToggle&&h.section)return this._toggleSection(h.section),!0;return!1}_getFocusedSection(){let n=this._list.getFocus();if(n.length===0)return;let h=this._list.element(n[0]);if(h.isSectionToggle&&h.section)return h.section;return h.section}acceptSelected(n){let h=this._list.getFocus();if(h.length===0)return;let g=h[0],p=this._list.element(g);if(!this.focusCondition(p))return;let m=n?new t_:new e_;this._list.setSelection([g],m)}onListSelection(n){if(!n.elements.length)return;let h=n.elements[0];if(h.standaloneToggle){this._list.setSelection([]);let p=this._standaloneToggles.get(h);if(p&&!p.disabled)p.checked=!p.checked,h.standaloneToggle.onChange(p.checked);return}if(h.isSectionToggle&&h.section){this._list.setSelection([]);let p=h.section;queueMicrotask(()=>{this._toggleSection(p)});return}let g=uf(n.browserEvent)||n.browserEvent?.type===$t.Tap;if(g){let p=n.browserEvent.target;if(Le(p)&&(p.closest(".action-list-item-toolbar")||p.closest(".action-list-submenu-indicator")||p.closest(".action-list-item-inline-toggle"))){this._list.setSelection([]);return}}if(h.openSubmenuOnClick&&h.submenuActions?.length&&(g||n.browserEvent instanceof e_)){if(this._list.setSelection([]),this._showSubmenuForItem(h),!g)this._currentSubmenuWidget?.focus();return}if(h.item&&this.focusCondition(h)){let p=n.browserEvent instanceof t_;this._delegate.onSelect(h.item,p&&this._supportsPreview)}else this._list.setSelection([])}onFocus(){let n=this._list.getFocus();if(n.length===0)return;let h=n[0],g=this._list.element(h);if(this._delegate.onFocus?.(g.item),!this._suppressHover){if(this._options?.persistentHover)this._cancelSubmenuShow(),this._resetSubmenuPointer(),this._list.reveal(h);this._showHoverForElement(g,h)}}_removeItem(n){let h=this._allMenuItems.indexOf(n);if(h>=0)this._allMenuItems.splice(h,1),this._applyFilter()}_recomputeGroupTitles(n){this._groupTitleByIndex.clear();let h=new Set;for(let g=0;g<n.length;g++){let p=n[g];if(p.kind==="action"&&p.group?.title&&!h.has(p.group.title))h.add(p.group.title),this._groupTitleByIndex.set(g,p.group.title)}}_measureItemWidths(n){let h=[];for(let g=0;g<n.length;g++){let p=this._getRowElement(g);if(p)p.style.width="auto",h.push({element:p,item:n[g]})}try{return h.map(({element:g,item:p})=>g.getBoundingClientRect().width+(p.detail?0:this._computeToolbarWidth(p)))}finally{for(let{element:g}of h)g.style.width=""}}_computeToolbarWidth(n){let h=n.toolbarActions?.length??0;if(n.onRemove)h++;if(h===0)return 0;return h*22+6+10}_getRowElement(n){if(n<0)return null;return this.domNode.ownerDocument.getElementById(this._list.getElementID(n))}_showTabThroughPanelForFocusedItem(){let n=this._list.getFocus();if(n.length===0)return;let h=n[0],g=this._list.element(h);if(!g.hover?.tabThroughPanel)return;let p=this._getRowElement(h);if(p)this._showSubmenuForElement(g,p)}_getTabThroughPanelControls(n,h){if(n.hover?.tabThroughPanel&&this._currentSubmenuElement!==n)this._showSubmenuForElement(n,h);return{toolbar:this._itemToolbars.get(n),panelControls:[...n.hover?.getTabbableElements?.()??[],...this._submenuHoverActionElements]}}_focusFirstTabThroughPanelControl(n,h){let g=this._getTabThroughPanelControls(n,h);if(g.toolbar?.length())g.toolbar.focus(0);else(g.panelControls[0]??this._list.getHTMLElement()).focus()}_handleTabThroughPanelKeyDown(n){if(n.isComposing)return;let h=this._list.getFocus();if(h.length===0)return;let g=h[0],p=this._list.element(g);if(!p.hover?.tabThroughPanel&&!this._options?.tabThroughItemActions)return;let m=this._getRowElement(g),v=Ft();if(!m||!Le(v))return;let S=this._getTabThroughPanelControls(p,m),C=S.toolbar?.isFocused()??!1,x=this._submenuContainer.contains(v);if((n.key==="ArrowUp"||n.key==="ArrowDown")&&(C||x)){if(ke.stop(n,!0),this._list.domFocus(),n.key==="ArrowUp")this.focusPrevious();else this.focusNext();return}if(n.key!=="Tab"||n.ctrlKey||n.metaKey||n.altKey)return;let T;if(n.shiftKey){if(x){let R=S.panelControls.indexOf(v);if(R>0)T=S.panelControls[R-1];else if(S.toolbar?.length()){ke.stop(n,!0),S.toolbar.focus(S.toolbar.length()-1);return}else T=this._list.getHTMLElement()}else if(S.toolbar?.isFocused()){let R=S.toolbar.viewItems.findIndex((Z,Y)=>S.toolbar?.isFocused(Y));if(R>0){ke.stop(n,!0),S.toolbar.focus(R-1);return}T=this._options?.filterAsCombobox?this._filterInput:this._list.getHTMLElement()}}else if(v===this._list.getHTMLElement()||v===this._filterInput){if(S.toolbar?.length()){ke.stop(n,!0),S.toolbar.focus(0);return}T=S.panelControls[0]}else if(S.toolbar?.isFocused()){let R=S.toolbar.viewItems.findIndex((Z,Y)=>S.toolbar?.isFocused(Y));if(R+1<S.toolbar.length()){ke.stop(n,!0),S.toolbar.focus(R+1);return}T=S.panelControls[0]}else{let R=S.panelControls.indexOf(v);if(R>=0)T=S.panelControls[R+1]??this._list.getHTMLElement()}if(T)ke.stop(n,!0),T.focus()}_showHoverForElement(n,h){if(this._currentSubmenuElement===n)return;let g=!!n.hover?.content,p=!!n.submenuActions?.length;if(g||p){let m=this._getRowElement(h);if(m)this._showSubmenuForElement(n,m);return}if(!this._options?.persistentHover)this._hideSubmenu()}_showSubmenuForItem(n){let h=this._list.indexOf(n);if(h>=0){let g=this._getRowElement(h);if(g)this._showSubmenuForElement(n,g)}}_showSubmenuForElement(n,h){if(!this._hoverEnabled||this._currentSubmenuElement===n)return;if(this._currentSubmenuElement=n,this._clearSubmenuContainer(),h.setAttribute("aria-expanded","true"),this._expandedTrigger=h,this._submenuPanelClassName=n.hover?.panelClassName,this._submenuPanelClassName)this._submenuContainer.classList.add(this._submenuPanelClassName);let g=n.hover?.preserveVerticalPosition,p=!!n.submenuActions?.length,m=g?w(".action-list-submenu-content"):this._submenuContainer,v=g?w(".action-list-submenu-viewport",void 0,m):void 0,S=v&&!p?this._submenuDisposables.add(new El(v,{horizontal:2,vertical:1,consumeMouseWheelIfScrollbarIsNeeded:!0,useShadows:!1})):void 0;if(S&&v)this._submenuContainer.appendChild(S.getDomNode()),this._submenuDisposables.add(c(v,E.SCROLL,()=>S.scanDomNode())),this._submenuDisposables.add(c(this._submenuContainer,E.KEY_DOWN,(ne)=>{let he=new Qe(ne);if(he.equals(12)||he.equals(11))ke.stop(ne,!0),S.setScrollPosition({scrollTop:S.getScrollPosition().scrollTop+(he.equals(12)?1:-1)*v.clientHeight})}));else if(v)this._submenuContainer.appendChild(v);let C,x=typeof n.hover?.content==="function"?n.hover.content():n.hover?.content;if(x){if(Le(x)){if(C=x,n.hover?.disposable)this._register(n.hover.disposable)}else{let ne=typeof x==="string"?new Mn(x):x,he=this._options?.linkHandler,ge=Ll(ne,{actionHandler:(_e)=>{let Se=q.parse(_e);if(he)he(Se,n);else this._openerService.open(Se,{allowCommands:!0})}});this._submenuDisposables.add(ge),C=ge.element}if(C.classList.add("action-list-submenu-hover-header"),C.classList.toggle("content-owns-padding",n.hover?.contentOwnsPadding===!0),n.submenuActions?.length)C.classList.add("has-submenu");m.appendChild(C)}if(n.hover?.actions?.length){let ne=w(".hover-row.status-bar"),he=k(ne,w(".actions"));for(let ge of n.hover.actions){let _e=this._keybindingService.lookupKeybinding(ge.commandId),Se=this._submenuDisposables.add(If.render(he,{label:ge.label,commandId:ge.commandId,run:(ae)=>ge.run(ae),iconClass:ge.iconClass},_e?.getLabel()??null));this._submenuHoverActionElements.push(Se.actionContainer)}this._submenuContainer.appendChild(ne)}if(this._submenuContainer.style.display="",this._submenuContainer.style.position="absolute",n.hover?.expandable){if(this._submenuContainer.setAttribute("role","dialog"),n.label)this._submenuContainer.setAttribute("aria-label",n.label)}else this._submenuContainer.removeAttribute("role");let T=B(this.domNode),R=0,Z=C?C.offsetWidth:0,Y;if(p){let ne=this._createSubmenuItems(n.submenuActions),he={onHide:()=>{},onSelect:(Se)=>{Se.run();let ae=this._currentSubmenuElement?.item;if(this._hideSubmenu(),ae)this._delegate.onSelect(ae);this.hide()}},ge=this._submenuDisposables.add(this._instantiationService.createInstance(Jf,"submenu",!1,ne,he,void 0,n.submenuOptions));if(Y=ge,ge.headerContainer)m.appendChild(ge.headerContainer);if(ge.filterContainer)m.appendChild(ge.filterContainer);if(m.appendChild(ge.domNode),ge.footerContainer)m.appendChild(ge.footerContainer);this._currentSubmenuWidget=ge,ge.clearFocus(),R=ge.computeListHeight(),ge.layout(R);let _e=ge.computeMaxWidth(0);if(Z=Math.max(Z,_e,ge.footerContainer?.offsetWidth??0),ge.layout(R,Z),ge.domNode.style.width=`${Z}px`,n.submenuOptions)this._submenuContainer.style.boxSizing="border-box",this._submenuContainer.style.width=`${Z+10}px`;this._submenuDisposables.add(ge.onDidRequestLayout(()=>{R=ge.computeListHeight(),ge.layout(R,Z),this._layoutSubmenu?.()})),this._submenuDisposables.add(c(m,"keydown",(Se)=>{if(Se.key==="Escape")ke.stop(Se,!0),this._hideSubmenu(),this.hide();else if(Se.key==="ArrowLeft")ke.stop(Se,!0),this._hideSubmenu(),this._setKeyboardNavigation(!0),this._list.domFocus();else if(Se.key==="Enter"||Se.key===" ")ke.stop(Se,!0),ge.acceptSelected();else if(Se.key==="ArrowDown")ke.stop(Se,!0),ge.focusNext();else if(Se.key==="ArrowUp")ke.stop(Se,!0),ge.focusPrevious()}))}let Q,te,oe=()=>{let ne=this._currentSubmenuElement;if(!ne||this._layoutSubmenu!==oe)return;let he=this._list.indexOf(ne),ge=he>=0?this._getRowElement(he):null,_e=this._options?.persistentHover;if(!ge&&(!_e||!this._allMenuItems.includes(ne))){this._hideSubmenu();return}if(this._expandedTrigger!==ge){if(this._expandedTrigger?.hasAttribute("aria-expanded"))this._expandedTrigger.setAttribute("aria-expanded","false");this._expandedTrigger=ge??void 0}ge?.setAttribute("aria-expanded","true");let Se=this.domNode.getBoundingClientRect(),ae=_e||ne.hover?.alignToParent,pe=ae?this.domNode.parentElement?.closest(".action-widget")?.getBoundingClientRect()??Se:Se,Me=ge?.getBoundingClientRect()??pe,Ae=ae||g?Gv(this.domNode):1;if(_e)this._submenuContainer.style.width=`${pe.width/Ae}px`;let We=this._submenuContainer.getBoundingClientRect(),Ie=ae?We.width:Z+10,Ve=T.innerWidth-(ae?pe.right:Me.right),tt=pe.left,qe=ae?0:4,rt=4;if(!ae){let Wt=T.innerWidth-2*rt;if(Ie>Wt)Ie=Math.max(Wt,0);this._submenuContainer.style.boxSizing="border-box",this._submenuContainer.style.width=`${Ie}px`}let $e=Ve>=Ie||Ve>=tt;if(_e&&this._submenuSide&&(this._submenuSide==="right"?Ve:tt)>=Ie)$e=this._submenuSide==="right";if(_e)this._submenuSide=$e?"right":"left";let Ot=$e?pe.right-Se.left+qe:pe.left-Se.left-Ie-qe,it=Se.left+Ot;if(it<rt)Ot+=rt-it;else if(it+Ie>T.innerWidth-rt)Ot-=it+Ie-(T.innerWidth-rt);this._submenuContainer.style.left=`${Ot/Ae}px`;let mt=We.height;if(g)Q??=mt/Ae;let At=Q!==void 0?Q*Ae:mt,St=te!==void 0?te*Ae:ge&&ne.hover?.alignToAnchorTop?Me.top-Se.top:ge?Me.top-Se.top+(Me.height-At)/2:We.top-Se.top;if(g&&ne.hover?.alignToAnchorTop&&v&&Y){let Wt=We.height-v.getBoundingClientRect().height,Pt=(Y.headerContainer?.offsetHeight??0)+(Y.filterContainer?.offsetHeight??0)+(Y.footerContainer?.offsetHeight??0),It=Wt+(Pt+R)*Ae;St=Math.min(St,T.innerHeight-Se.top-It-8)}let vt=Se.top+St+At;if(vt>T.innerHeight&&!(g&&ne.hover?.alignToAnchorTop))St-=vt-T.innerHeight+8;if(Se.top+St<0)St=-Se.top;if(g)te??=St/Ae;if(v&&S){let Wt=(We.height-S.getDomNode().getBoundingClientRect().height)/Ae,Pt=Math.max(0,(T.innerHeight-Se.top-St-8)/Ae-Wt);v.style.height=`${Math.min(m.getBoundingClientRect().height/Ae,Pt)}px`,S.scanDomNode()}else if(v&&Y){let Wt=(We.height-v.getBoundingClientRect().height)/Ae,Pt=Math.max(0,(T.innerHeight-Se.top-St-8)/Ae-Wt),It=(Y.headerContainer?.offsetHeight??0)+(Y.filterContainer?.offsetHeight??0)+(Y.footerContainer?.offsetHeight??0),Si=R===0?0:Math.max(this._actionLineHeight,Math.min(R,Pt-It));Y.layout(Si,Z),v.style.height=`${It+Si}px`}this._submenuContainer.style.top=`${St/Ae}px`};if(this._layoutSubmenu=oe,oe(),(this._options?.persistentHover||n.hover?.alignToParent||n.hover?.tabThroughPanel||g)&&this._currentSubmenuElement===n){if(!Y){let ne=this._submenuDisposables.add(new ce),he=this._submenuDisposables.add(new f0("ActionListWidget.hoverPanel",()=>{if(!ne.value)ne.value=ki(T,()=>{ne.clear(),oe()})},T));this._submenuDisposables.add(he.observe(g?m:this._submenuContainer,{box:"border-box"}))}if(this._options?.persistentHover||g)this._submenuDisposables.add(c(T,E.RESIZE,()=>{this._cancelSubmenuShow(),this._resetSubmenuPointer(),oe()}))}}_createSubmenuItems(n){let h=[],p=n.filter((m)=>m instanceof gs).filter((m)=>m.actions.length>0);for(let m=0;m<p.length;m++){let v=p[m];if(v.label)h.push({kind:"header",group:{title:v.label},label:v.label});for(let S of v.actions){let C=S,x=C.icon??J.fromId(S.checked?_.check.id:_.blank.id),T=C.hoverContent,R=T?new Mn().appendText(`${S.label}
|
|
3
|
+
`).appendMarkdown(T):void 0;h.push({item:S,kind:"action",label:S.label,description:S.tooltip&&S.tooltip!==S.label?S.tooltip:void 0,group:{title:"",icon:x},hideIcon:!1,hover:R?{content:R}:void 0,tooltip:S.tooltip||S.label,onRemove:C.onRemove,submenuActions:S instanceof gs?[new gs(S.id,"",S.actions)]:void 0})}if(m<p.length-1)h.push({kind:"separator",label:""})}for(let m of n)if(!(m instanceof gs)){let v=m,S=v.icon??J.fromId(m.checked?_.check.id:_.blank.id),C=v.hoverContent,x=C?new Mn().appendText(`${m.label}
|
|
4
|
+
`).appendMarkdown(C):void 0;h.push({item:m,kind:"action",label:m.label,description:m.tooltip&&m.tooltip!==m.label?m.tooltip:void 0,group:{title:"",icon:S},hideIcon:!1,hover:x?{content:x}:void 0,tooltip:m.tooltip||m.label,onRemove:v.onRemove})}return h}_hideSubmenu(){this._cancelSubmenuHide(),this._cancelSubmenuShow(),this._currentSubmenuElement=void 0,this._submenuSide=void 0,this._clearSubmenuContainer(),this._submenuContainer.style.display="none"}_clearSubmenuContainer(){if(this._layoutSubmenu=void 0,this._resetSubmenuPointer(),this._submenuContainer.contains(Ft()))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,mn(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(n,h){this._cancelSubmenuShow();let g=this._options?.submenuHoverDelay??500;if(this._usesSubmenuPointerIntent()){g=0;let m=this._submenuPointerOrigin;if(m&&h.clientX!==m.x&&this._currentSubmenuElement&&new EI(m.x,m.y,this._submenuContainer).contains(h.clientX,h.clientY)){let v=Date.now();this._submenuPointerGraceDeadline??=v+200,g=Math.max(0,this._submenuPointerGraceDeadline-v)}}let p=()=>{this._submenuShowTimeout=void 0;let m=this._list.indexOf(n),v=m>=0?this._getRowElement(m):null;if(v){if(this._showSubmenuForElement(n,v),this._usesSubmenuPointerIntent())this._updateSubmenuPointer(h)}};if(g===0)p();else this._submenuShowTimeout=setTimeout(p,g)}_updateSubmenuPointer(n){this._submenuPointerOrigin={x:n.clientX,y:n.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(n){this._setKeyboardNavigation(!1);let h=n.element;if(h&&h.item&&this.focusCondition(h)){let g=typeof n.index==="number"?[n.index]:[],p=Ft();if(this._options?.tabThroughItemActions&&this._list.getFocus()[0]!==n.index&&Le(p)&&this.domNode.contains(p)&&p.closest(".action-list-item-toolbar"))this._list.domFocus();if(Le(n.browserEvent.target)&&n.browserEvent.target.closest(".action-list-item-toolbar")!==null){if(!h.submenuActions?.length)this._cancelSubmenuShow();this._list.setFocus(this._options?.tabThroughItemActions?g:[]);return}let v=!!(h.submenuActions?.length||h.hover?.content),S=this._suppressHover;if(v||this._usesSubmenuPointerIntent())this._suppressHover=!0;try{this._list.setFocus(g)}finally{this._suppressHover=S}if(v){if(this._currentSubmenuElement===h){if(this._cancelSubmenuHide(),this._cancelSubmenuShow(),this._usesSubmenuPointerIntent())this._updateSubmenuPointer(n.browserEvent)}else{if(!this._usesSubmenuPointerIntent())this._hideSubmenu();this._scheduleSubmenuShow(h,n.browserEvent)}return}if(this._currentSubmenuElement===h)this._cancelSubmenuHide();else if(this._cancelSubmenuShow(),this._options?.submenuPointerIntent)this._scheduleSubmenuHide();else if(!this._options?.persistentHover)this._hideSubmenu();if(this._delegate.onHover&&!h.disabled&&h.kind==="action"&&this._currentSubmenuElement!==h){let C=await this._delegate.onHover(h.item,this.cts.token),x=C?C.canPreview:void 0;if(x!==h.canPreview){if(h.canPreview=x,typeof n.index==="number")this._list.splice(n.index,1,[h]),this._list.setFocus([n.index])}}}else if(h&&h.hover?.content&&typeof n.index==="number")if(this._currentSubmenuElement===h)this._cancelSubmenuHide(),this._cancelSubmenuShow();else{if(!this._options?.persistentHover)this._hideSubmenu();this._scheduleSubmenuShow(h,n.browserEvent)}}onListClick(n){if(n.element&&this.focusCondition(n.element))this._list.setFocus([])}};i_=Jf=o_([hs(6,me),hs(7,er),hs(8,A)],i_);var $u=class u extends i{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(n,h,g,p,m,v,S,C,x,T){super();this._contextViewService=C,this._layoutService=x,this._lastMinWidth=0,this._hasLaidOut=!1,this._anchor=S,this._preferredAnchorPosition=v?.anchorPosition,this._useFullHeight=v?.useFullHeight??!1,this._widgetClassName=v?.widgetClassName,this._widget=this._register(T.createInstance(i_,n,h,g,p,m,v)),this._register(this._widget.onDidRequestLayout(()=>{if(this._hasLaidOut)this.layout(this._lastMinWidth),this._contextViewService.layout()}))}focus(){this._widget.focus()}hide(n,h=!0){if(this._widget.hide(n),h)this._contextViewService.hideContextView()}clearFilter(){return this._widget.clearFilter()}focusPrevious(){this._widget.focusPrevious()}focusNext(){this._widget.focusNext()}collapseFocusedSection(){this._widget.collapseFocusedSection()}expandFocusedSection(){this._widget.expandFocusedSection()}toggleFocusedSection(){return this._widget.toggleFocusedSection()}acceptSelected(n){this._widget.acceptSelected(n)}hasDynamicHeight(){return this._widget.hasDynamicHeight}computeActionWidgetVerticalChromeHeight(){let n=this.domNode.parentElement?.closest(".action-widget");if(!n)return 0;let h=B(n).getComputedStyle(n),g=(p)=>Number.parseFloat(p)||0;return g(h.paddingTop)+g(h.paddingBottom)+g(h.borderTopWidth)+g(h.borderBottomWidth)}computeHeight(){let n=this._fixedContentHeight??this._widget.computeListHeight(),h=this._widget.filterContainer?36:0,g=this._widget.footerContainer?32:0,p=this._widget.headerContainer&&!this._widget.headerContainer.hidden?this._widget.headerContainer.offsetHeight||36:0,m=h+g+p,v=B(this.domNode),S;if(this.hasDynamicHeight()||this._preferredAnchorPosition!==void 0){let Z=v.innerHeight,Y=A0(this._anchor),Q=Y.top-v.pageYOffset,te=30,oe=Z-Q-Y.height-30,ne=Q;if(this._showAbove===void 0){let he=this._fixedContentHeight??this._widget.computeFullHeight();this._showAbove=this._preferredAnchorPosition!==void 0?this._preferredAnchorPosition===1:m+he>oe&&ne>oe}S=Math.max(0,(this._showAbove?ne:oe)-this.computeActionWidgetVerticalChromeHeight())}else{let Y=this._layoutService.getContainer(v).clientHeight,Q=this.domNode.getBoundingClientRect().top;S=Q>0?Y-Q-10:Y*0.7}let C=this._useFullHeight?v.innerHeight:Math.floor(v.innerHeight*0.6),x=this._widget.lineHeight;if(this._preferredAnchorPosition!==void 0){let Z=Math.min(S,C),Y=Math.min(n+m,Math.max(0,Z));return Math.max(0,Y-m)}let T=Math.min(Math.max(S,x*3+m),C);return Math.min(n+m,T)-m}layout(n,h){if(this._hasLaidOut=!0,this._lastMinWidth=n,h!==void 0)this._fixedContentHeight=h;let g=this.computeHeight();this._widget.layout(g);let p=this._widget.computeMaxWidth(n);return this._cachedMaxWidth=p,this._widget.layout(g,this._cachedMaxWidth),this._cachedMaxWidth}};$u=o_([hs(7,xs),hs(8,Hr),hs(9,A)],$u);function Go(u){return u.replace(/\r\n|\r|\n/g," ")}var kD=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},n_=function(u,n){return function(h,g){n(h,g,u)}};a("actionBar.toggledBackground",qh,e(1744,"Background color for toggled action items in action bar."));var ZS="--action-widget-close-start-opacity",XS="--action-widget-close-start-transform",zi={Visible:new M("codeActionMenuVisible",!1,e(1745,"Whether the action widget list is visible")),FilterFocused:new M("codeActionMenuFilterFocused",!1,e(1746,"Whether the action widget filter input is focused"))},co=ie("actionWidgetService"),Tn=class u extends i{get isVisible(){return zi.Visible.getValue(this._contextKeyService)||!1}constructor(n,h,g){super();this._contextViewService=n,this._contextKeyService=h,this._instantiationService=g,this._list=this._register(new ce),this._closeAnimation=this._register(new ce)}show(n,h,g,p,m,v,S,C,x){let T=zi.Visible.bindTo(this._contextKeyService),R=this._instantiationService.createInstance($u,n,h,g,p,C,x,m);this._contextViewService.showContextView({getAnchor:()=>m,render:(Z)=>(T.set(!0),this._renderWidget(Z,R,S??[],x)),onHide:(Z)=>{T.reset(),this._onWidgetClosed(Z)},get anchorPosition(){return R.anchorPosition},focus:()=>R.focus()},v,!1)}acceptSelected(n){this._list.value?.acceptSelected(n)}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(n){let h=this._list.value,g=this._widgetElement;if(!h||this._closingList===h)return;let p=h.closeAnimation;if(!g||!p||p.duration<=0||!this._hasRequiredAncestorClasses(g,p.requiredAncestorClasses)){this._closingList=h,h.hide(n);return}this._closingList=h;let m=B(g).getComputedStyle(g);g.style.setProperty(ZS,m.opacity),g.style.setProperty(XS,m.transform),g.classList.add(p.className),h.hide(n,!1),this._closeAnimation.value=fi(()=>{if(this._list.value===h)this._contextViewService.hideContextView(n)},p.duration)}clear(){this._closeAnimation.clear(),this._closingList=void 0,this._widgetElement?.style.removeProperty(ZS),this._widgetElement?.style.removeProperty(XS),this._widgetElement=void 0,this._list.clear()}_renderWidget(n,h,g,p){let m=document.createElement("div");m.classList.add("action-widget");let v=h.widgetClassName?.split(/\s+/).filter(Boolean);if(v?.length)m.classList.add(...v);if(n.appendChild(m),this._widgetElement=m,this._list.value=h,this._list.value){if(this._list.value.headerContainer)m.appendChild(this._list.value.headerContainer);if(this._list.value.filterContainer)m.appendChild(this._list.value.filterContainer);if(m.appendChild(this._list.value.domNode),this._list.value.footerContainer)m.appendChild(this._list.value.footerContainer)}else throw Error("List has no value");let S=new d;if(p?.filterAsCombobox)S.add(Ct(m,"keydown",(ne)=>{if(ne.keyCode===9&&!ne.browserEvent.isComposing)ke.stop(ne,!0),this.hide(!0)}));let C=this._list.value.headerContainer;if(C)S.add(au(C,(ne)=>ne.preventDefault()));let x=0;S.add(au(m,()=>{x=Date.now()+1000}));let T=document.createElement("div"),R=n.appendChild(T);R.classList.add("context-view-block"),S.add(au(R,(ne)=>ne.stopPropagation()));let Z=0;if(g.length){let ne=this._createActionBar(".action-widget-action-bar",g);if(ne)m.appendChild(ne.getContainer().parentElement),S.add(ne),Z=ne.getContainer().offsetWidth}let Y=this._list.value?.layout(Z);m.style.width=`${Y}px`;let Q=zi.FilterFocused.bindTo(this._contextKeyService);if(S.add({dispose:()=>Q.reset()}),this._list.value?.filterInput){let ne=this._list.value.filterInput;S.add(c(ne,"focus",()=>Q.set(!0))),S.add(c(ne,"blur",()=>Q.set(!1)))}let te=S.add(gi(n)),oe=S.add(new ce);return S.add(te.onDidFocus(()=>oe.clear())),S.add(te.onDidBlur(()=>{let ne=()=>{let he=x-Date.now();if(he>0){oe.value=fi(ne,he);return}let ge=Ft();if(ge&&(n.contains(ge)||ge.closest(".action-widget-hover")||ge.closest(".action-list-submenu-panel")))return;this.hide(!0)};oe.value=fi(ne,75)})),S}_createActionBar(n,h){if(!h.length)return;let g=w(n),p=new Qi(g);return p.push(h,{icon:!1,label:!0}),p}_hasRequiredAncestorClasses(n,h){if(!h?.length)return!0;for(let g=n;g;g=g.parentElement)if(h.every((p)=>g.classList.contains(p)))return!0;return!1}_onWidgetClosed(n){if(this._closingList===this._list.value){this.clear();return}this._closeAnimation.clear(),this._closingList=void 0,this._widgetElement=void 0,this._list.value?.hide(n)}};Tn=kD([n_(0,xs),n_(1,G),n_(2,A)],Tn);xe(co,Tn,1);var Lr=1100;lt(class extends Cn{constructor(){super({id:"hideCodeActionWidget",title:b(1747,"Hide action widget"),precondition:zi.Visible,keybinding:{weight:Lr,primary:9,secondary:[1033]}})}run(u){u.get(co).hide(!0)}});lt(class extends Cn{constructor(){super({id:"clearFilterCodeActionWidget",title:b(1748,"Clear action widget filter"),precondition:L.and(zi.Visible,zi.FilterFocused),keybinding:{weight:Lr+1,primary:9}})}run(u){let n=u.get(co);if(n instanceof Tn){if(!n.clearFilter())n.hide(!0)}}});lt(class extends Cn{constructor(){super({id:"selectPrevCodeAction",title:b(1749,"Select previous action"),precondition:zi.Visible,keybinding:{weight:Lr,primary:16,secondary:[2064],mac:{primary:16,secondary:[2064,302]}}})}run(u){let n=u.get(co);if(n instanceof Tn)n.focusPrevious()}});lt(class extends Cn{constructor(){super({id:"selectNextCodeAction",title:b(1750,"Select next action"),precondition:zi.Visible,keybinding:{weight:Lr,primary:18,secondary:[2066],mac:{primary:18,secondary:[2066,300]}}})}run(u){let n=u.get(co);if(n instanceof Tn)n.focusNext()}});lt(class extends Cn{constructor(){super({id:"collapseSectionCodeAction",title:b(1751,"Collapse section"),precondition:L.and(zi.Visible,zi.FilterFocused.negate()),keybinding:{weight:Lr,primary:15}})}run(u){let n=u.get(co);if(n instanceof Tn)n.collapseSection()}});lt(class extends Cn{constructor(){super({id:"expandSectionCodeAction",title:b(1752,"Expand section"),precondition:L.and(zi.Visible,zi.FilterFocused.negate()),keybinding:{weight:Lr,primary:17}})}run(u){let n=u.get(co);if(n instanceof Tn)n.expandSection()}});lt(class extends Cn{constructor(){super({id:"toggleSectionCodeAction",title:b(1753,"Toggle section"),precondition:L.and(zi.Visible,zi.FilterFocused.negate()),keybinding:{weight:Lr,primary:10}})}run(u){let n=u.get(co);if(n instanceof Tn){if(!n.toggleSection())n.acceptSelected()}}});lt(class extends Cn{constructor(){super({id:Gu,title:b(1754,"Accept selected action"),precondition:zi.Visible,keybinding:{weight:Lr,primary:3,secondary:[2137]}})}run(u){let n=u.get(co);if(n instanceof Tn)n.acceptSelected()}});lt(class extends Cn{constructor(){super({id:Zu,title:b(1755,"Preview selected action"),precondition:zi.Visible,keybinding:{weight:Lr,primary:2051}})}run(u){let n=u.get(co);if(n instanceof Tn)n.acceptSelected(!0)}});var YS=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Fd=function(u,n){return function(h,g){n(h,g,u)}},r_,s_=class u extends i{static{r_=this}static{this.baseId="editor.widget.postEditWidget"}constructor(n,h,g,p,m,v,S,C,x,T,R){super();this.typeId=n,this.editor=h,this.showCommand=p,this.range=m,this.edits=v,this.onSelectNewEdit=S,this.additionalActions=C,this._keybindingService=T,this._actionWidgetService=R,this.allowEditorOverflow=!0,this.suppressMouseDown=!0,this.create(),this.visibleContext=g.bindTo(x),this.visibleContext.set(!0),this._register(N(()=>this.visibleContext.reset())),this.editor.addContentWidget(this),this.editor.layoutContentWidget(this),this._register(N(()=>this.editor.removeContentWidget(this))),this._register(this.editor.onDidChangeCursorPosition((Z)=>{this.dispose()})),this._register(I.runAndSubscribe(T.onDidUpdateKeybindings,()=>{this._updateButtonTitle()}))}_updateButtonTitle(){this.button.element.title=this._keybindingService.appendKeybinding(this.showCommand.label,this.showCommand.id)}create(){this.domNode=w(".post-edit-widget"),this.button=this._register(new Qh(this.domNode,{supportIcons:!0})),this.button.label="$(insert)",this._register(c(this.domNode,E.CLICK,()=>this.showSelector()))}getId(){return r_.baseId+"."+this.typeId}getDomNode(){return this.domNode}getPosition(){return{position:this.range.getEndPosition(),preference:[2]}}showSelector(){let n=kt(this.button.element),h={x:n.left+n.width,y:n.top+n.height};this._actionWidgetService.show("postEditWidget",!1,this.edits.allEdits.map((g,p)=>({kind:"action",item:g,label:g.title,disabled:!1,canPreview:!1,group:{title:"",icon:J.fromId(p===this.edits.activeEditIndex?_.check.id:_.blank.id)}})),{onHide:()=>{this.editor.focus()},onSelect:(g)=>{this._actionWidgetService.hide(!1);let p=this.edits.allEdits.findIndex((m)=>m===g);if(p!==this.edits.activeEditIndex)return this.onSelectNewEdit(p)}},h,this.editor.getDomNode()??void 0,this.additionalActions)}};s_=r_=YS([Fd(8,G),Fd(9,me),Fd(10,co)],s_);var Dv=class u extends i{constructor(n,h,g,p,m,v,S,C){super();this._id=n,this._editor=h,this._visibleContext=g,this._showCommand=p,this._getAdditionalActions=m,this._instantiationService=v,this._bulkEditService=S,this._notificationService=C,this._currentWidget=this._register(new ce),this._register(I.any(h.onDidChangeModel,h.onDidChangeModelContent)(()=>this.clear()))}async applyEditAndShowIfNeeded(n,h,g,p,m){if(!n.length||!this._editor.hasModel())return;let v=this._editor.getModel(),S=h.allEdits.at(h.activeEditIndex);if(!S)return;let C=async(ne)=>{let he=this._editor.getModel();if(!he)return;await he.undo(),this.applyEditAndShowIfNeeded(n,{activeEditIndex:ne,allEdits:h.allEdits},g,p,m)},x=(ne,he)=>{if(pi(ne))return;if(this._notificationService.error(he),g)this.show(n[0],h,C)},T=new Cs(this._editor,3,void 0,m),R;try{R=await gM(p(S,T.token),T.token)}catch(ne){return x(ne,e(991,`Error resolving edit '{0}':
|
|
5
|
+
{1}`,S.title,Rv(ne)))}finally{T.dispose()}if(m.isCancellationRequested)return;let Z=ju(v.uri,n,R),Y=n[0],Q=v.deltaDecorations([],[{range:Y,options:{description:"paste-line-suffix",stickiness:0}}]);this._editor.focus();let te,oe;try{te=await this._bulkEditService.apply(Z,{editor:this._editor,token:m}),oe=v.getDecorationRange(Q[0])}catch(ne){return x(ne,e(992,`Error applying edit '{0}':
|
|
6
|
+
{1}`,S.title,Rv(ne)))}finally{v.deltaDecorations(Q,[])}if(m.isCancellationRequested)return;if(g&&te.isApplied&&h.allEdits.length>1)this.show(oe??Y,h,C)}show(n,h,g){if(this.clear(),this._editor.hasModel())this._currentWidget.value=this._instantiationService.createInstance(s_,this._id,this._editor,this._visibleContext,this._showCommand,n,h,g,this._getAdditionalActions())}clear(){this._currentWidget.clear()}tryShowSelector(){this._currentWidget.value?.showSelector()}};Dv=YS([Fd(5,A),Fd(6,Ec),Fd(7,wt)],Dv);var ED=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},kr=function(u,n){return function(h,g){n(h,g,u)}},Yo,mI="editor.changePasteType",DD="editor.pasteAs.preferences",GC=new M("pasteWidgetVisible",!1,e(971,"Whether the paste widget is showing")),a_="application/vnd.code.copymetadata",sd=class u extends i{static{Yo=this}static{this.ID="editor.contrib.copyPasteActionController"}static get(n){return n.getContribution(Yo.ID)}constructor(n,h,g,p,m,v,S,C,x,T){super();this._logService=g,this._bulkEditService=p,this._clipboardService=m,this._commandService=v,this._configService=S,this._languageFeaturesService=C,this._quickInputService=x,this._progressService=T,this._editor=n,this._register(n.onWillCopy((R)=>this.handleCopy(R))),this._register(n.onWillCut((R)=>this.handleCopy(R))),this._register(n.onWillPaste((R)=>this.handlePaste(R))),this._pasteProgressManager=this._register(new Iv("pasteIntoEditor",n,h)),this._postPasteWidgetManager=this._register(h.createInstance(Dv,"pasteIntoEditor",n,GC,{id:mI,label:e(972,"Show paste options...")},()=>Yo._configureDefaultAction?[Yo._configureDefaultAction]:[]))}changePasteType(){this._postPasteWidgetManager.tryShowSelector()}async pasteAs(n){this._logService.trace("CopyPasteController.pasteAs"),this._editor.focus();try{this._logService.trace("Before calling editor.action.clipboardPasteAction"),this._pasteAsActionContext={preferred:n},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(n){if(this._logService.trace("CopyPasteController#handleCopy"),!this._editor.hasTextFocus())return;if(this._clipboardService.clearInternalState?.(),!this.isPasteAsEnabled())return;let h=this._editor.getModel(),g=this._editor._getViewModel(),p=this._editor.getSelections();if(!h||!g||!p?.length)return;let m={multicursorText:n.dataToCopy.multicursorText??null,pasteOnNewLine:n.dataToCopy.isFromEmptySelection,mode:null},v=this._languageFeaturesService.documentPasteEditProvider.ordered(h).filter((R)=>!!R.prepareDocumentPaste);if(!v.length){this.setCopyMetadata(n.clipboardData,{defaultPastePayload:m});return}let S=new Ef,C=v.flatMap((R)=>R.copyMimeTypes??[]),x=Tl();this.setCopyMetadata(n.clipboardData,{id:x,providerCopyMimeTypes:C,defaultPastePayload:m});let T=v.map((R)=>({providerMimeTypes:R.copyMimeTypes,operation:Yt((Z)=>R.prepareDocumentPaste(h,n.dataToCopy.sourceRanges,S,Z).catch((Y)=>{console.error(Y);return}))}));Yo._currentCopyOperation?.operations.forEach((R)=>R.operation.cancel()),Yo._currentCopyOperation={handle:x,operations:T}}async handlePaste(n){if(this._logService.trace("CopyPasteController#handlePaste for id : ",n.metadata?.id),!this._editor.hasTextFocus())return;let h=n.toExternalVSDataTransfer();if(!h)return;h.delete(a_),ci.get(this._editor)?.closeMessage(),this._currentPasteOperation?.cancel(),this._currentPasteOperation=void 0;let g=this._editor.getModel(),p=this._editor.getSelections();if(!p?.length||!g)return;if(this._editor.getOption(104)||!this.isPasteAsEnabled()&&!this._pasteAsActionContext)return;let m=this.fetchCopyMetadata(n);this._logService.trace("CopyPasteController#handlePaste with metadata : ",m?.id," and text.length : ",n.clipboardData.getData("text/plain").length);let v=Array.from(n.clipboardData.files).map((x)=>x.type),S=[...n.clipboardData.types,...v,...m?.providerCopyMimeTypes??[],kn.uriList],C=this._languageFeaturesService.documentPasteEditProvider.ordered(g).filter((x)=>{let T=this._pasteAsActionContext?.preferred;if(T){if(!this.providerMatchesPreference(x,T))return!1}return x.pasteMimeTypes?.some((R)=>RI(R,S))});if(!C.length){if(this._pasteAsActionContext?.preferred)this.showPasteAsNoEditMessage(p,this._pasteAsActionContext.preferred),n.setHandled();return}if(n.setHandled(),this._pasteAsActionContext)this.showPasteAsPick(this._pasteAsActionContext.preferred,C,p,h,m);else this.doPasteInline(C,p,h,m,n.browserEvent)}showPasteAsNoEditMessage(n,h){let g="only"in h?h.only.value:("preferences"in h)?h.preferences.length?h.preferences.map((p)=>p.value).join(", "):e(973,"empty"):h.providerId;ci.get(this._editor)?.showMessage(e(974,"No paste edits for '{0}' found",g),n[0].getStartPosition())}doPasteInline(n,h,g,p,m){this._logService.trace("CopyPasteController#doPasteInline");let v=this._editor;if(!v.hasModel())return;let S=new Cs(v,3,void 0),C=Yt(async(x)=>{let T=this._editor;if(!T.hasModel())return;let R=T.getModel(),Z=new d,Y=Z.add(new Ge(x));Z.add(S.token.onCancellationRequested(()=>Y.cancel()));let Q=Y.token;try{if(await this.mergeInDataFromCopy(n,g,p,Q),Q.isCancellationRequested)return;let te=n.filter((he)=>this.isSupportedPasteProvider(he,g));if(!te.length||te.length===1&&te[0]instanceof Rh)return this.applyDefaultPasteHandler(g,p,Q,m);let oe={triggerKind:Qm.Automatic},ne=await this.getPasteEdits(te,g,R,h,oe,Q);if(Z.add(ne),Q.isCancellationRequested)return;if(ne.edits.length===1&&ne.edits[0].provider instanceof Rh)return this.applyDefaultPasteHandler(g,p,Q,m);if(ne.edits.length){let he=T.getOption(97).showPasteSelector==="afterPaste";return this._postPasteWidgetManager.applyEditAndShowIfNeeded(h,{activeEditIndex:this.getInitialActiveEditIndex(R,ne.edits),allEdits:ne.edits},he,async(ge,_e)=>{if(!ge.provider.resolveDocumentPasteEdit)return ge;let Se=ge.provider.resolveDocumentPasteEdit(ge,_e),ae=new aa,pe=await this._pasteProgressManager.showWhile(h[0].getEndPosition(),e(975,"Resolving paste edit for '{0}'. Click to cancel",ge.title),uc(Promise.race([ae.p,Se]),_e),{cancel:()=>ae.cancel()},0);if(pe)ge.insertText=pe.insertText,ge.additionalEdit=pe.additionalEdit;return ge},Q)}await this.applyDefaultPasteHandler(g,p,Q,m)}finally{if(Z.dispose(),this._currentPasteOperation===C)this._currentPasteOperation=void 0}});this._pasteProgressManager.showWhile(h[0].getEndPosition(),e(976,"Running paste handlers. Click to cancel and do basic paste"),C,{cancel:async()=>{if(C.cancel(),S.token.isCancellationRequested)return;await this.applyDefaultPasteHandler(g,p,S.token,m)}}).finally(()=>{S.dispose()}),this._currentPasteOperation=C}showPasteAsPick(n,h,g,p,m){this._logService.trace("CopyPasteController#showPasteAsPick");let v=Yt(async(S)=>{let C=this._editor;if(!C.hasModel())return;let x=C.getModel(),T=new d,R=T.add(new Cs(C,3,void 0,S));try{if(await this.mergeInDataFromCopy(h,p,m,R.token),R.token.isCancellationRequested)return;let Z=h.filter((ne)=>this.isSupportedPasteProvider(ne,p,n));if(n)Z=Z.filter((ne)=>this.providerMatchesPreference(ne,n));let Y={triggerKind:Qm.PasteAs,only:n&&"only"in n?n.only:void 0},Q=T.add(await this.getPasteEdits(Z,p,x,g,Y,R.token));if(R.token.isCancellationRequested)return;if(n)Q={edits:Q.edits.filter((ne)=>{if("only"in n)return n.only.contains(ne.kind);else if("preferences"in n)return n.preferences.some((he)=>he.contains(ne.kind));else return n.providerId===ne.provider.id}),dispose:Q.dispose};if(!Q.edits.length){if(n)this.showPasteAsNoEditMessage(g,n);return}let te;if(n)te=Q.edits.at(0);else{let ne={id:"editor.pasteAs.default",label:e(977,"Configure default paste action"),edit:void 0},he=await this._quickInputService.pick([...Q.edits.map((ge)=>({label:ge.title,description:ge.kind?.value,edit:ge})),...Yo._configureDefaultAction?[dM({type:"separator"}),{label:Yo._configureDefaultAction.label,edit:void 0}]:[]],{placeHolder:e(978,"Select Paste Action")});if(he===ne){Yo._configureDefaultAction?.run();return}te=he?.edit}if(!te)return;let oe=ju(x.uri,g,te);await this._bulkEditService.apply(oe,{editor:this._editor})}finally{if(T.dispose(),this._currentPasteOperation===v)this._currentPasteOperation=void 0}});this._progressService.withProgress({location:10,title:e(979,"Running paste handlers")},()=>v)}setCopyMetadata(n,h){this._logService.trace("CopyPasteController#setCopyMetadata new id : ",h.id),n.setData(a_,JSON.stringify(h))}fetchCopyMetadata(n){this._logService.trace("CopyPasteController#fetchCopyMetadata");let h=n.clipboardData.getData(a_);if(h)try{return JSON.parse(h)}catch{return}if(n.metadata)return{defaultPastePayload:{mode:n.metadata.mode,multicursorText:n.metadata.multicursorText??null,pasteOnNewLine:!!n.metadata.isFromEmptySelection}};return}async mergeInDataFromCopy(n,h,g,p){if(this._logService.trace("CopyPasteController#mergeInDataFromCopy with metadata : ",g?.id),g?.id&&Yo._currentCopyOperation?.handle===g.id){let m=Yo._currentCopyOperation.operations.filter((S)=>n.some((C)=>C.pasteMimeTypes.some((x)=>RI(x,S.providerMimeTypes)))).map((S)=>S.operation),v=await Promise.all(m);if(p.isCancellationRequested)return;for(let S of v.reverse())if(S)for(let[C,x]of S)h.replace(C,x)}if(!h.has(kn.uriList)){let m=await this._clipboardService.readResources();if(p.isCancellationRequested)return;if(m.length)h.append(kn.uriList,k0(bg.create(m)))}}async getPasteEdits(n,h,g,p,m,v){let S=new d,C=await uc(Promise.all(n.map(async(T)=>{try{let R=await T.provideDocumentPasteEdits?.(g,p,h,m,v);if(R)S.add(R);return R?.edits?.map((Z)=>({...Z,provider:T}))}catch(R){if(!pi(R))console.error(R);return}})),v),x=yo(C??[]).flat().filter((T)=>!m.only||m.only.contains(T.kind));return{edits:qC(x),dispose:()=>S.dispose()}}async applyDefaultPasteHandler(n,h,g,p){let v=await(n.get(kn.text)??n.get("text"))?.asString()??"";if(g.isCancellationRequested)return;let S={clipboardEvent:p,text:v,pasteOnNewLine:h?.defaultPastePayload.pasteOnNewLine??!1,multicursorText:h?.defaultPastePayload.multicursorText??null,mode:null};this._logService.trace("CopyPasteController#applyDefaultPasteHandler for id : ",h?.id),this._editor.trigger("keyboard","paste",S)}isSupportedPasteProvider(n,h,g){if(!n.pasteMimeTypes?.some((p)=>h.matches(p)))return!1;return!g||this.providerMatchesPreference(n,g)}providerMatchesPreference(n,h){if("only"in h)return n.providedPasteEditKinds.some((g)=>h.only.contains(g));else if("preferences"in h)return n.providedPasteEditKinds.some((g)=>h.preferences.some((p)=>p.contains(g)));else return n.id===h.providerId}getInitialActiveEditIndex(n,h){let g=this._configService.getValue(DD,{resource:n.uri});for(let p of Array.isArray(g)?g:[]){let m=new zt(p),v=h.findIndex((S)=>m.contains(S.kind));if(v>=0)return v}return 0}};sd=Yo=ED([kr(1,A),kr(2,Ze),kr(3,Ec),kr(4,bi),kr(5,Ue),kr(6,re),kr(7,z),kr(8,En),kr(9,q1)],sd);var ka="9_cutcopypaste",TD=Zr||document.queryCommandSupported&&document.queryCommandSupported("cut"),QS=Zr||document.queryCommandSupported&&document.queryCommandSupported("copy"),RD=typeof navigator.clipboard>"u"||ri?document.queryCommandSupported&&document.queryCommandSupported("paste"):!0;function l_(u){return u.register(),u}var ND=TD?l_(new mf({id:"editor.action.clipboardCutAction",precondition:void 0,kbOpts:Zr?{primary:2102,win:{primary:2102,secondary:[1044]},weight:100}:void 0,menuOpts:[{menuId:l.MenubarEditMenu,group:"2_ccp",title:e(864,"Cu&&t"),order:1},{menuId:l.EditorContext,group:ka,title:e(865,"Cut"),when:r.writable,order:1},{menuId:l.CommandPalette,group:"",title:e(866,"Cut"),order:1},{menuId:l.SimpleEditorContext,group:ka,title:e(867,"Cut"),when:r.writable,order:1}]})):void 0,MD=QS?l_(new mf({id:"editor.action.clipboardCopyAction",precondition:void 0,kbOpts:Zr?{primary:2081,win:{primary:2081,secondary:[2067]},weight:100}:void 0,menuOpts:[{menuId:l.MenubarEditMenu,group:"2_ccp",title:e(868,"&&Copy"),order:2},{menuId:l.EditorContext,group:ka,title:e(869,"Copy"),order:2},{menuId:l.CommandPalette,group:"",title:e(870,"Copy"),order:1},{menuId:l.SimpleEditorContext,group:ka,title:e(871,"Copy"),order:2}]})):void 0;Kn.appendMenuItem(l.MenubarEditMenu,{submenu:l.MenubarCopy,title:b(876,"Copy As"),group:"2_ccp",order:3});Kn.appendMenuItem(l.EditorContext,{submenu:l.EditorContextCopy,title:b(877,"Copy As"),group:ka,order:3});Kn.appendMenuItem(l.EditorContext,{submenu:l.EditorContextShare,title:b(878,"Share"),group:"11_share",order:-1,when:L.and(L.notEquals("resourceScheme","output"),r.editorTextFocus)});Kn.appendMenuItem(l.ExplorerContext,{submenu:l.ExplorerContextShare,title:b(879,"Share"),group:"11_share",order:-1});var d_=RD?l_(new mf({id:"editor.action.clipboardPasteAction",precondition:void 0,kbOpts:Zr?{primary:2100,win:{primary:2100,secondary:[1043]},linux:{primary:2100,secondary:[1043]},weight:100}:void 0,menuOpts:[{menuId:l.MenubarEditMenu,group:"2_ccp",title:e(872,"&&Paste"),order:4},{menuId:l.EditorContext,group:ka,title:e(873,"Paste"),when:r.writable,order:4},{menuId:l.CommandPalette,group:"",title:e(874,"Paste"),order:1},{menuId:l.SimpleEditorContext,group:ka,title:e(875,"Paste"),when:r.writable,order:4}]})):void 0;class eC extends U{constructor(){super({id:"editor.action.clipboardCopyWithSyntaxHighlightingAction",label:b(880,"Copy with Syntax Highlighting"),precondition:void 0,kbOpts:{kbExpr:r.textInputFocus,primary:0,weight:100}})}run(u,n){let h=u.get(Ze),g=u.get(bi);if(h.trace("ExecCommandCopyWithSyntaxHighlightingAction#run"),!n.hasModel())return;if(!n.getOption(45)&&n.getSelection().isEmpty())return;fu.forceCopyWithSyntaxHighlighting=!0,n.focus(),h.trace("ExecCommandCopyWithSyntaxHighlightingAction (before execCommand copy)"),c_(n,g),h.trace("ExecCommandCopyWithSyntaxHighlightingAction (after execCommand copy)"),fu.forceCopyWithSyntaxHighlighting=!1}}function c_(u,n){if(fu.electronBugWorkaroundCopyEventHasFired=!1,u.getContainerDomNode().ownerDocument.execCommand("copy"),Zr&&fu.electronBugWorkaroundCopyEventHasFired===!1){let{dataToCopy:h}=WM(u._getViewModel(),void 0,ri);n.writeText(h.text)}}function tC(u,n){if(!u)return;u.addImplementation(1e4,"code-editor",(h,g)=>{let p=h.get(Ze),m=h.get(bi);p.trace("registerExecCommandImpl (addImplementation code-editor for : ",n,")");let v=h.get(Ee).getFocusedCodeEditor();if(v&&v.hasTextFocus()&&v.hasModel()){let S=v.getOption(45),C=v.getSelection();if(C&&C.isEmpty()&&!S)return!0;if(v.getOption(171)&&n==="cut")JS(v),p.trace("registerExecCommandImpl (before execCommand copy)"),c_(v,m),v.trigger(void 0,"cut",void 0),p.trace("registerExecCommandImpl (after execCommand copy)");else{if(JS(v),p.trace("registerExecCommandImpl (before execCommand "+n+")"),n==="copy")c_(v,m);else v.getContainerDomNode().ownerDocument.execCommand(n);p.trace("registerExecCommandImpl (after execCommand "+n+")")}return!0}return!1}),u.addImplementation(0,"generic-dom",(h,g)=>{let p=h.get(Ze);return p.trace("registerExecCommandImpl (addImplementation generic-dom for : ",n,")"),p.trace("registerExecCommandImpl (before execCommand "+n+")"),df().execCommand(n),p.trace("registerExecCommandImpl (after execCommand "+n+")"),!0})}function JS(u){if(u.getOption(171)){let h=L0.get(u.getId());if(h)h.handleWillCopy()}}tC(ND,"cut");tC(MD,"copy");if(d_)d_.addImplementation(1e4,"code-editor",(u,n)=>{let h=u.get(Ze);h.trace("registerExecCommandImpl (addImplementation code-editor for : paste)");let g=u.get(Ee),p=u.get(bi),m=g.getFocusedCodeEditor();if(m&&m.hasModel()&&m.hasTextFocus()){if(m.getOption(171)){let C=L0.get(m.getId());if(C)C.handleWillPaste()}h.trace("registerExecCommandImpl (before triggerPaste)");let S=p.triggerPaste(Ke().vscodeWindowId);if(S)return h.trace("registerExecCommandImpl (triggerPaste defined)"),S.then(async()=>(h.trace("registerExecCommandImpl (after triggerPaste)"),sd.get(m)?.finishedPaste()??Promise.resolve()));else h.trace("registerExecCommandImpl (triggerPaste undefined)");if(Ns)return h.trace("registerExecCommandImpl (Paste handling on web)"),(async()=>{let C=await p.readText();if(C!==""){let x=Tf.INSTANCE.get(C),T=!1,R=null,Z=null;if(x)T=m.getOption(45)&&!!x.isFromEmptySelection,R=typeof x.multicursorText<"u"?x.multicursorText:null,Z=x.mode;h.trace("registerExecCommandImpl (clipboardText.length : ",C.length," id : ",x?.id,")"),m.trigger("keyboard","paste",{text:C,pasteOnNewLine:T,multicursorText:R,mode:Z})}})();return!0}return!1}),d_.addImplementation(0,"generic-dom",(u,n)=>(u.get(Ze).trace("registerExecCommandImpl (addImplementation generic-dom for : paste)"),u.get(bi).triggerPaste(Ke().vscodeWindowId)??!1));if(QS)O(eC);class nr{constructor(u,n,h){this.languageConfigurationService=h,this._selection=u,this._insertSpace=n,this._usedEndToken=null}static _haystackHasNeedleAtOffset(u,n,h){if(h<0)return!1;let g=n.length,p=u.length;if(h+g>p)return!1;for(let m=0;m<g;m++){let v=u.charCodeAt(h+m),S=n.charCodeAt(m);if(v===S)continue;if(v>=65&&v<=90&&v+32===S)continue;if(S>=65&&S<=90&&S+32===v)continue;return!1}return!0}_createOperationsForBlockComment(u,n,h,g,p,m){let{startLineNumber:v,startColumn:S,endLineNumber:C,endColumn:x}=u,T=p.getLineContent(v),R=p.getLineContent(C),Z=T.lastIndexOf(n,S-1+n.length),Y=R.indexOf(h,x-1-h.length);if(Z!==-1&&Y!==-1)if(v===C){if(T.substring(Z+n.length,Y).indexOf(h)>=0)Z=-1,Y=-1}else{let te=T.substring(Z+n.length),oe=R.substring(0,Y);if(te.indexOf(h)>=0||oe.indexOf(h)>=0)Z=-1,Y=-1}let Q;if(Z!==-1&&Y!==-1){if(g&&Z+n.length<T.length&&T.charCodeAt(Z+n.length)===32)n=n+" ";if(g&&Y>0&&R.charCodeAt(Y-1)===32)h=" "+h,Y-=1;Q=nr._createRemoveBlockCommentOperations(new t(v,Z+n.length+1,C,Y+1),n,h)}else Q=nr._createAddBlockCommentOperations(u,n,h,this._insertSpace),this._usedEndToken=Q.length===1?h:null;for(let te of Q)m.addTrackedEditOperation(te.range,te.text)}static _createRemoveBlockCommentOperations(u,n,h){let g=[];if(!t.isEmpty(u))g.push(Kt.delete(new t(u.startLineNumber,u.startColumn-n.length,u.startLineNumber,u.startColumn))),g.push(Kt.delete(new t(u.endLineNumber,u.endColumn,u.endLineNumber,u.endColumn+h.length)));else g.push(Kt.delete(new t(u.startLineNumber,u.startColumn-n.length,u.endLineNumber,u.endColumn+h.length)));return g}static _createAddBlockCommentOperations(u,n,h,g){let p=[];if(!t.isEmpty(u))p.push(Kt.insert(new s(u.startLineNumber,u.startColumn),n+(g?" ":""))),p.push(Kt.insert(new s(u.endLineNumber,u.endColumn),(g?" ":"")+h));else p.push(Kt.replace(new t(u.startLineNumber,u.startColumn,u.endLineNumber,u.endColumn),n+" "+h));return p}getEditOperations(u,n){let h=this._selection.startLineNumber,g=this._selection.startColumn;u.tokenization.tokenizeIfCheap(h);let p=u.getLanguageIdAtPosition(h,g),m=this.languageConfigurationService.getLanguageConfiguration(p).comments;if(!m||!m.blockCommentStartToken||!m.blockCommentEndToken)return;this._createOperationsForBlockComment(this._selection,m.blockCommentStartToken,m.blockCommentEndToken,this._insertSpace,u,n)}computeCursorState(u,n){let h=n.getInverseEditOperations();if(h.length===2){let g=h[0],p=h[1];return new F(g.range.endLineNumber,g.range.endColumn,p.range.startLineNumber,p.range.startColumn)}else{let g=h[0].range,p=this._usedEndToken?-this._usedEndToken.length-1:0;return new F(g.endLineNumber,g.endColumn+p,g.endLineNumber,g.endColumn+p)}}}class rr{constructor(u,n,h,g,p,m,v){this.languageConfigurationService=u,this._selection=n,this._indentSize=h,this._type=g,this._insertSpace=p,this._selectionId=null,this._deltaColumn=0,this._moveEndPositionDown=!1,this._ignoreEmptyLines=m,this._ignoreFirstLine=v||!1}static _gatherPreflightCommentStrings(u,n,h,g){u.tokenization.tokenizeIfCheap(n);let p=u.getLanguageIdAtPosition(n,1),m=g.getLanguageConfiguration(p).comments,v=m?m.lineCommentToken:null;if(!v)return null;let S=[];for(let C=0,x=h-n+1;C<x;C++)S[C]={ignore:!1,commentStr:v,commentStrOffset:0,commentStrLength:v.length};return S}static _analyzeLines(u,n,h,g,p,m,v,S,C){let x=!0,R=S.getLanguageConfiguration(C).comments?.lineCommentNoIndent??!1,Z;if(u===0)Z=!0;else if(u===1)Z=!1;else Z=!0;for(let Y=0,Q=g.length;Y<Q;Y++){let te=g[Y],oe=p+Y;if(oe===p&&v){te.ignore=!0;continue}let ne=h.getLineContent(oe),he=Gn(ne);if(he===-1){te.ignore=m,te.commentStrOffset=R?0:ne.length;continue}x=!1;let ge=R?0:he;if(te.ignore=!1,te.commentStrOffset=ge,Z&&!nr._haystackHasNeedleAtOffset(ne,te.commentStr,ge))if(u===0)Z=!1;else if(u===1);else te.ignore=!0;if(Z&&n){let _e=he+te.commentStrLength;if(_e<ne.length&&ne.charCodeAt(_e)===32)te.commentStrLength+=1}}if(u===0&&x){Z=!1;for(let Y=0,Q=g.length;Y<Q;Y++)g[Y].ignore=!1}return{supported:!0,shouldRemoveComments:Z,lines:g}}static _gatherPreflightData(u,n,h,g,p,m,v,S){let C=rr._gatherPreflightCommentStrings(h,g,p,S),x=h.getLanguageIdAtPosition(g,1);if(C===null)return{supported:!1};return rr._analyzeLines(u,n,h,C,g,m,v,S,x)}_executeLineComments(u,n,h,g){let p;if(h.shouldRemoveComments)p=rr._createRemoveLineCommentsOperations(h.lines,g.startLineNumber);else rr._normalizeInsertionPoint(u,h.lines,g.startLineNumber,this._indentSize),p=this._createAddLineCommentsOperations(h.lines,g.startLineNumber);let m=new s(g.positionLineNumber,g.positionColumn);for(let v=0,S=p.length;v<S;v++)if(n.addEditOperation(p[v].range,p[v].text),t.isEmpty(p[v].range)&&t.getStartPosition(p[v].range).equals(m)){if(u.getLineContent(m.lineNumber).length+1===m.column)this._deltaColumn=(p[v].text||"").length}this._selectionId=n.trackSelection(g)}_attemptRemoveBlockComment(u,n,h,g){let{startLineNumber:p,endLineNumber:m}=n,v=g.length+Math.max(u.getLineFirstNonWhitespaceColumn(n.startLineNumber),n.startColumn),S=u.getLineContent(p).lastIndexOf(h,v-1),C=u.getLineContent(m).indexOf(g,n.endColumn-1-h.length);if(S!==-1&&C===-1)C=u.getLineContent(p).indexOf(g,S+h.length),m=p;if(S===-1&&C!==-1)S=u.getLineContent(m).lastIndexOf(h,C),p=m;if(n.isEmpty()&&(S===-1||C===-1)){if(S=u.getLineContent(p).indexOf(h),S!==-1)C=u.getLineContent(p).indexOf(g,S+h.length)}if(S!==-1&&u.getLineContent(p).charCodeAt(S+h.length)===32)h+=" ";if(C!==-1&&u.getLineContent(m).charCodeAt(C-1)===32)g=" "+g,C-=1;if(S!==-1&&C!==-1)return nr._createRemoveBlockCommentOperations(new t(p,S+h.length+1,m,C+1),h,g);return null}_executeBlockComment(u,n,h){u.tokenization.tokenizeIfCheap(h.startLineNumber);let g=u.getLanguageIdAtPosition(h.startLineNumber,1),p=this.languageConfigurationService.getLanguageConfiguration(g).comments;if(!p||!p.blockCommentStartToken||!p.blockCommentEndToken)return;let{blockCommentStartToken:m,blockCommentEndToken:v}=p,S=this._attemptRemoveBlockComment(u,h,m,v);if(!S){if(h.isEmpty()){let C=u.getLineContent(h.startLineNumber),x=Gn(C);if(x===-1)x=C.length;S=nr._createAddBlockCommentOperations(new t(h.startLineNumber,x+1,h.startLineNumber,C.length+1),m,v,this._insertSpace)}else S=nr._createAddBlockCommentOperations(new t(h.startLineNumber,u.getLineFirstNonWhitespaceColumn(h.startLineNumber),h.endLineNumber,u.getLineMaxColumn(h.endLineNumber)),m,v,this._insertSpace);if(S.length===1)this._deltaColumn=m.length+1}this._selectionId=n.trackSelection(h);for(let C of S)n.addEditOperation(C.range,C.text)}getEditOperations(u,n){let h=this._selection;if(this._moveEndPositionDown=!1,h.startLineNumber===h.endLineNumber&&this._ignoreFirstLine){n.addEditOperation(new t(h.startLineNumber,u.getLineMaxColumn(h.startLineNumber),h.startLineNumber+1,1),h.startLineNumber===u.getLineCount()?"":`
|
|
7
|
+
`),this._selectionId=n.trackSelection(h);return}if(h.startLineNumber<h.endLineNumber&&h.endColumn===1)this._moveEndPositionDown=!0,h=h.setEndPosition(h.endLineNumber-1,u.getLineMaxColumn(h.endLineNumber-1));let g=rr._gatherPreflightData(this._type,this._insertSpace,u,h.startLineNumber,h.endLineNumber,this._ignoreEmptyLines,this._ignoreFirstLine,this.languageConfigurationService);if(g.supported)return this._executeLineComments(u,n,g,h);return this._executeBlockComment(u,n,h)}computeCursorState(u,n){let h=n.getTrackedSelection(this._selectionId);if(this._moveEndPositionDown)h=h.setEndPosition(h.endLineNumber+1,1);return new F(h.selectionStartLineNumber,h.selectionStartColumn+this._deltaColumn,h.positionLineNumber,h.positionColumn+this._deltaColumn)}static _createRemoveLineCommentsOperations(u,n){let h=[];for(let g=0,p=u.length;g<p;g++){let m=u[g];if(m.ignore)continue;h.push(Kt.delete(new t(n+g,m.commentStrOffset+1,n+g,m.commentStrOffset+m.commentStrLength+1)))}return h}_createAddLineCommentsOperations(u,n){let h=[],g=this._insertSpace?" ":"";for(let p=0,m=u.length;p<m;p++){let v=u[p];if(v.ignore)continue;h.push(Kt.insert(new s(n+p,v.commentStrOffset+1),v.commentStr+g))}return h}static nextVisibleColumn(u,n,h,g){if(h)return u+(n-u%n);return u+g}static _normalizeInsertionPoint(u,n,h,g){let p=1073741824,m,v;for(let S=0,C=n.length;S<C;S++){if(n[S].ignore)continue;let x=u.getLineContent(h+S),T=0;for(let R=0,Z=n[S].commentStrOffset;T<p&&R<Z;R++)T=rr.nextVisibleColumn(T,g,x.charCodeAt(R)===9,1);if(T<p)p=T}p=Math.floor(p/g)*g;for(let S=0,C=n.length;S<C;S++){if(n[S].ignore)continue;let x=u.getLineContent(h+S),T=0;for(m=0,v=n[S].commentStrOffset;T<p&&m<v;m++)T=rr.nextVisibleColumn(T,g,x.charCodeAt(m)===9,1);if(T>p)n[S].commentStrOffset=m-1;else n[S].commentStrOffset=m}}}class Xu extends U{constructor(u,n){super(n);this._type=u}run(u,n){let h=u.get(ut);if(!n.hasModel())return;let g=n.getModel(),p=[],m=g.getOptions(),v=n.getOption(29),S=n.getSelections().map((x,T)=>({selection:x,index:T,ignoreFirstLine:!1}));S.sort((x,T)=>t.compareRangesUsingStarts(x.selection,T.selection));let C=S[0];for(let x=1;x<S.length;x++){let T=S[x];if(C.selection.endLineNumber===T.selection.startLineNumber)if(C.index<T.index)T.ignoreFirstLine=!0;else C.ignoreFirstLine=!0,C=T}for(let x of S)p.push(new rr(h,x.selection,m.indentSize,this._type,v.insertSpace,v.ignoreEmptyLines,x.ignoreFirstLine));n.pushUndoStop(),n.executeCommands(this.id,p),n.pushUndoStop()}}class iC extends Xu{constructor(){super(0,{id:"editor.action.commentLine",label:b(948,"Toggle Line Comment"),precondition:r.writable,kbOpts:{kbExpr:r.editorTextFocus,primary:2138,weight:100},menuOpts:{menuId:l.MenubarEditMenu,group:"5_insert",title:e(946,"&&Toggle Line Comment"),order:1},canTriggerInlineEdits:!0})}}class oC extends Xu{constructor(){super(1,{id:"editor.action.addCommentLine",label:b(949,"Add Line Comment"),precondition:r.writable,kbOpts:{kbExpr:r.editorTextFocus,primary:hn(2089,2081),weight:100},canTriggerInlineEdits:!0})}}class nC extends Xu{constructor(){super(2,{id:"editor.action.removeCommentLine",label:b(950,"Remove Line Comment"),precondition:r.writable,kbOpts:{kbExpr:r.editorTextFocus,primary:hn(2089,2099),weight:100},canTriggerInlineEdits:!0})}}class rC extends U{constructor(){super({id:"editor.action.blockComment",label:b(951,"Toggle Block Comment"),precondition:r.writable,kbOpts:{kbExpr:r.editorTextFocus,primary:1567,linux:{primary:3103},weight:100},menuOpts:{menuId:l.MenubarEditMenu,group:"5_insert",title:e(947,"Toggle &&Block Comment"),order:2},canTriggerInlineEdits:!0})}run(u,n){let h=u.get(ut);if(!n.hasModel())return;let g=n.getOption(29),p=[],m=n.getSelections();for(let v of m)p.push(new nr(v,g.insertSpace,h));n.pushUndoStop(),n.executeCommands(this.id,p),n.pushUndoStop()}}O(iC);O(oC);O(nC);O(rC);class Yu{constructor(u){this.selections=u}equals(u){let n=this.selections.length,h=u.selections.length;if(n!==h)return!1;for(let g=0;g<n;g++)if(!this.selections[g].equalsSelection(u.selections[g]))return!1;return!0}}class Ju{constructor(u,n,h){this.cursorState=u,this.scrollTop=n,this.scrollLeft=h}}class Hd extends i{static{this.ID="editor.contrib.cursorUndoRedoController"}static get(u){return u.getContribution(Hd.ID)}constructor(u){super();this._editor=u,this._isCursorUndoRedo=!1,this._undoStack=[],this._redoStack=[],this._register(u.onDidChangeModel((n)=>{this._undoStack=[],this._redoStack=[]})),this._register(u.onDidChangeModelContent((n)=>{this._undoStack=[],this._redoStack=[]})),this._register(u.onDidChangeCursorSelection((n)=>{if(this._isCursorUndoRedo)return;if(!n.oldSelections)return;if(n.oldModelVersionId!==n.modelVersionId)return;let h=new Yu(n.oldSelections);if(!(this._undoStack.length>0&&this._undoStack[this._undoStack.length-1].cursorState.equals(h))){if(this._undoStack.push(new Ju(h,u.getScrollTop(),u.getScrollLeft())),this._redoStack=[],this._undoStack.length>50)this._undoStack.shift()}}))}cursorUndo(){if(!this._editor.hasModel()||this._undoStack.length===0)return;this._redoStack.push(new Ju(new Yu(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 Ju(new Yu(this._editor.getSelections()),this._editor.getScrollTop(),this._editor.getScrollLeft())),this._applyState(this._redoStack.pop())}_applyState(u){this._isCursorUndoRedo=!0,this._editor.setSelections(u.cursorState.selections),this._editor.setScrollPosition({scrollTop:u.scrollTop,scrollLeft:u.scrollLeft}),this._isCursorUndoRedo=!1}}class sC extends U{constructor(){super({id:"cursorUndo",label:b(965,"Cursor Undo"),precondition:void 0,kbOpts:{kbExpr:r.textInputFocus,primary:2099,weight:100}})}run(u,n,h){Hd.get(n)?.cursorUndo()}}class aC extends U{constructor(){super({id:"cursorRedo",label:b(966,"Cursor Redo"),precondition:void 0})}run(u,n,h){Hd.get(n)?.cursorRedo()}}fe(Hd.ID,Hd,0);O(sC);O(aC);class h_{constructor(u,n,h){this.selection=u,this.targetPosition=n,this.copy=h,this.targetSelection=null}getEditOperations(u,n){let h=u.getValueInRange(this.selection);if(!this.copy)n.addEditOperation(this.selection,null);if(n.addEditOperation(new t(this.targetPosition.lineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.targetPosition.column),h),this.selection.containsPosition(this.targetPosition)&&!(this.copy&&(this.selection.getEndPosition().equals(this.targetPosition)||this.selection.getStartPosition().equals(this.targetPosition)))){this.targetSelection=this.selection;return}if(this.copy){this.targetSelection=new F(this.targetPosition.lineNumber,this.targetPosition.column,this.selection.endLineNumber-this.selection.startLineNumber+this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn);return}if(this.targetPosition.lineNumber>this.selection.endLineNumber){this.targetSelection=new F(this.targetPosition.lineNumber-this.selection.endLineNumber+this.selection.startLineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn);return}if(this.targetPosition.lineNumber<this.selection.endLineNumber){this.targetSelection=new F(this.targetPosition.lineNumber,this.targetPosition.column,this.targetPosition.lineNumber+this.selection.endLineNumber-this.selection.startLineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn);return}if(this.selection.endColumn<=this.targetPosition.column)this.targetSelection=new F(this.targetPosition.lineNumber-this.selection.endLineNumber+this.selection.startLineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column-this.selection.endColumn+this.selection.startColumn:this.targetPosition.column-this.selection.endColumn+this.selection.startColumn,this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column:this.selection.endColumn);else this.targetSelection=new F(this.targetPosition.lineNumber-this.selection.endLineNumber+this.selection.startLineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.targetPosition.column+this.selection.endColumn-this.selection.startColumn)}computeCursorState(u,n){return this.targetSelection}}function Wd(u){if(ve)return u.altKey;else return u.ctrlKey}class Bd extends i{static{this.ID="editor.contrib.dragAndDrop"}static{this.TRIGGER_KEY_VALUE=ve?6:5}constructor(u){super();this._editor=u,this._dndDecorationIds=this._editor.createDecorationsCollection(),this._register(this._editor.onMouseDown((n)=>this._onEditorMouseDown(n))),this._register(this._editor.onMouseUp((n)=>this._onEditorMouseUp(n))),this._register(this._editor.onMouseDrag((n)=>this._onEditorMouseDrag(n))),this._register(this._editor.onMouseDrop((n)=>this._onEditorMouseDrop(n))),this._register(this._editor.onMouseDropCanceled(()=>this._onEditorMouseDropCanceled())),this._register(this._editor.onKeyDown((n)=>this.onEditorKeyDown(n))),this._register(this._editor.onKeyUp((n)=>this.onEditorKeyUp(n))),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(u){if(!this._editor.getOption(42)||this._editor.getOption(28))return;if(Wd(u))this._modifierPressed=!0;if(this._mouseDown&&Wd(u))this._editor.updateOptions({mouseStyle:"copy"})}onEditorKeyUp(u){if(!this._editor.getOption(42)||this._editor.getOption(28))return;if(Wd(u))this._modifierPressed=!1;if(this._mouseDown&&u.keyCode===Bd.TRIGGER_KEY_VALUE)this._editor.updateOptions({mouseStyle:"default"})}_onEditorMouseDown(u){this._mouseDown=!0}_onEditorMouseUp(u){this._mouseDown=!1,this._editor.updateOptions({mouseStyle:"text"})}_onEditorMouseDrag(u){let n=u.target;if(this._dragSelection===null){let g=(this._editor.getSelections()||[]).filter((p)=>n.position&&p.containsPosition(n.position));if(g.length===1)this._dragSelection=g[0];else return}if(Wd(u.event))this._editor.updateOptions({mouseStyle:"copy"});else this._editor.updateOptions({mouseStyle:"default"});if(n.position)if(this._dragSelection.containsPosition(n.position))this._removeDecoration();else this.showAt(n.position)}_onEditorMouseDropCanceled(){this._editor.updateOptions({mouseStyle:"text"}),this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1}_onEditorMouseDrop(u){if(u.target&&(this._hitContent(u.target)||this._hitMargin(u.target))&&u.target.position){let n=new s(u.target.position.lineNumber,u.target.position.column);if(this._dragSelection===null){let h=null;if(u.event.shiftKey){let g=this._editor.getSelection();if(g){let{selectionStartLineNumber:p,selectionStartColumn:m}=g;h=[new F(p,m,n.lineNumber,n.column)]}}else h=(this._editor.getSelections()||[]).map((g)=>{if(g.containsPosition(n))return new F(n.lineNumber,n.column,n.lineNumber,n.column);else return g});this._editor.setSelections(h||[],"mouse",3)}else if(!this._dragSelection.containsPosition(n)||(Wd(u.event)||this._modifierPressed)&&(this._dragSelection.getEndPosition().equals(n)||this._dragSelection.getStartPosition().equals(n)))this._editor.pushUndoStop(),this._editor.executeCommand(Bd.ID,new h_(this._dragSelection,n,Wd(u.event)||this._modifierPressed)),this._editor.pushUndoStop()}this._editor.updateOptions({mouseStyle:"text"}),this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1}static{this._DECORATION_OPTIONS=de.register({description:"dnd-target",className:"dnd-target"})}showAt(u){this._dndDecorationIds.set([{range:new t(u.lineNumber,u.column,u.lineNumber,u.column),options:Bd._DECORATION_OPTIONS}]),this._editor.revealPosition(u,1)}_removeDecoration(){this._dndDecorationIds.clear()}_hitContent(u){return u.type===6||u.type===7}_hitMargin(u){return u.type===2||u.type===3||u.type===4}dispose(){this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1,this._modifierPressed=!1,super.dispose()}}fe(Bd.ID,Bd,2);function u_(u,n,h,g){if(u.getLineCount()===1&&u.getLineMaxColumn(1)===1)return[];let p=n.getLanguageConfiguration(u.getLanguageId()).indentRulesSupport;if(!p)return[];let m=new ay(u,p,n);g=Math.min(g,u.getLineCount());while(h<=g){if(!m.shouldIgnore(h))break;h++}if(h>g-1)return[];let{tabSize:v,indentSize:S,insertSpaces:C}=u.getOptions(),x=(te,oe)=>(oe=oe||1,ns.shiftIndent(te,te.length+oe,v,S,C)),T=(te,oe)=>(oe=oe||1,ns.unshiftIndent(te,te.length+oe,v,S,C)),R=[],Z=u.getLineContent(h),Y=Rt(Z),Q=Y;if(m.shouldIncrease(h))Q=x(Q),Y=x(Y);else if(m.shouldIndentNextLine(h))Q=x(Q);h++;for(let te=h;te<=g;te++){if(OD(u,te))continue;let oe=u.getLineContent(te),ne=Rt(oe),he=Q;if(m.shouldDecrease(te,he))Q=T(Q),Y=T(Y);if(ne!==Q)R.push(Kt.replaceMove(new F(te,1,te,ne.length+1),ry(Q,S,C)));if(m.shouldIgnore(te))continue;else if(m.shouldIncrease(te,he))Y=x(Y),Q=Y;else if(m.shouldIndentNextLine(te,he))Q=x(Q);else Q=Y}return R}function OD(u,n){if(!u.tokenization.isCheapToTokenize(n))return!1;return u.tokenization.getLineTokens(n).getStandardTokenType(0)===2}function Di(u,n){let h=0;for(let g=0;g<u.length;g++)if(u.charAt(g)==="\t")h+=n;else h++;return h}function Ea(u,n,h){u=u<0?0:u;let g="";if(!h){let p=Math.floor(u/n);u=u%n;for(let m=0;m<p;m++)g+="\t"}for(let p=0;p<u;p++)g+=" ";return g}var PD=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},AD=function(u,n){return function(h,g){n(h,g,u)}};class g_ extends U{static{this.ID="editor.action.indentationToSpaces"}constructor(){super({id:g_.ID,label:b(1204,"Convert Indentation to Spaces"),precondition:r.writable,metadata:{description:b(1205,"Convert the tab indentation to spaces.")}})}run(u,n){let h=n.getModel();if(!h)return;let g=h.getOptions(),p=n.getSelection();if(!p)return;let m=new uC(p,g.tabSize);n.pushUndoStop(),n.executeCommands(this.id,[m]),n.pushUndoStop(),h.updateOptions({insertSpaces:!0})}}class p_ extends U{static{this.ID="editor.action.indentationToTabs"}constructor(){super({id:p_.ID,label:b(1206,"Convert Indentation to Tabs"),precondition:r.writable,metadata:{description:b(1207,"Convert the spaces indentation to tabs.")}})}run(u,n){let h=n.getModel();if(!h)return;let g=h.getOptions(),p=n.getSelection();if(!p)return;let m=new gC(p,g.tabSize);n.pushUndoStop(),n.executeCommands(this.id,[m]),n.pushUndoStop(),h.updateOptions({insertSpaces:!1})}}class tg extends U{constructor(u,n,h){super(h);this.insertSpaces=u,this.displaySizeOnly=n}run(u,n){let h=u.get(En),g=u.get(Et),p=n.getModel();if(!p)return;let m=g.getCreationOptions(p.getLanguageId(),p.uri,p.isForSimpleWidget),v=p.getOptions(),S=[1,2,3,4,5,6,7,8].map((x)=>({id:x.toString(),label:x.toString(),description:x===m.tabSize&&x===v.tabSize?e(1200,"Configured Tab Size"):x===m.tabSize?e(1201,"Default Tab Size"):x===v.tabSize?e(1202,"Current Tab Size"):void 0})),C=Math.min(p.getOptions().tabSize-1,7);setTimeout(()=>{h.pick(S,{placeHolder:e(1203,"Select Tab Size for Current File"),activeItem:S[C]}).then((x)=>{if(x){if(p&&!p.isDisposed()){let T=parseInt(x.label,10);if(this.displaySizeOnly)p.updateOptions({tabSize:T});else p.updateOptions({tabSize:T,indentSize:T,insertSpaces:this.insertSpaces})}}})},50)}}class m_ extends tg{static{this.ID="editor.action.indentUsingTabs"}constructor(){super(!1,!1,{id:m_.ID,label:b(1208,"Indent Using Tabs"),precondition:void 0,metadata:{description:b(1209,"Use indentation with tabs.")}})}}class f_ extends tg{static{this.ID="editor.action.indentUsingSpaces"}constructor(){super(!0,!1,{id:f_.ID,label:b(1210,"Indent Using Spaces"),precondition:void 0,metadata:{description:b(1211,"Use indentation with spaces.")}})}}class __ extends tg{static{this.ID="editor.action.changeTabDisplaySize"}constructor(){super(!0,!0,{id:__.ID,label:b(1212,"Change Tab Display Size"),precondition:void 0,metadata:{description:b(1213,"Change the space size equivalent of the tab.")}})}}class b_ extends U{static{this.ID="editor.action.detectIndentation"}constructor(){super({id:b_.ID,label:b(1214,"Detect Indentation from Content"),precondition:void 0,metadata:{description:b(1215,"Detect the indentation from content.")}})}run(u,n){let h=u.get(Et),g=n.getModel();if(!g)return;let p=h.getCreationOptions(g.getLanguageId(),g.uri,g.isForSimpleWidget);g.detectIndentation(p.insertSpaces,p.tabSize)}}class dC extends U{constructor(){super({id:"editor.action.reindentlines",label:b(1216,"Reindent Lines"),precondition:r.writable,metadata:{description:b(1217,"Reindent the lines of the editor.")},canTriggerInlineEdits:!0})}run(u,n){let h=u.get(ut),g=n.getModel();if(!g)return;let p=u_(g,h,1,g.getLineCount());if(p.length>0)n.pushUndoStop(),n.executeEdits(this.id,p),n.pushUndoStop()}}class cC extends U{constructor(){super({id:"editor.action.reindentselectedlines",label:b(1218,"Reindent Selected Lines"),precondition:r.writable,metadata:{description:b(1219,"Reindent the selected lines of the editor.")},canTriggerInlineEdits:!0})}run(u,n){let h=u.get(ut),g=n.getModel();if(!g)return;let p=n.getSelections();if(p===null)return;let m=[];for(let v of p){let{startLineNumber:S,endLineNumber:C}=v;if(S!==C&&v.endColumn===1)C--;if(S===1){if(S===C)continue}else S--;let x=u_(g,h,S,C);m.push(...x)}if(m.length>0)n.pushUndoStop(),n.executeEdits(this.id,m),n.pushUndoStop()}}class lC{constructor(u,n){this._initialSelection=n,this._edits=[],this._selectionId=null;for(let h of u)if(h.range&&typeof h.text==="string")this._edits.push(h)}getEditOperations(u,n){for(let g of this._edits)n.addEditOperation(t.lift(g.range),g.text);let h=!1;if(Array.isArray(this._edits)&&this._edits.length===1&&this._initialSelection.isEmpty()){if(this._edits[0].range.startColumn===this._initialSelection.endColumn&&this._edits[0].range.startLineNumber===this._initialSelection.endLineNumber)h=!0,this._selectionId=n.trackSelection(this._initialSelection,!0);else if(this._edits[0].range.endColumn===this._initialSelection.startColumn&&this._edits[0].range.endLineNumber===this._initialSelection.startLineNumber)h=!0,this._selectionId=n.trackSelection(this._initialSelection,!1)}if(!h)this._selectionId=n.trackSelection(this._initialSelection)}computeCursorState(u,n){return n.getTrackedSelection(this._selectionId)}}var Qu=class u{static{this.ID="editor.contrib.autoIndentOnPaste"}constructor(n,h){this.editor=n,this._languageConfigurationService=h,this.callOnDispose=new d,this.callOnModel=new d,this.callOnDispose.add(n.onDidChangeConfiguration(()=>this.update())),this.callOnDispose.add(n.onDidChangeModel(()=>this.update())),this.callOnDispose.add(n.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:n})=>{this.trigger(n)}))}trigger(n){let h=this.editor.getSelections();if(h===null||h.length>1)return;let g=this.editor.getModel();if(!g)return;if(this.rangeContainsOnlyWhitespaceCharacters(g,n))return;if(!this.editor.getOption(18)&&FD(g,n))return;if(!g.tokenization.isCheapToTokenize(n.getStartPosition().lineNumber))return;let m=this.editor.getOption(16),{tabSize:v,indentSize:S,insertSpaces:C}=g.getOptions(),x=[],T={shiftIndent:(Q)=>ns.shiftIndent(Q,Q.length+1,v,S,C),unshiftIndent:(Q)=>ns.unshiftIndent(Q,Q.length+1,v,S,C)},R=n.startLineNumber,Z=g.getLineContent(R);if(!/\S/.test(Z.substring(0,n.startColumn-1))){let Q=yg(m,g,g.getLanguageId(),R,T,this._languageConfigurationService);if(Q!==null){let te=Rt(Z),oe=Di(Q,v),ne=Di(te,v);if(oe!==ne){let he=Ea(oe,v,C);x.push({range:new t(R,1,R,te.length+1),text:he}),Z=he+Z.substring(te.length)}else{let he=k1(g,R,this._languageConfigurationService);if(he===0||he===8)return}}}let Y=R;while(R<n.endLineNumber){if(!/\S/.test(g.getLineContent(R+1))){R++;continue}break}if(R!==n.endLineNumber){let te=yg(m,{tokenization:{getLineTokens:(oe)=>g.tokenization.getLineTokens(oe),getLanguageId:()=>g.getLanguageId(),getLanguageIdAtPosition:(oe,ne)=>g.getLanguageIdAtPosition(oe,ne)},getLineContent:(oe)=>{if(oe===Y)return Z;else return g.getLineContent(oe)}},g.getLanguageId(),R+1,T,this._languageConfigurationService);if(te!==null){let oe=Di(te,v),ne=Di(Rt(g.getLineContent(R+1)),v);if(oe!==ne){let he=oe-ne;for(let ge=R+1;ge<=n.endLineNumber;ge++){let _e=g.getLineContent(ge),Se=Rt(_e),pe=Di(Se,v)+he,Me=Ea(pe,v,C);if(Me!==Se)x.push({range:new t(ge,1,ge,Se.length+1),text:Me})}}}}if(x.length>0){this.editor.pushUndoStop();let Q=new lC(x,this.editor.getSelection());this.editor.executeCommand("autoIndentOnPaste",Q),this.editor.pushUndoStop()}}rangeContainsOnlyWhitespaceCharacters(n,h){let g=(m)=>m.trim().length===0,p=!0;if(h.startLineNumber===h.endLineNumber){let v=n.getLineContent(h.startLineNumber).substring(h.startColumn-1,h.endColumn-1);p=g(v)}else for(let m=h.startLineNumber;m<=h.endLineNumber;m++){let v=n.getLineContent(m);if(m===h.startLineNumber){let S=v.substring(h.startColumn-1);p=g(S)}else if(m===h.endLineNumber){let S=v.substring(0,h.endColumn-1);p=g(S)}else p=n.getLineFirstNonWhitespaceColumn(m)===0;if(!p)break}return p}dispose(){this.callOnDispose.dispose(),this.callOnModel.dispose()}};Qu=PD([AD(1,ut)],Qu);function FD(u,n){let h=(g)=>RM(u,g)===2;return h(n.getStartPosition())||h(n.getEndPosition())}function hC(u,n,h,g){if(u.getLineCount()===1&&u.getLineMaxColumn(1)===1)return;let p="";for(let v=0;v<h;v++)p+=" ";let m=new RegExp(p,"gi");for(let v=1,S=u.getLineCount();v<=S;v++){let C=u.getLineFirstNonWhitespaceColumn(v);if(C===0)C=u.getLineMaxColumn(v);if(C===1)continue;let x=new t(v,1,v,C),T=u.getValueInRange(x),R=g?T.replace(/\t/ig,p):T.replace(m,"\t");n.addEditOperation(x,R)}}class uC{constructor(u,n){this.selection=u,this.tabSize=n,this.selectionId=null}getEditOperations(u,n){this.selectionId=n.trackSelection(this.selection),hC(u,n,this.tabSize,!0)}computeCursorState(u,n){return n.getTrackedSelection(this.selectionId)}}class gC{constructor(u,n){this.selection=u,this.tabSize=n,this.selectionId=null}getEditOperations(u,n){this.selectionId=n.trackSelection(this.selection),hC(u,n,this.tabSize,!1)}computeCursorState(u,n){return n.getTrackedSelection(this.selectionId)}}fe(Qu.ID,Qu,2);O(g_);O(p_);O(m_);O(f_);O(__);O(b_);O(dC);O(cC);class pC extends U{constructor(){super({id:"expandLineSelection",label:b(1309,"Expand Line Selection"),precondition:void 0,kbOpts:{weight:0,kbExpr:r.textInputFocus,primary:2090}})}run(u,n,h){if(h=h||{},!n.hasModel())return;let g=n._getViewModel();g.model.pushStackElement(),g.setCursorStates(h.source,3,Fi.expandLineSelection(g,g.getCursorStates())),g.revealAllCursors(h.source,!0)}}O(pC);class v_{constructor(u,n,h){this._selection=u,this._cursors=n,this._selectionId=null,this._trimInRegexesAndStrings=h}getEditOperations(u,n){let h=HD(u,this._cursors,this._trimInRegexesAndStrings);for(let g=0,p=h.length;g<p;g++){let m=h[g];n.addEditOperation(m.range,m.text)}this._selectionId=n.trackSelection(this._selection)}computeCursorState(u,n){return n.getTrackedSelection(this._selectionId)}}function HD(u,n,h){n.sort((S,C)=>{if(S.lineNumber===C.lineNumber)return S.column-C.column;return S.lineNumber-C.lineNumber});for(let S=n.length-2;S>=0;S--)if(n[S].lineNumber===n[S+1].lineNumber)n.splice(S,1);let g=[],p=0,m=0,v=n.length;for(let S=1,C=u.getLineCount();S<=C;S++){let x=u.getLineContent(S),T=x.length+1,R=0;if(m<v&&n[m].lineNumber===S){if(R=n[m].column,m++,R===T)continue}if(x.length===0)continue;let Z=pr(x),Y=0;if(Z===-1)Y=1;else if(Z!==x.length-1)Y=Z+2;else continue;if(!h){if(!u.tokenization.hasAccurateTokensForLine(S))continue;let Q=u.tokenization.getLineTokens(S),te=Q.getStandardTokenType(Q.findTokenIndexAtOffset(Y));if(te===2||te===3)continue}Y=Math.max(R,Y),g[p++]=Kt.delete(new t(S,Y,S,T))}return g}class ig{constructor(u,n,h){this._selection=u,this._isCopyingDown=n,this._noop=h||!1,this._selectionDirection=0,this._selectionId=null,this._startLineNumberDelta=0,this._endLineNumberDelta=0}getEditOperations(u,n){let h=this._selection;if(this._startLineNumberDelta=0,this._endLineNumberDelta=0,h.startLineNumber<h.endLineNumber&&h.endColumn===1)this._endLineNumberDelta=1,h=h.setEndPosition(h.endLineNumber-1,u.getLineMaxColumn(h.endLineNumber-1));let g=[];for(let m=h.startLineNumber;m<=h.endLineNumber;m++)g.push(u.getLineContent(m));let p=g.join(`
|
|
8
|
+
`);if(p===""){if(this._isCopyingDown)this._startLineNumberDelta++,this._endLineNumberDelta++}if(this._noop)n.addEditOperation(new t(h.endLineNumber,u.getLineMaxColumn(h.endLineNumber),h.endLineNumber+1,1),h.endLineNumber===u.getLineCount()?"":`
|
|
9
|
+
`);else if(!this._isCopyingDown)n.addEditOperation(new t(h.endLineNumber,u.getLineMaxColumn(h.endLineNumber),h.endLineNumber,u.getLineMaxColumn(h.endLineNumber)),`
|
|
10
|
+
`+p);else n.addEditOperation(new t(h.startLineNumber,1,h.startLineNumber,1),p+`
|
|
11
|
+
`);this._selectionId=n.trackSelection(h),this._selectionDirection=this._selection.getDirection()}computeCursorState(u,n){let h=n.getTrackedSelection(this._selectionId);if(this._startLineNumberDelta!==0||this._endLineNumberDelta!==0){let g=h.startLineNumber,p=h.startColumn,m=h.endLineNumber,v=h.endColumn;if(this._startLineNumberDelta!==0)g=g+this._startLineNumberDelta,p=1;if(this._endLineNumberDelta!==0)m=m+this._endLineNumberDelta,v=1;h=F.createWithDirection(g,p,m,v,this._selectionDirection)}return h}}var WD=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},BD=function(u,n){return function(h,g){n(h,g,u)}},og=class u{constructor(n,h,g,p){this._languageConfigurationService=p,this._selection=n,this._isMovingDown=h,this._autoIndent=g,this._selectionId=null,this._moveEndLineSelectionShrink=!1}createVirtualModel(n,h,g){return{tokenization:{getLineTokens:(p)=>n.tokenization.getLineTokens(h(p)),getLanguageId:()=>n.getLanguageId(),getLanguageIdAtPosition:(p,m)=>n.getLanguageIdAtPosition(p,m)},getLineContent:(p)=>{let m=g?.(p);if(m!==void 0)return m;return n.getLineContent(h(p))}}}getEditOperations(n,h){let g=n.getLineCount();if(this._isMovingDown&&this._selection.endLineNumber===g){this._selectionId=h.trackSelection(this._selection);return}if(!this._isMovingDown&&this._selection.startLineNumber===1){this._selectionId=h.trackSelection(this._selection);return}this._moveEndPositionDown=!1;let p=this._selection;if(p.startLineNumber<p.endLineNumber&&p.endColumn===1)this._moveEndPositionDown=!0,p=p.setEndPosition(p.endLineNumber-1,n.getLineMaxColumn(p.endLineNumber-1));let{tabSize:m,indentSize:v,insertSpaces:S}=n.getOptions(),C=this.buildIndentConverter(m,v,S);if(p.startLineNumber===p.endLineNumber&&n.getLineMaxColumn(p.startLineNumber)===1){let x=p.startLineNumber,T=this._isMovingDown?x+1:x-1;if(n.getLineMaxColumn(T)===1)h.addEditOperation(new t(1,1,1,1),null);else h.addEditOperation(new t(x,1,x,1),n.getLineContent(T)),h.addEditOperation(new t(T,1,T,n.getLineMaxColumn(T)),null);p=new F(T,1,T,1)}else{let x,T;if(this._isMovingDown){x=p.endLineNumber+1,T=n.getLineContent(x),h.addEditOperation(new t(x-1,n.getLineMaxColumn(x-1),x,n.getLineMaxColumn(x)),null);let R=T;if(this.shouldAutoIndent(n,p)){let Z=this.matchEnterRule(n,C,m,x,p.startLineNumber-1);if(Z!==null){let Q=Rt(n.getLineContent(x)),te=Z+Di(Q,m);R=Ea(te,m,S)+this.trimStart(T)}else{let Q=this.createVirtualModel(n,(oe)=>oe===p.startLineNumber?x:oe),te=yg(this._autoIndent,Q,n.getLanguageIdAtPosition(x,1),p.startLineNumber,C,this._languageConfigurationService);if(te!==null){let oe=Rt(n.getLineContent(x)),ne=Di(te,m),he=Di(oe,m);if(ne!==he)R=Ea(ne,m,S)+this.trimStart(T)}}h.addEditOperation(new t(p.startLineNumber,1,p.startLineNumber,1),R+`
|
|
12
|
+
`);let Y=this.matchEnterRuleMovingDown(n,C,m,p.startLineNumber,x,R);if(Y!==null){if(Y!==0)this.getIndentEditsOfMovingBlock(n,h,p,m,S,Y)}else{let Q=this.createVirtualModel(n,(oe)=>{if(oe===p.startLineNumber)return x;else if(oe>=p.startLineNumber+1&&oe<=p.endLineNumber+1)return oe-1;else return oe},(oe)=>oe===p.startLineNumber?R:void 0),te=yg(this._autoIndent,Q,n.getLanguageIdAtPosition(x,1),p.startLineNumber+1,C,this._languageConfigurationService);if(te!==null){let oe=Rt(n.getLineContent(p.startLineNumber)),ne=Di(te,m),he=Di(oe,m);if(ne!==he){let ge=ne-he;this.getIndentEditsOfMovingBlock(n,h,p,m,S,ge)}}}}else h.addEditOperation(new t(p.startLineNumber,1,p.startLineNumber,1),R+`
|
|
13
|
+
`)}else if(x=p.startLineNumber-1,T=n.getLineContent(x),h.addEditOperation(new t(x,1,x+1,1),null),h.addEditOperation(new t(p.endLineNumber,n.getLineMaxColumn(p.endLineNumber),p.endLineNumber,n.getLineMaxColumn(p.endLineNumber)),`
|
|
14
|
+
`+T),this.shouldAutoIndent(n,p)){let R=this.createVirtualModel(n,(Y)=>Y===x?p.startLineNumber:Y),Z=this.matchEnterRule(n,C,m,p.startLineNumber,p.startLineNumber-2);if(Z!==null){if(Z!==0)this.getIndentEditsOfMovingBlock(n,h,p,m,S,Z)}else{let Y=yg(this._autoIndent,R,n.getLanguageIdAtPosition(p.startLineNumber,1),x,C,this._languageConfigurationService);if(Y!==null){let Q=Rt(n.getLineContent(p.startLineNumber)),te=Di(Y,m),oe=Di(Q,m);if(te!==oe){let ne=te-oe;this.getIndentEditsOfMovingBlock(n,h,p,m,S,ne)}}}}}this._selectionId=h.trackSelection(p)}buildIndentConverter(n,h,g){return{shiftIndent:(p)=>ns.shiftIndent(p,p.length+1,n,h,g),unshiftIndent:(p)=>ns.unshiftIndent(p,p.length+1,n,h,g)}}parseEnterResult(n,h,g,p,m){if(m){let v=m.indentation;if(m.indentAction===ii.None)v=m.indentation+m.appendText;else if(m.indentAction===ii.Indent)v=m.indentation+m.appendText;else if(m.indentAction===ii.IndentOutdent)v=m.indentation;else if(m.indentAction===ii.Outdent)v=h.unshiftIndent(m.indentation)+m.appendText;let S=n.getLineContent(p);if(this.trimStart(S).indexOf(this.trimStart(v))>=0){let C=Rt(n.getLineContent(p)),x=Rt(v),T=k1(n,p,this._languageConfigurationService);if(T!==null&&T&2)x=h.unshiftIndent(x);let R=Di(x,g),Z=Di(C,g);return R-Z}}return null}matchEnterRuleMovingDown(n,h,g,p,m,v){if(pr(v)>=0){let S=n.getLineMaxColumn(m),C=Jh(this._autoIndent,n,new t(m,S,m,S),this._languageConfigurationService);return this.parseEnterResult(n,h,g,p,C)}else{let S=p-1;while(S>=1){let T=n.getLineContent(S);if(pr(T)>=0)break;S--}if(S<1||p>n.getLineCount())return null;let C=n.getLineMaxColumn(S),x=Jh(this._autoIndent,n,new t(S,C,S,C),this._languageConfigurationService);return this.parseEnterResult(n,h,g,p,x)}}matchEnterRule(n,h,g,p,m,v){let S=m;while(S>=1){let T;if(S===m&&v!==void 0)T=v;else T=n.getLineContent(S);if(pr(T)>=0)break;S--}if(S<1||p>n.getLineCount())return null;let C=n.getLineMaxColumn(S),x=Jh(this._autoIndent,n,new t(S,C,S,C),this._languageConfigurationService);return this.parseEnterResult(n,h,g,p,x)}trimStart(n){return n.replace(/^\s+/,"")}shouldAutoIndent(n,h){if(this._autoIndent<4)return!1;if(!n.tokenization.isCheapToTokenize(h.startLineNumber))return!1;let g=n.getLanguageIdAtPosition(h.startLineNumber,1),p=n.getLanguageIdAtPosition(h.endLineNumber,1);if(g!==p)return!1;if(this._languageConfigurationService.getLanguageConfiguration(g).indentRulesSupport===null)return!1;return!0}getIndentEditsOfMovingBlock(n,h,g,p,m,v){for(let S=g.startLineNumber;S<=g.endLineNumber;S++){let C=n.getLineContent(S),x=Rt(C),R=Di(x,p)+v,Z=Ea(R,p,m);if(Z!==x){if(h.addEditOperation(new t(S,1,S,x.length+1),Z),S===g.endLineNumber&&g.endColumn<=x.length+1&&Z==="")this._moveEndLineSelectionShrink=!0}}}computeCursorState(n,h){let g=h.getTrackedSelection(this._selectionId);if(this._moveEndPositionDown)g=g.setEndPosition(g.endLineNumber+1,1);if(this._moveEndLineSelectionShrink&&g.startLineNumber<g.endLineNumber)g=g.setEndPosition(g.endLineNumber,2);return g}};og=WD([BD(3,ut)],og);class ll{static{this._COLLATOR=mc.Collator()}constructor(u,n){this.selection=u,this.descending=n,this.selectionId=null}getEditOperations(u,n){let h=VD(u,this.selection,this.descending);if(h)n.addEditOperation(h.range,h.text);this.selectionId=n.trackSelection(this.selection)}computeCursorState(u,n){return n.getTrackedSelection(this.selectionId)}static canRun(u,n,h){if(u===null)return!1;let g=mC(u,n,h);if(!g)return!1;for(let p=0,m=g.before.length;p<m;p++)if(g.before[p]!==g.after[p])return!0;return!1}}function mC(u,n,h){let{startLineNumber:g,endLineNumber:p}=n;if(n.endColumn===1)p--;if(g>=p)return null;let m=[];for(let S=g;S<=p;S++)m.push(u.getLineContent(S));let v=m.slice(0);if(v.sort(ll._COLLATOR.value.compare),h===!0)v=v.reverse();return{startLineNumber:g,endLineNumber:p,before:m,after:v}}function VD(u,n,h){let g=mC(u,n,h);if(!g)return null;return Kt.replace(new t(g.startLineNumber,1,g.endLineNumber,u.getLineMaxColumn(g.endLineNumber)),g.after.join(`
|
|
15
|
+
`))}class w_ extends U{constructor(u,n){super(n);this.down=u}run(u,n){if(!n.hasModel())return;let h=n.getSelections().map((m,v)=>({selection:m,index:v,ignore:!1}));h.sort((m,v)=>t.compareRangesUsingStarts(m.selection,v.selection));let g=h[0];for(let m=1;m<h.length;m++){let v=h[m];if(g.selection.endLineNumber===v.selection.startLineNumber)if(g.index<v.index)v.ignore=!0;else g.ignore=!0,g=v}let p=[];for(let m of h)p.push(new ig(m.selection,this.down,m.ignore));n.pushUndoStop(),n.executeCommands(this.id,p),n.pushUndoStop()}}class fC extends w_{constructor(){super(!1,{id:"editor.action.copyLinesUpAction",label:b(1315,"Copy Line Up"),precondition:r.writable,kbOpts:{kbExpr:r.editorTextFocus,primary:1552,linux:{primary:3600},weight:100},menuOpts:{menuId:l.MenubarSelectionMenu,group:"2_line",title:e(1310,"&&Copy Line Up"),order:1},canTriggerInlineEdits:!0})}}class _C extends w_{constructor(){super(!0,{id:"editor.action.copyLinesDownAction",label:b(1316,"Copy Line Down"),precondition:r.writable,kbOpts:{kbExpr:r.editorTextFocus,primary:1554,linux:{primary:3602},weight:100},menuOpts:{menuId:l.MenubarSelectionMenu,group:"2_line",title:e(1311,"Co&&py Line Down"),order:2},canTriggerInlineEdits:!0})}}class bC extends U{constructor(){super({id:"editor.action.duplicateSelection",label:b(1317,"Duplicate Selection"),precondition:r.writable,menuOpts:{menuId:l.MenubarSelectionMenu,group:"2_line",title:e(1312,"&&Duplicate Selection"),order:5},canTriggerInlineEdits:!0})}run(u,n,h){if(!n.hasModel())return;let g=[],p=n.getSelections(),m=n.getModel();for(let v of p)if(v.isEmpty())g.push(new ig(v,!0));else{let S=new F(v.endLineNumber,v.endColumn,v.endLineNumber,v.endColumn);g.push(new DI(S,m.getValueInRange(v)))}n.pushUndoStop(),n.executeCommands(this.id,g),n.pushUndoStop()}}class S_ extends U{constructor(u,n){super(n);this.down=u}run(u,n){let h=u.get(ut),g=[],p=n.getSelections()||[],m=n.getOption(16);for(let v of p)g.push(new og(v,this.down,m,h));n.pushUndoStop(),n.executeCommands(this.id,g),n.pushUndoStop()}}class vC extends S_{constructor(){super(!1,{id:"editor.action.moveLinesUpAction",label:b(1318,"Move Line Up"),precondition:r.writable,kbOpts:{kbExpr:r.editorTextFocus,primary:528,linux:{primary:528},weight:100},menuOpts:{menuId:l.MenubarSelectionMenu,group:"2_line",title:e(1313,"Mo&&ve Line Up"),order:3},canTriggerInlineEdits:!0})}}class wC extends S_{constructor(){super(!0,{id:"editor.action.moveLinesDownAction",label:b(1319,"Move Line Down"),precondition:r.writable,kbOpts:{kbExpr:r.editorTextFocus,primary:530,linux:{primary:530},weight:100},menuOpts:{menuId:l.MenubarSelectionMenu,group:"2_line",title:e(1314,"Move &&Line Down"),order:4},canTriggerInlineEdits:!0})}}class C_ extends U{constructor(u,n){super(n);this.descending=u}run(u,n){if(!n.hasModel())return;let h=n.getModel(),g=n.getSelections();if(g.length===1&&g[0].isSingleLine())g=[new F(1,1,h.getLineCount(),h.getLineMaxColumn(h.getLineCount()))];for(let m of g)if(!ll.canRun(n.getModel(),m,this.descending))return;let p=[];for(let m=0,v=g.length;m<v;m++)p[m]=new ll(g[m],this.descending);n.pushUndoStop(),n.executeCommands(this.id,p),n.pushUndoStop()}}class SC extends C_{constructor(){super(!1,{id:"editor.action.sortLinesAscending",label:b(1320,"Sort Lines Ascending"),precondition:r.writable,canTriggerInlineEdits:!0})}}class CC extends C_{constructor(){super(!0,{id:"editor.action.sortLinesDescending",label:b(1321,"Sort Lines Descending"),precondition:r.writable,canTriggerInlineEdits:!0})}}class yC extends U{constructor(){super({id:"editor.action.removeDuplicateLines",label:b(1322,"Delete Duplicate Lines"),precondition:r.writable,canTriggerInlineEdits:!0})}run(u,n){if(!n.hasModel())return;let h=n.getModel();if(h.getLineCount()===1&&h.getLineMaxColumn(1)===1)return;let g=[],p=[],m=0,v=!0,S=n.getSelections();if(S.length===1&&S[0].isSingleLine())S=[new F(1,1,h.getLineCount(),h.getLineMaxColumn(h.getLineCount()))],v=!1;for(let C of S){let x=new Set,T=[];for(let Q=C.startLineNumber;Q<=C.endLineNumber;Q++){let te=h.getLineContent(Q);if(x.has(te))continue;T.push(te),x.add(te)}let R=new F(C.startLineNumber,1,C.endLineNumber,h.getLineMaxColumn(C.endLineNumber)),Z=C.startLineNumber-m,Y=new F(Z,1,Z+T.length-1,T[T.length-1].length+1);g.push(Kt.replace(R,T.join(`
|
|
16
|
+
`))),p.push(Y),m+=C.endLineNumber-C.startLineNumber+1-T.length}n.pushUndoStop(),n.executeEdits(this.id,g,v?p:void 0),n.pushUndoStop()}}class xC extends U{constructor(){super({id:"editor.action.reverseLines",label:b(1323,"Reverse lines"),precondition:r.writable,canTriggerInlineEdits:!0})}run(u,n){if(!n.hasModel())return;let h=n.getModel(),g=n.getSelections(),p=g;if(p.length===1&&p[0].isSingleLine())p=[new F(1,1,h.getLineCount(),h.getLineMaxColumn(h.getLineCount()))];let m=[],v=[];for(let S=0;S<p.length;S++){let C=p[S],x=g[S],T=C.endLineNumber;if(C.startLineNumber<C.endLineNumber&&C.endColumn===1)T--;let R=new t(C.startLineNumber,1,T,h.getLineMaxColumn(T));if(T===h.getLineCount()&&h.getLineContent(R.endLineNumber)==="")R=R.setEndPosition(R.endLineNumber-1,h.getLineMaxColumn(R.endLineNumber-1));let Z=[];for(let oe=R.endLineNumber;oe>=R.startLineNumber;oe--)Z.push(h.getLineContent(oe));let Y=Kt.replace(R,Z.join(`
|
|
17
|
+
`));m.push(Y);let Q=function(oe){return oe<=R.endLineNumber?R.endLineNumber-oe+R.startLineNumber:oe},te=function(oe){if(oe.isEmpty())return new F(Q(oe.positionLineNumber),oe.positionColumn,Q(oe.positionLineNumber),oe.positionColumn);else{let ne=Q(oe.selectionStartLineNumber),he=Q(oe.positionLineNumber),{selectionStartColumn:ge,positionColumn:_e}=oe;return new F(ne,ge,he,_e)}};v.push(te(x))}n.pushUndoStop(),n.executeEdits(this.id,m,v),n.pushUndoStop()}}class y_ extends U{static{this.ID="editor.action.trimTrailingWhitespace"}constructor(){super({id:y_.ID,label:b(1324,"Trim Trailing Whitespace"),precondition:r.writable,kbOpts:{kbExpr:r.editorTextFocus,primary:hn(2089,2102),weight:100}})}run(u,n,h){let g=[];if(h.reason==="auto-save")g=(n.getSelections()||[]).map((x)=>new s(x.positionLineNumber,x.positionColumn));let p=n.getSelection();if(p===null)return;let m=u.get(re),v=n.getModel(),S=m.getValue("files.trimTrailingWhitespaceInRegexAndStrings",{overrideIdentifier:v?.getLanguageId(),resource:v?.uri}),C=new v_(p,g,S);n.pushUndoStop(),n.executeCommands(this.id,[C]),n.pushUndoStop()}}class IC extends U{constructor(){super({id:"editor.action.deleteLines",label:b(1325,"Delete Line"),precondition:r.writable,kbOpts:{kbExpr:r.textInputFocus,primary:3113,weight:100},canTriggerInlineEdits:!0})}run(u,n){if(!n.hasModel())return;let h=this._getLinesToRemove(n),g=n.getModel();if(g.getLineCount()===1&&g.getLineMaxColumn(1)===1)return;let p=0,m=[],v=[];for(let S=0,C=h.length;S<C;S++){let x=h[S],{startLineNumber:T,endLineNumber:R}=x,Z=1,Y=g.getLineMaxColumn(R);if(R<g.getLineCount())R+=1,Y=1;else if(T>1)T-=1,Z=g.getLineMaxColumn(T);m.push(Kt.replace(new F(T,Z,R,Y),"")),v.push(new F(T-p,x.positionColumn,T-p,x.positionColumn)),p+=x.endLineNumber-x.startLineNumber+1}n.pushUndoStop(),n.executeEdits(this.id,m,v),n.revealAllCursors(!0),n.pushUndoStop()}_getLinesToRemove(u){let n=u.getSelections().map((p)=>{let m=p.endLineNumber;if(p.startLineNumber<p.endLineNumber&&p.endColumn===1)m-=1;return{startLineNumber:p.startLineNumber,selectionStartColumn:p.selectionStartColumn,endLineNumber:m,positionColumn:p.positionColumn}});n.sort((p,m)=>{if(p.startLineNumber===m.startLineNumber)return p.endLineNumber-m.endLineNumber;return p.startLineNumber-m.startLineNumber});let h=[],g=n[0];for(let p=1;p<n.length;p++)if(g.endLineNumber+1>=n[p].startLineNumber)g.endLineNumber=n[p].endLineNumber;else h.push(g),g=n[p];return h.push(g),h}}class LC extends U{constructor(){super({id:"editor.action.indentLines",label:b(1326,"Indent Line"),precondition:r.writable,kbOpts:{kbExpr:r.editorTextFocus,primary:2142,weight:100},canTriggerInlineEdits:!0})}run(u,n){let h=n._getViewModel();if(!h)return;n.pushUndoStop(),n.executeCommands(this.id,vc.indent(h.cursorConfig,n.getModel(),n.getSelections())),n.pushUndoStop()}}class kC extends U{constructor(){super({id:"editor.action.outdentLines",label:b(1327,"Outdent Line"),precondition:r.writable,kbOpts:{kbExpr:r.editorTextFocus,primary:2140,weight:100},canTriggerInlineEdits:!0})}run(u,n){$f.Outdent.runEditorCommand(u,n,null)}}class hl extends U{static{this.ID="editor.action.insertLineBefore"}constructor(){super({id:hl.ID,label:b(1328,"Insert Line Above"),precondition:r.writable,kbOpts:{kbExpr:r.editorTextFocus,primary:3075,weight:100},canTriggerInlineEdits:!0})}run(u,n){let h=n._getViewModel();if(!h)return;n.pushUndoStop(),n.executeCommands(this.id,Lf.lineInsertBefore(h.cursorConfig,n.getModel(),n.getSelections()))}}class ul extends U{static{this.ID="editor.action.insertLineAfter"}constructor(){super({id:ul.ID,label:b(1329,"Insert Line Below"),precondition:r.writable,kbOpts:{kbExpr:r.editorTextFocus,primary:2051,weight:100},canTriggerInlineEdits:!0})}run(u,n){let h=n._getViewModel();if(!h)return;n.pushUndoStop(),n.executeCommands(this.id,Lf.lineInsertAfter(h.cursorConfig,n.getModel(),n.getSelections()))}}class x_ extends U{run(u,n){if(!n.hasModel())return;let h=n.getSelection(),g=this._getRangesToDelete(n),p=[];for(let S=0,C=g.length-1;S<C;S++){let x=g[S],T=g[S+1];if(t.intersectRanges(x,T)===null)p.push(x);else g[S+1]=t.plusRange(x,T)}p.push(g[g.length-1]);let m=this._getEndCursorState(h,p),v=p.map((S)=>Kt.replace(S,""));n.pushUndoStop(),n.executeEdits(this.id,v,m),n.pushUndoStop()}}class EC extends x_{constructor(){super({id:"deleteAllLeft",label:b(1330,"Delete All Left"),precondition:r.writable,kbOpts:{kbExpr:r.textInputFocus,primary:0,mac:{primary:2049},weight:100},canTriggerInlineEdits:!0})}_getEndCursorState(u,n){let h=null,g=[],p=0;if(n.forEach((m)=>{let v;if(m.endColumn===1&&p>0){let S=m.startLineNumber-p;v=new F(S,m.startColumn,S,m.startColumn)}else v=new F(m.startLineNumber,m.startColumn,m.startLineNumber,m.startColumn);if(p+=m.endLineNumber-m.startLineNumber,m.intersectRanges(u))h=v;else g.push(v)}),h)g.unshift(h);return g}_getRangesToDelete(u){let n=u.getSelections();if(n===null)return[];let h=n,g=u.getModel();if(g===null)return[];return h.sort(t.compareRangesUsingStarts),h=h.map((p)=>{if(p.isEmpty())if(p.startColumn===1){let m=Math.max(1,p.startLineNumber-1),v=p.startLineNumber===1?1:g.getLineLength(m)+1;return new t(m,v,p.startLineNumber,1)}else return new t(p.startLineNumber,1,p.startLineNumber,p.startColumn);else return new t(p.startLineNumber,1,p.endLineNumber,p.endColumn)}),h}}class DC extends x_{constructor(){super({id:"deleteAllRight",label:b(1331,"Delete All Right"),precondition:r.writable,kbOpts:{kbExpr:r.textInputFocus,primary:0,mac:{primary:297,secondary:[2068]},weight:100},canTriggerInlineEdits:!0})}_getEndCursorState(u,n){let h=null,g=[];for(let p=0,m=n.length,v=0;p<m;p++){let S=n[p],C=new F(S.startLineNumber-v,S.startColumn,S.startLineNumber-v,S.startColumn);if(S.intersectRanges(u))h=C;else g.push(C)}if(h)g.unshift(h);return g}_getRangesToDelete(u){let n=u.getModel();if(n===null)return[];let h=u.getSelections();if(h===null)return[];let g=h.map((p)=>{if(p.isEmpty()){let m=n.getLineMaxColumn(p.startLineNumber);if(p.startColumn===m)return new t(p.startLineNumber,p.startColumn,p.startLineNumber+1,1);else return new t(p.startLineNumber,p.startColumn,p.startLineNumber,m)}return p});return g.sort(t.compareRangesUsingStarts),g}}class TC extends U{constructor(){super({id:"editor.action.joinLines",label:b(1332,"Join Lines"),precondition:r.writable,kbOpts:{kbExpr:r.editorTextFocus,primary:0,mac:{primary:296},weight:100},canTriggerInlineEdits:!0})}run(u,n){let h=n.getSelections();if(h===null)return;let g=n.getSelection();if(g===null)return;h.sort(t.compareRangesUsingStarts);let p=[],m=h.reduce((R,Z)=>{if(R.isEmpty()){if(R.endLineNumber===Z.startLineNumber){if(g.equalsSelection(R))g=Z;return Z}if(Z.startLineNumber>R.endLineNumber+1)return p.push(R),Z;else return new F(R.startLineNumber,R.startColumn,Z.endLineNumber,Z.endColumn)}else if(Z.startLineNumber>R.endLineNumber)return p.push(R),Z;else return new F(R.startLineNumber,R.startColumn,Z.endLineNumber,Z.endColumn)});p.push(m);let v=n.getModel();if(v===null)return;let S=[],C=[],x=g,T=0;for(let R=0,Z=p.length;R<Z;R++){let Y=p[R],Q=Y.startLineNumber,te=1,oe=0,ne,he,ge=v.getLineLength(Y.endLineNumber)-Y.endColumn;if(Y.isEmpty()||Y.startLineNumber===Y.endLineNumber){let ae=Y.getStartPosition();if(ae.lineNumber<v.getLineCount())ne=Q+1,he=v.getLineMaxColumn(ne);else ne=ae.lineNumber,he=v.getLineMaxColumn(ae.lineNumber)}else ne=Y.endLineNumber,he=v.getLineMaxColumn(ne);let _e=v.getLineContent(Q);for(let ae=Q+1;ae<=ne;ae++){let pe=v.getLineContent(ae),Me=v.getLineFirstNonWhitespaceColumn(ae);if(Me>=1){let Ae=!0;if(_e==="")Ae=!1;if(Ae&&(_e.charAt(_e.length-1)===" "||_e.charAt(_e.length-1)==="\t"))Ae=!1,_e=_e.replace(/[\s\uFEFF\xA0]+$/g," ");let We=pe.substr(Me-1);if(_e+=(Ae?" ":"")+We,Ae)oe=We.length+1;else oe=We.length}else oe=0}let Se=new t(Q,1,ne,he);if(!Se.isEmpty()){let ae;if(Y.isEmpty())S.push(Kt.replace(Se,_e)),ae=new F(Se.startLineNumber-T,_e.length-oe+1,Q-T,_e.length-oe+1);else if(Y.startLineNumber===Y.endLineNumber)S.push(Kt.replace(Se,_e)),ae=new F(Y.startLineNumber-T,Y.startColumn,Y.endLineNumber-T,Y.endColumn);else S.push(Kt.replace(Se,_e)),ae=new F(Y.startLineNumber-T,Y.startColumn,Y.startLineNumber-T,_e.length-ge);if(t.intersectRanges(Se,g)!==null)x=ae;else C.push(ae)}T+=Se.endLineNumber-Se.startLineNumber}C.unshift(x),n.pushUndoStop(),n.executeEdits(this.id,S,C),n.pushUndoStop()}}class RC extends U{constructor(){super({id:"editor.action.transpose",label:b(1333,"Transpose Characters around the Cursor"),precondition:r.writable,canTriggerInlineEdits:!0})}run(u,n){let h=n.getSelections();if(h===null)return;let g=n.getModel();if(g===null)return;let p=[];for(let m=0,v=h.length;m<v;m++){let S=h[m];if(!S.isEmpty())continue;let C=S.getStartPosition(),x=g.getLineMaxColumn(C.lineNumber);if(C.column>=x){if(C.lineNumber===g.getLineCount())continue;let T=new t(C.lineNumber,Math.max(1,C.column-1),C.lineNumber+1,1),R=g.getValueInRange(T).split("").reverse().join("");p.push(new Ti(new F(C.lineNumber,Math.max(1,C.column-1),C.lineNumber+1,1),R))}else{let T=new t(C.lineNumber,Math.max(1,C.column-1),C.lineNumber,C.column+1),R=g.getValueInRange(T).split("").reverse().join("");p.push(new vg(T,R,new F(C.lineNumber,C.column+1,C.lineNumber,C.column+1)))}}n.pushUndoStop(),n.executeCommands(this.id,p),n.pushUndoStop()}}class us extends U{run(u,n){let h=n.getSelections();if(h===null)return;let g=n.getModel();if(g===null)return;let p=n.getOption(148),m=[];for(let v of h)if(v.isEmpty()){let S=v.getStartPosition(),C=n.getConfiguredWordAtPosition(S);if(!C)continue;let x=new t(S.lineNumber,C.startColumn,S.lineNumber,C.endColumn),T=g.getValueInRange(x);m.push(Kt.replace(x,this._modifyText(T,p)))}else{let S=g.getValueInRange(v);m.push(Kt.replace(v,this._modifyText(S,p)))}n.pushUndoStop(),n.executeEdits(this.id,m),n.pushUndoStop()}}class NC extends us{constructor(){super({id:"editor.action.transformToUppercase",label:b(1334,"Transform to Uppercase"),precondition:r.writable,canTriggerInlineEdits:!0})}_modifyText(u,n){return u.toLocaleUpperCase()}}class MC extends us{constructor(){super({id:"editor.action.transformToLowercase",label:b(1335,"Transform to Lowercase"),precondition:r.writable,canTriggerInlineEdits:!0})}_modifyText(u,n){return u.toLocaleLowerCase()}}class Wo{constructor(u,n){this._pattern=u,this._flags=n,this._actual=null,this._evaluated=!1}get(){if(!this._evaluated){this._evaluated=!0;try{this._actual=new RegExp(this._pattern,this._flags)}catch(u){}}return this._actual}isSupported(){return this.get()!==null}}class Cg extends us{static{this.titleBoundary=new Wo("(^|[^\\p{L}\\p{N}']|((^|\\P{L})'))\\p{L}","gmu")}constructor(){super({id:"editor.action.transformToTitlecase",label:b(1336,"Transform to Title Case"),precondition:r.writable,canTriggerInlineEdits:!0})}_modifyText(u,n){let h=Cg.titleBoundary.get();if(!h)return u;return u.toLocaleLowerCase().replace(h,(g)=>g.toLocaleUpperCase())}}class Vd extends us{static{this.caseBoundary=new Wo("(\\p{Ll})(\\p{Lu})","gmu")}static{this.singleLetters=new Wo("(\\p{Lu}|\\p{N})(\\p{Lu})(\\p{Ll})","gmu")}constructor(){super({id:"editor.action.transformToSnakecase",label:b(1337,"Transform to Snake Case"),precondition:r.writable,canTriggerInlineEdits:!0})}_modifyText(u,n){let h=Vd.caseBoundary.get(),g=Vd.singleLetters.get();if(!h||!g)return u;return u.replace(h,"$1_$2").replace(g,"$1_$2$3").toLocaleLowerCase()}}class Da extends us{static{this.singleLineWordBoundary=new Wo("[_\\s-]+","gm")}static{this.multiLineWordBoundary=new Wo("[_-]+","gm")}static{this.validWordStart=new Wo("^(\\p{Lu}[^\\p{Lu}])","gmu")}constructor(){super({id:"editor.action.transformToCamelcase",label:b(1338,"Transform to Camel Case"),precondition:r.writable,canTriggerInlineEdits:!0})}_modifyText(u,n){let h=/\r\n|\r|\n/.test(u)?Da.multiLineWordBoundary.get():Da.singleLineWordBoundary.get(),g=Da.validWordStart.get();if(!h||!g)return u;let p=u.split(h);return p.shift()?.replace(g,(v)=>v.toLocaleLowerCase())+p.map((v)=>v.substring(0,1).toLocaleUpperCase()+v.substring(1)).join("")}}class zd extends us{static{this.wordBoundary=new Wo("[_ \\t-]","gm")}static{this.wordBoundaryToMaintain=new Wo("(?<=\\.)","gm")}static{this.upperCaseWordMatcher=new Wo("^\\p{Lu}+$","mu")}constructor(){super({id:"editor.action.transformToPascalcase",label:b(1339,"Transform to Pascal Case"),precondition:r.writable,canTriggerInlineEdits:!0})}_modifyText(u,n){let h=zd.wordBoundary.get(),g=zd.wordBoundaryToMaintain.get(),p=zd.upperCaseWordMatcher.get();if(!h||!g||!p)return u;return u.split(g).map((S)=>S.split(h)).flat().map((S)=>{let C=S.charAt(0).toLocaleUpperCase()+S.slice(1);if(C.length>1&&p.test(C))return C.charAt(0)+C.slice(1).toLocaleLowerCase();return C}).join("")}}class Kd extends us{static isSupported(){return[this.caseBoundary,this.singleLetters,this.underscoreBoundary].every((n)=>n.isSupported())}static{this.caseBoundary=new Wo("(\\p{Ll})(\\p{Lu})","gmu")}static{this.singleLetters=new Wo("(\\p{Lu}|\\p{N})(\\p{Lu}\\p{Ll})","gmu")}static{this.underscoreBoundary=new Wo("(\\S)(_)(\\S)","gm")}constructor(){super({id:"editor.action.transformToKebabcase",label:b(1340,"Transform to Kebab Case"),precondition:r.writable,canTriggerInlineEdits:!0})}_modifyText(u,n){let h=Kd.caseBoundary.get(),g=Kd.singleLetters.get(),p=Kd.underscoreBoundary.get();if(!h||!g||!p)return u;return u.replace(p,"$1-$3").replace(h,"$1-$2").replace(g,"$1-$2").toLocaleLowerCase()}}O(fC);O(_C);O(bC);O(vC);O(wC);O(SC);O(CC);O(yC);O(y_);O(IC);O(LC);O(kC);O(hl);O(ul);O(EC);O(DC);O(TC);O(RC);O(NC);O(MC);O(xC);if(Vd.caseBoundary.isSupported()&&Vd.singleLetters.isSupported())O(Vd);if(Da.singleLineWordBoundary.isSupported()&&Da.multiLineWordBoundary.isSupported())O(Da);if(zd.wordBoundary.isSupported())O(zd);if(Cg.titleBoundary.isSupported())O(Cg);if(Kd.isSupported())O(Kd);class ho{constructor(u){this._editor=u,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 u=this._findScopeDecorationIds.map((n)=>this._editor.getModel().getDecorationRange(n)).filter((n)=>!!n);if(u.length)return u}return null}getStartPosition(){return this._startPosition}setStartPosition(u){this._startPosition=u,this.setCurrentFindMatch(null)}_getDecorationIndex(u){let n=this._decorations.indexOf(u);if(n>=0)return n+1;return 1}getDecorationRangeAt(u){let n=u<this._decorations.length?this._decorations[u]:null;if(n)return this._editor.getModel().getDecorationRange(n);return null}getCurrentMatchesPosition(u){let n=this._editor.getModel().getDecorationsInRange(u);for(let h of n){let g=h.options;if(g===ho._FIND_MATCH_DECORATION||g===ho._FIND_MATCH_NO_OVERVIEW_DECORATION||g===ho._CURRENT_FIND_MATCH_DECORATION)return this._getDecorationIndex(h.id)}return 0}setCurrentFindMatch(u){let n=null,h=0;if(u)for(let g=0,p=this._decorations.length;g<p;g++){let m=this._editor.getModel().getDecorationRange(this._decorations[g]);if(u.equalsRange(m)){n=this._decorations[g],h=g+1;break}}if(this._highlightedDecorationId!==null||n!==null)this._editor.changeDecorations((g)=>{if(this._highlightedDecorationId!==null)g.changeDecorationOptions(this._highlightedDecorationId,ho._FIND_MATCH_DECORATION),this._highlightedDecorationId=null;if(n!==null)this._highlightedDecorationId=n,g.changeDecorationOptions(this._highlightedDecorationId,ho._CURRENT_FIND_MATCH_DECORATION);if(this._rangeHighlightDecorationId!==null)g.removeDecoration(this._rangeHighlightDecorationId),this._rangeHighlightDecorationId=null;if(n!==null){let p=this._editor.getModel().getDecorationRange(n);if(p.startLineNumber!==p.endLineNumber&&p.endColumn===1){let m=p.endLineNumber-1,v=this._editor.getModel().getLineMaxColumn(m);p=new t(p.startLineNumber,p.startColumn,m,v)}this._rangeHighlightDecorationId=g.addDecoration(p,ho._RANGE_HIGHLIGHT_DECORATION)}});return h}set(u,n){this._editor.changeDecorations((h)=>{let g=ho._FIND_MATCH_DECORATION,p=[];if(u.length>1000){g=ho._FIND_MATCH_NO_OVERVIEW_DECORATION;let v=this._editor.getModel().getLineCount(),C=this._editor.getLayoutInfo().height/v,x=Math.max(2,Math.ceil(3/C)),T=u[0].range.startLineNumber,R=u[0].range.endLineNumber;for(let Z=1,Y=u.length;Z<Y;Z++){let Q=u[Z].range;if(R+x>=Q.startLineNumber){if(Q.endLineNumber>R)R=Q.endLineNumber}else p.push({range:new t(T,1,R,1),options:ho._FIND_MATCH_ONLY_OVERVIEW_DECORATION}),T=Q.startLineNumber,R=Q.endLineNumber}p.push({range:new t(T,1,R,1),options:ho._FIND_MATCH_ONLY_OVERVIEW_DECORATION})}let m=Array(u.length);for(let v=0,S=u.length;v<S;v++)m[v]={range:u[v].range,options:g};if(this._decorations=h.deltaDecorations(this._decorations,m),this._overviewRulerApproximateDecorations=h.deltaDecorations(this._overviewRulerApproximateDecorations,p),this._rangeHighlightDecorationId)h.removeDecoration(this._rangeHighlightDecorationId),this._rangeHighlightDecorationId=null;if(this._findScopeDecorationIds.length)this._findScopeDecorationIds.forEach((v)=>h.removeDecoration(v)),this._findScopeDecorationIds=[];if(n?.length)this._findScopeDecorationIds=n.map((v)=>h.addDecoration(v,ho._FIND_SCOPE_DECORATION))})}matchBeforePosition(u){if(this._decorations.length===0)return null;for(let n=this._decorations.length-1;n>=0;n--){let h=this._decorations[n],g=this._editor.getModel().getDecorationRange(h);if(!g||g.endLineNumber>u.lineNumber)continue;if(g.endLineNumber<u.lineNumber)return g;if(g.endColumn>u.column)continue;return g}return this._editor.getModel().getDecorationRange(this._decorations[this._decorations.length-1])}matchAfterPosition(u){if(this._decorations.length===0)return null;for(let n=0,h=this._decorations.length;n<h;n++){let g=this._decorations[n],p=this._editor.getModel().getDecorationRange(g);if(!p||p.startLineNumber<u.lineNumber)continue;if(p.startLineNumber>u.lineNumber)return p;if(p.startColumn<u.column)continue;return p}return this._editor.getModel().getDecorationRange(this._decorations[0])}_allDecorations(){let u=[];if(u=u.concat(this._decorations),u=u.concat(this._overviewRulerApproximateDecorations),this._findScopeDecorationIds.length)u.push(...this._findScopeDecorationIds);if(this._rangeHighlightDecorationId)u.push(this._rangeHighlightDecorationId);return u}static{this._CURRENT_FIND_MATCH_DECORATION=de.register({description:"current-find-match",stickiness:1,zIndex:13,className:"currentFindMatch",inlineClassName:"currentFindMatchInline",showIfCollapsed:!0,overviewRuler:{color:bn(w1),position:Xo.Center},minimap:{color:bn(w0),position:1}})}static{this._FIND_MATCH_DECORATION=de.register({description:"find-match",stickiness:1,zIndex:10,className:"findMatch",inlineClassName:"findMatchInline",showIfCollapsed:!0,overviewRuler:{color:bn(w1),position:Xo.Center},minimap:{color:bn(w0),position:1}})}static{this._FIND_MATCH_NO_OVERVIEW_DECORATION=de.register({description:"find-match-no-overview",stickiness:1,className:"findMatch",showIfCollapsed:!0})}static{this._FIND_MATCH_ONLY_OVERVIEW_DECORATION=de.register({description:"find-match-only-overview",stickiness:1,overviewRuler:{color:bn(w1),position:Xo.Center}})}static{this._RANGE_HIGHLIGHT_DECORATION=de.register({description:"find-range-highlight",stickiness:1,className:"rangeHighlight",isWholeLine:!0})}static{this._FIND_SCOPE_DECORATION=de.register({description:"find-scope",className:"findScope",isWholeLine:!0})}}class I_{constructor(u,n,h){this._editorSelection=u,this._ranges=n,this._replaceStrings=h,this._trackedEditorSelectionId=null}getEditOperations(u,n){if(this._ranges.length>0){let h=[];for(let m=0;m<this._ranges.length;m++)h.push({range:this._ranges[m],text:this._replaceStrings[m]});h.sort((m,v)=>t.compareRangesUsingStarts(m.range,v.range));let g=[],p=h[0];for(let m=1;m<h.length;m++)if(p.range.endLineNumber===h[m].range.startLineNumber&&p.range.endColumn===h[m].range.startColumn)p.range=p.range.plusRange(h[m].range),p.text=p.text+h[m].text;else g.push(p),p=h[m];g.push(p);for(let m of g)n.addEditOperation(m.range,m.text)}this._trackedEditorSelectionId=n.trackSelection(this._editorSelection)}computeCursorState(u,n){return n.getTrackedSelection(this._trackedEditorSelectionId)}}function L_(u,n){if(u&&u[0]!==""){let h=OC(u,n,"-"),g=OC(u,n,"_");if(h&&!g)return PC(u,n,"-");else if(!h&&g)return PC(u,n,"_");if(u[0].toUpperCase()===u[0])return n.toUpperCase();else if(u[0].toLowerCase()===u[0])return n.toLowerCase();else if(mM(u[0][0])&&n.length>0)return n[0].toUpperCase()+n.substr(1);else if(u[0][0].toUpperCase()!==u[0][0]&&n.length>0)return n[0].toLowerCase()+n.substr(1);else return n}else return n}function OC(u,n,h){return u[0].indexOf(h)!==-1&&n.indexOf(h)!==-1&&u[0].split(h).length===n.split(h).length}function PC(u,n,h){let g=n.split(h),p=u[0].split(h),m="";return g.forEach((v,S)=>{m+=L_([p[S]],v)+h}),m.slice(0,-1)}class k_{constructor(u){this.staticValue=u,this.kind=0}}class AC{constructor(u){this.pieces=u,this.kind=1}}class Ra{static fromStaticValue(u){return new Ra([Ta.staticValue(u)])}get hasReplacementPatterns(){return this._state.kind===1}constructor(u){if(!u||u.length===0)this._state=new k_("");else if(u.length===1&&u[0].staticValue!==null)this._state=new k_(u[0].staticValue);else this._state=new AC(u)}buildReplaceString(u,n){if(this._state.kind===0)if(n)return L_(u,this._state.staticValue);else return this._state.staticValue;let h="";for(let g=0,p=this._state.pieces.length;g<p;g++){let m=this._state.pieces[g];if(m.staticValue!==null){h+=m.staticValue;continue}let v=Ra._substitute(m.matchIndex,u);if(m.caseOps!==null&&m.caseOps.length>0){let S=[],C=m.caseOps.length,x=0;for(let T=0,R=v.length;T<R;T++){if(x>=C){S.push(v.slice(T));break}switch(m.caseOps[x]){case"U":S.push(v[T].toUpperCase());break;case"u":S.push(v[T].toUpperCase()),x++;break;case"L":S.push(v[T].toLowerCase());break;case"l":S.push(v[T].toLowerCase()),x++;break;default:S.push(v[T])}}v=S.join("")}h+=v}return h}static _substitute(u,n){if(n===null)return"";if(u===0)return n[0];let h="";while(u>0){if(u<n.length)return(n[u]||"")+h;h=String(u%10)+h,u=Math.floor(u/10)}return"$"+h}}class Ta{static staticValue(u){return new Ta(u,-1,null)}static caseOps(u,n){return new Ta(null,u,n)}constructor(u,n,h){if(this.staticValue=u,this.matchIndex=n,!h||h.length===0)this.caseOps=null;else this.caseOps=h.slice(0)}}class FC{constructor(u){this._source=u,this._lastCharIndex=0,this._result=[],this._resultLen=0,this._currentStaticPiece=""}emitUnchanged(u){this._emitStatic(this._source.substring(this._lastCharIndex,u)),this._lastCharIndex=u}emitStatic(u,n){this._emitStatic(u),this._lastCharIndex=n}_emitStatic(u){if(u.length===0)return;this._currentStaticPiece+=u}emitMatchIndex(u,n,h){if(this._currentStaticPiece.length!==0)this._result[this._resultLen++]=Ta.staticValue(this._currentStaticPiece),this._currentStaticPiece="";this._result[this._resultLen++]=Ta.caseOps(u,h),this._lastCharIndex=n}finalize(){if(this.emitUnchanged(this._source.length),this._currentStaticPiece.length!==0)this._result[this._resultLen++]=Ta.staticValue(this._currentStaticPiece),this._currentStaticPiece="";return new Ra(this._result)}}function HC(u){if(!u||u.length===0)return new Ra(null);let n=[],h=new FC(u);for(let g=0,p=u.length;g<p;g++){let m=u.charCodeAt(g);if(m===92){if(g++,g>=p)break;let v=u.charCodeAt(g);switch(v){case 92:h.emitUnchanged(g-1),h.emitStatic("\\",g+1);break;case 110:h.emitUnchanged(g-1),h.emitStatic(`
|
|
18
|
+
`,g+1);break;case 116:h.emitUnchanged(g-1),h.emitStatic("\t",g+1);break;case 117:case 85:case 108:case 76:h.emitUnchanged(g-1),h.emitStatic("",g+1),n.push(String.fromCharCode(v));break}continue}if(m===36){if(g++,g>=p)break;let v=u.charCodeAt(g);if(v===36){h.emitUnchanged(g-1),h.emitStatic("$",g+1);continue}if(v===48||v===38){h.emitUnchanged(g-1),h.emitMatchIndex(0,g+1,n),n.length=0;continue}if(49<=v&&v<=57){let S=v-48;if(g+1<p){let C=u.charCodeAt(g+1);if(48<=C&&C<=57){g++,S=S*10+(C-48),h.emitUnchanged(g-2),h.emitMatchIndex(S,g+1,n),n.length=0;continue}}h.emitUnchanged(g-1),h.emitMatchIndex(S,g+1,n),n.length=0;continue}}}return h.finalize()}var ar=new M("findWidgetVisible",!1);ar.toNegated();var qd=new M("findInputFocussed",!1),pl=new M("replaceInputFocussed",!1),WC=new M("findWidgetFocused",!1),Dl={primary:545,mac:{primary:2593}},Rl={primary:565,mac:{primary:2613}},Nl={primary:560,mac:{primary:2608}},Ml={primary:554,mac:{primary:2602}},Ol={primary:558,mac:{primary:2606}},_t={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"},sr=19999,zD=240;class Ud{constructor(u,n){this._toDispose=new d,this._editor=u,this._state=n,this._isDisposed=!1,this._startSearchingTimer=new ai,this._decorations=new ho(u),this._toDispose.add(this._decorations),this._updateDecorationsScheduler=new Ce(()=>{if(!this._editor.hasModel())return;return this.research(!1)},100),this._toDispose.add(this._updateDecorationsScheduler),this._toDispose.add(this._editor.onDidChangeCursorPosition((h)=>{if(h.reason===3||h.reason===5||h.reason===6)this._decorations.setStartPosition(this._editor.getPosition())})),this._ignoreModelContentChanged=!1,this._toDispose.add(this._editor.onDidChangeModelContent((h)=>{if(this._ignoreModelContentChanged)return;if(h.isFlush)this._decorations.reset();this._decorations.setStartPosition(this._editor.getPosition()),this._updateDecorationsScheduler.schedule()})),this._toDispose.add(this._state.onFindReplaceStateChange((h)=>this._onStateChanged(h))),this.research(!1,this._state.searchScope)}dispose(){this._isDisposed=!0,He(this._startSearchingTimer),this._toDispose.dispose()}_onStateChanged(u){if(this._isDisposed)return;if(!this._editor.hasModel())return;if(u.searchString||u.isReplaceRevealed||u.isRegex||u.wholeWord||u.matchCase||u.searchScope)if(this._editor.getModel().isTooLargeForSyncing())this._startSearchingTimer.cancel(),this._startSearchingTimer.setIfNotSet(()=>{if(u.searchScope)this.research(u.moveCursor,this._state.searchScope);else this.research(u.moveCursor)},zD);else if(u.searchScope)this.research(u.moveCursor,this._state.searchScope);else this.research(u.moveCursor)}static _getSearchRange(u,n){if(n)return n;return u.getFullModelRange()}research(u,n){let h=null;if(typeof n<"u"){if(n!==null)if(!Array.isArray(n))h=[n];else h=n}else h=this._decorations.getFindScopes();if(h!==null)h=h.map((v)=>{if(v.startLineNumber!==v.endLineNumber){let S=v.endLineNumber;if(v.endColumn===1)S=S-1;return new t(v.startLineNumber,1,S,this._editor.getModel().getLineMaxColumn(S))}return v});let g=this._findMatches(h,!1,sr);this._decorations.set(g,h);let p=this._editor.getSelection(),m=this._decorations.getCurrentMatchesPosition(p);if(m===0&&g.length>0){let v=vf(g.map((S)=>S.range),(S)=>t.compareRangesUsingStarts(S,p)>=0);m=v>0?v-1+1:m}if(this._state.changeMatchInfo(m,this._decorations.getCount(),void 0),u&&this._editor.getOption(50).cursorMoveOnType)this._moveToNextMatch(this._decorations.getStartPosition())}_hasMatches(){return this._state.matchesCount>0}_cannotFind(){if(!this._hasMatches()){let u=this._decorations.getFindScope();if(u)this._editor.revealRangeInCenterIfOutsideViewport(u,0);return!0}return!1}_setCurrentFindMatch(u){let n=this._decorations.setCurrentFindMatch(u);this._state.changeMatchInfo(n,this._decorations.getCount(),u),this._editor.setSelection(u),this._editor.revealRangeInCenterIfOutsideViewport(u,0)}_prevSearchPosition(u){let n=this._state.isRegex&&(this._state.searchString.indexOf("^")>=0||this._state.searchString.indexOf("$")>=0),{lineNumber:h,column:g}=u,p=this._editor.getModel();if(n||g===1){if(h===1)h=p.getLineCount();else h--;g=p.getLineMaxColumn(h)}else g--;return new s(h,g)}_moveToPrevMatch(u,n=!1){if(!this._state.canNavigateBack()){let x=this._decorations.matchAfterPosition(u);if(x)this._setCurrentFindMatch(x);return}if(this._decorations.getCount()<sr){let x=this._decorations.matchBeforePosition(u);if(x&&x.isEmpty()&&x.getStartPosition().equals(u))u=this._prevSearchPosition(u),x=this._decorations.matchBeforePosition(u);if(x)this._setCurrentFindMatch(x);return}if(this._cannotFind())return;let h=this._decorations.getFindScope(),g=Ud._getSearchRange(this._editor.getModel(),h);if(g.getEndPosition().isBefore(u))u=g.getEndPosition();if(u.isBefore(g.getStartPosition()))u=g.getEndPosition();let{lineNumber:p,column:m}=u,v=this._editor.getModel(),S=new s(p,m),C=v.findPreviousMatch(this._state.searchString,S,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(148):null,!1);if(C&&C.range.isEmpty()&&C.range.getStartPosition().equals(S))S=this._prevSearchPosition(S),C=v.findPreviousMatch(this._state.searchString,S,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(148):null,!1);if(!C)return;if(!n&&!g.containsRange(C.range))return this._moveToPrevMatch(C.range.getStartPosition(),!0);this._setCurrentFindMatch(C.range)}moveToPrevMatch(){this._moveToPrevMatch(this._editor.getSelection().getStartPosition())}_nextSearchPosition(u){let n=this._state.isRegex&&(this._state.searchString.indexOf("^")>=0||this._state.searchString.indexOf("$")>=0),{lineNumber:h,column:g}=u,p=this._editor.getModel();if(n||g===p.getLineMaxColumn(h)){if(h===p.getLineCount())h=1;else h++;g=1}else g++;return new s(h,g)}_moveToNextMatch(u){if(!this._state.canNavigateForward()){let h=this._decorations.matchBeforePosition(u);if(h)this._setCurrentFindMatch(h);return}if(this._decorations.getCount()<sr){let h=this._decorations.matchAfterPosition(u);if(h&&h.isEmpty()&&h.getStartPosition().equals(u))u=this._nextSearchPosition(u),h=this._decorations.matchAfterPosition(u);if(h)this._setCurrentFindMatch(h);return}let n=this._getNextMatch(u,!1,!0);if(n)this._setCurrentFindMatch(n.range)}_getNextMatch(u,n,h,g=!1){if(this._cannotFind())return null;let p=this._decorations.getFindScope(),m=Ud._getSearchRange(this._editor.getModel(),p);if(m.getEndPosition().isBefore(u))u=m.getStartPosition();if(u.isBefore(m.getStartPosition()))u=m.getStartPosition();let{lineNumber:v,column:S}=u,C=this._editor.getModel(),x=new s(v,S),T=C.findNextMatch(this._state.searchString,x,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(148):null,n);if(h&&T&&T.range.isEmpty()&&T.range.getStartPosition().equals(x))x=this._nextSearchPosition(x),T=C.findNextMatch(this._state.searchString,x,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(148):null,n);if(!T)return null;if(!g&&!m.containsRange(T.range))return this._getNextMatch(T.range.getEndPosition(),n,h,!0);return T}moveToNextMatch(){this._moveToNextMatch(this._editor.getSelection().getEndPosition())}_moveToMatch(u){let n=this._decorations.getDecorationRangeAt(u);if(n)this._setCurrentFindMatch(n)}moveToMatch(u){this._moveToMatch(u)}_getReplacePattern(){if(this._state.isRegex)return HC(this._state.replaceString);return Ra.fromStaticValue(this._state.replaceString)}replace(){if(!this._hasMatches())return;let u=this._getReplacePattern(),n=this._editor.getSelection(),h=this._getNextMatch(n.getStartPosition(),!0,!1);if(h)if(n.equalsRange(h.range)){let g=u.buildReplaceString(h.matches,this._state.preserveCase),p=new Ti(n,g);this._executeEditorCommand("replace",p),this._decorations.setStartPosition(new s(n.startLineNumber,n.startColumn+g.length)),this.research(!0)}else this._decorations.setStartPosition(this._editor.getPosition()),this._setCurrentFindMatch(h.range)}_findMatches(u,n,h){let g=(u||[null]).map((p)=>Ud._getSearchRange(this._editor.getModel(),p));return this._editor.getModel().findMatches(this._state.searchString,g,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(148):null,n,h)}replaceAll(){if(!this._hasMatches())return;let u=this._decorations.getFindScopes();if(u===null&&this._state.matchesCount>=sr)this._largeReplaceAll();else this._regularReplaceAll(u);this.research(!1)}_largeReplaceAll(){let n=new du(this._state.searchString,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(148):null).parseSearchRequest();if(!n)return;let h=n.regex;if(!h.multiline){let T="mu";if(h.ignoreCase)T+="i";if(h.global)T+="g";h=new RegExp(h.source,T)}let g=this._editor.getModel(),p=g.getValue(1),m=g.getFullModelRange(),v=this._getReplacePattern(),S,C=this._state.preserveCase;if(v.hasReplacementPatterns||C)S=p.replace(h,function(){return v.buildReplaceString(arguments,C)});else S=p.replace(h,v.buildReplaceString(null,C));let x=new vg(m,S,this._editor.getSelection());this._executeEditorCommand("replaceAll",x)}_regularReplaceAll(u){let n=this._getReplacePattern(),h=this._findMatches(u,n.hasReplacementPatterns||this._state.preserveCase,1073741824),g=[];for(let m=0,v=h.length;m<v;m++)g[m]=n.buildReplaceString(h[m].matches,this._state.preserveCase);let p=new I_(this._editor.getSelection(),h.map((m)=>m.range),g);this._executeEditorCommand("replaceAll",p)}selectAllMatches(){if(!this._hasMatches())return;let u=this._decorations.getFindScopes(),h=this._findMatches(u,!1,1073741824).map((p)=>new F(p.range.startLineNumber,p.range.startColumn,p.range.endLineNumber,p.range.endColumn)),g=this._editor.getSelection();for(let p=0,m=h.length;p<m;p++)if(h[p].equalsRange(g)){h=[g].concat(h.slice(0,p)).concat(h.slice(p+1));break}this._editor.setSelections(h)}_executeEditorCommand(u,n){try{this._ignoreModelContentChanged=!0,this._editor.pushUndoStop(),this._editor.executeCommand(u,n),this._editor.pushUndoStop()}finally{this._ignoreModelContentChanged=!1}}}var KD=e(5,"input"),UD=e(6,"Preserve Case");class BC extends kc{constructor(u){super({icon:_.preserveCase,title:UD+u.appendTitle,isChecked:u.isChecked,hoverLifecycleOptions:u.hoverLifecycleOptions,inputActiveOptionBorder:u.inputActiveOptionBorder,inputActiveOptionForeground:u.inputActiveOptionForeground,inputActiveOptionBackground:u.inputActiveOptionBackground})}}class E_ extends Ei{get onDidOptionChange(){return this._onDidOptionChange.event}get onKeyDown(){return this._onKeyDown.event}get onPreserveCaseKeyDown(){return this._onPreserveCaseKeyDown.event}constructor(u,n,h,g){super();this._showOptionButtons=h,this.fixFocusOnOptionClickEnabled=!0,this.cachedOptionsWidth=0,this._onDidOptionChange=this._register(new o),this._onKeyDown=this._register(new o),this._onMouseDown=this._register(new o),this._onInput=this._register(new o),this._onKeyUp=this._register(new o),this._onPreserveCaseKeyDown=this._register(new o),this.contextViewProvider=n,this.placeholder=g.placeholder||"",this.validation=g.validation,this.label=g.label||KD;let p=g.appendPreserveCaseLabel||"",m=g.history||new Set([]),v=!!g.flexibleHeight,S=!!g.flexibleWidth,C=g.flexibleMaxHeight;if(this.domNode=document.createElement("div"),this.domNode.classList.add("monaco-findInput"),this.inputBox=this._register(new W0(this.domNode,this.contextViewProvider,{ariaLabel:this.label||"",placeholder:this.placeholder||"",validationOptions:{validation:this.validation},history:m,showHistoryHint:g.showHistoryHint,flexibleHeight:v,flexibleWidth:S,flexibleMaxHeight:C,inputBoxStyles:g.inputBoxStyles})),this.preserveCase=this._register(new BC({appendTitle:p,isChecked:!1,hoverLifecycleOptions:g.hoverLifecycleOptions,...g.toggleStyles})),this._register(this.preserveCase.onChange((R)=>{if(this._onDidOptionChange.fire(R),!R&&this.fixFocusOnOptionClickEnabled)this.inputBox.focus();this.validate()})),this._register(this.preserveCase.onKeyDown((R)=>{this._onPreserveCaseKeyDown.fire(R)})),this._showOptionButtons)this.cachedOptionsWidth=this.preserveCase.width();else this.cachedOptionsWidth=0;let x=[this.preserveCase.domNode];this.onkeydown(this.domNode,(R)=>{z1(R,this.domNode,()=>x,()=>this.inputBox.focus())});let T=document.createElement("div");T.className="controls",T.style.display=this._showOptionButtons?"block":"none",T.appendChild(this.preserveCase.domNode),this.domNode.appendChild(T),u?.appendChild(this.domNode),this.onkeydown(this.inputBox.inputElement,(R)=>this._onKeyDown.fire(R)),this.onkeyup(this.inputBox.inputElement,(R)=>this._onKeyUp.fire(R)),this.oninput(this.inputBox.inputElement,(R)=>this._onInput.fire()),this.onmousedown(this.inputBox.inputElement,(R)=>this._onMouseDown.fire(R))}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(u){if(u)this.enable();else this.disable()}select(){this.inputBox.select()}focus(){this.inputBox.focus()}getPreserveCase(){return this.preserveCase.checked}setPreserveCase(u){this.preserveCase.checked=u}focusOnPreserve(){this.preserveCase.focus()}validate(){this.inputBox?.validate()}set width(u){this.inputBox.paddingRight=this.cachedOptionsWidth,this.domNode.style.width=u+"px"}}var zC=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},jC=function(u,n){return function(h,g){n(h,g,u)}},Rg=new M("suggestWidgetVisible",!1,e(1793,"Whether suggestion are visible")),D_="historyNavigationWidgetFocus",$C="historyNavigationForwardsEnabled",_y="historyNavigationBackwardsEnabled",Pl=void 0,Ig=[];function by(u,n){if(Ig.includes(n))throw Error("Cannot register the same widget multiple times");Ig.push(n);let h=new d,g=new M(D_,!1).bindTo(u),p=new M($C,!0).bindTo(u),m=new M(_y,!0).bindTo(u),v=()=>{g.set(!0),Pl=n},S=()=>{if(g.set(!1),Pl===n)Pl=void 0};if(Fs(n.element))v();return h.add(n.onDidFocus(()=>v())),h.add(n.onDidBlur(()=>S())),h.add(N(()=>{Ig.splice(Ig.indexOf(n),1),S()})),{historyNavigationForwardsEnablement:p,historyNavigationBackwardsEnablement:m,dispose(){h.dispose()}}}var kg=class u extends V0{constructor(n,h,g,p){super(n,h,g);let m=this._register(p.createScoped(this.inputBox.element));this._register(by(m,this.inputBox))}};kg=zC([jC(3,G)],kg);var Dg=class u extends E_{constructor(n,h,g,p,m=!1){super(n,h,m,g);let v=this._register(p.createScoped(this.inputBox.element));this._register(by(v,this.inputBox))}};Dg=zC([jC(3,G)],Dg);Nn.registerCommandAndKeybindingRule({id:"history.showPrevious",weight:200,when:L.and(L.has(D_),L.equals(_y,!0),Rg.isEqualTo(!1)),primary:16,secondary:[528],handler:(u)=>{Pl?.showPreviousValue()}});Nn.registerCommandAndKeybindingRule({id:"history.showNext",weight:200,when:L.and(L.has(D_),L.equals($C,!0),Rg.isEqualTo(!1)),primary:18,secondary:[530],handler:(u)=>{Pl?.showNextValue()}});function T_(u){return u.lookupKeybinding("history.showPrevious")?.getElectronAccelerator()==="Up"&&u.lookupKeybinding("history.showNext")?.getElectronAccelerator()==="Down"}var Sy=Ht("find-collapsed",_.chevronRight,e(1011,"Icon to indicate that the editor find widget is collapsed.")),Cy=Ht("find-expanded",_.chevronDown,e(1012,"Icon to indicate that the editor find widget is expanded.")),qD=Ht("find-selection",_.selection,e(1013,"Icon for 'Find in Selection' in the editor find widget.")),jD=Ht("find-replace",_.replace,e(1014,"Icon for 'Replace' in the editor find widget.")),$D=Ht("find-replace-all",_.replaceAll,e(1015,"Icon for 'Replace All' in the editor find widget.")),GD=Ht("find-previous-match",_.arrowUp,e(1016,"Icon for 'Find Previous' in the editor find widget.")),ZD=Ht("find-next-match",_.arrowDown,e(1017,"Icon for 'Find Next' in the editor find widget.")),XD=e(1018,"Find / Replace"),R_=e(1019,"Find"),YD=e(1020,"Find"),JD=e(1021,"Previous Match"),QD=e(1022,"Next Match"),t2=e(1023,"Find in Selection"),n2=e(1024,"Close"),N_=e(1025,"Replace"),d2=e(1026,"Replace"),c2=e(1027,"Replace"),l2=e(1028,"Replace All"),h2=e(1029,"Toggle Replace"),u2=e(1030,"Only the first {0} results are highlighted, but all find operations work on the entire text.",sr),g2=e(1031,"{0} of {1}"),Mg=e(1032,"No results"),dr=419,p2=275,m2=p2-54,Al=69,f2=33,Iy=ve?256:2048;class Ng{constructor(u){this.afterLineNumber=u,this.heightInPx=f2,this.suppressMouseDown=!1,this.domNode=document.createElement("div"),this.domNode.className="dock-find-viewzone"}}function Ly(u,n,h){let g=!!n.match(/\n/);if(h&&g&&h.selectionStart>0){u.stopPropagation();return}}function ky(u,n,h){let g=!!n.match(/\n/);if(h&&g&&h.selectionEnd<h.value.length){u.stopPropagation();return}}class ad extends Ei{static{this.ID="editor.contrib.findWidget"}constructor(u,n,h,g,p,m,v,S,C,x,T){super();if(this._hoverService=v,this._findWidgetSearchHistory=S,this._replaceWidgetHistory=C,this._configurationService=x,this._accessibilityService=T,this._cachedHeight=null,this._lastFocusedInputWasReplace=!1,this._lastFocusedElement=null,this._revealTimeouts=[],this._codeEditor=u,this._controller=n,this._state=h,this._contextViewProvider=g,this._keybindingService=p,this._contextKeyService=m,this._isVisible=!1,this._isReplaceVisible=!1,this._ignoreChangeEvent=!1,this._accessibilityHelpHintAnnounced=!1,this._updateHistoryDelayer=new qi(500),this._register(N(()=>this._updateHistoryDelayer.cancel())),this._register(this._state.onFindReplaceStateChange((R)=>this._onStateChanged(R))),this._buildDomNode(),this._updateButtons(),this._tryUpdateWidgetWidth(),this._findInput.inputBox.layout(),this._register(this._codeEditor.onDidChangeConfiguration((R)=>{if(R.hasChanged(104)){if(this._codeEditor.getOption(104))this._state.change({isReplaceRevealed:!1},!1);this._updateButtons()}if(R.hasChanged(166))this._tryUpdateWidgetWidth();if(R.hasChanged(2))this.updateAccessibilitySupport();if(R.hasChanged(50)){let Z=this._codeEditor.getOption(50).loop;this._state.change({loop:Z},!1);let Y=this._codeEditor.getOption(50).addExtraSpaceOnTop;if(Y&&!this._viewZone)this._viewZone=new Ng(0),this._showViewZone();if(!Y&&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 R=await this._controller.getGlobalBufferTerm();if(R&&R!==this._state.searchString)this._state.change({searchString:R},!1),this._findInput.select()}})),this._findInputFocused=qd.bindTo(m),this._findFocusTracker=this._register(gi(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=pl.bindTo(m),this._replaceFocusTracker=this._register(gi(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=WC.bindTo(m),this._widgetFocusTracker=this._register(gi(this._domNode)),this._register(this._widgetFocusTracker.onDidFocus(()=>{this._findWidgetFocused.set(!0)})),this._register(this._widgetFocusTracker.onDidBlur(()=>{this._findWidgetFocused.set(!1)})),this._register(c(this._domNode,"focusin",(R)=>{if(Le(R.target))this._lastFocusedElement=R.target})),this._codeEditor.addOverlayWidget(this),this._codeEditor.getOption(50).addExtraSpaceOnTop)this._viewZone=new Ng(0);this._register(this._codeEditor.onDidChangeModel(()=>{if(!this._isVisible)return;this._viewZoneId=void 0})),this._register(this._codeEditor.onDidScrollChange((R)=>{if(R.scrollTopChanged){this._layoutViewZone();return}setTimeout(()=>{this._layoutViewZone()},0)}))}getId(){return ad.ID}getDomNode(){return this._domNode}getPosition(){if(this._isVisible)return{preference:0};return null}_onStateChanged(u){if(u.searchString){try{this._ignoreChangeEvent=!0,this._findInput.setValue(this._state.searchString)}finally{this._ignoreChangeEvent=!1}this._updateButtons()}if(u.replaceString)this._replaceInput.inputBox.value=this._state.replaceString;if(u.isRevealed)if(this._state.isRevealed)this._reveal();else this._hide(!0);if(u.isReplaceRevealed){if(this._state.isReplaceRevealed){if(!this._codeEditor.getOption(104)&&!this._isReplaceVisible)this._isReplaceVisible=!0,this._replaceInput.width=Oo(this._findInput.domNode),this._updateButtons(),this._replaceInput.inputBox.layout()}else if(this._isReplaceVisible)this._isReplaceVisible=!1,this._updateButtons()}if((u.isRevealed||u.isReplaceRevealed)&&(this._state.isRevealed||this._state.isReplaceRevealed)){if(this._tryUpdateHeight())this._showViewZone()}if(u.isRegex)this._findInput.setRegex(this._state.isRegex);if(u.wholeWord)this._findInput.setWholeWords(this._state.wholeWord);if(u.matchCase)this._findInput.setCaseSensitive(this._state.matchCase);if(u.preserveCase)this._replaceInput.setPreserveCase(this._state.preserveCase);if(u.searchScope){if(this._state.searchScope)this._toggleSelectionFind.checked=!0;else this._toggleSelectionFind.checked=!1;this._updateToggleSelectionFindButton()}if(u.searchString||u.matchesCount||u.matchesPosition){let n=this._state.searchString.length>0&&this._state.matchesCount===0;this._domNode.classList.toggle("no-results",n),this._updateMatchesCount(),this._updateButtons()}if(u.searchString||u.currentMatch)this._layoutViewZone();if(u.updateHistory)this._delayedUpdateHistory();if(u.loop)this._updateButtons()}_delayedUpdateHistory(){this._updateHistoryDelayer.trigger(this._updateHistory.bind(this)).then(void 0,X)}_updateHistory(){if(this._state.searchString)this._findInput.inputBox.addToHistory();if(this._state.replaceString)this._replaceInput.inputBox.addToHistory()}_updateMatchesCount(){if(this._matchesCount.style.minWidth=Al+"px",this._state.matchesCount>=sr)this._matchesCount.title=u2;else this._matchesCount.title="";this._matchesCount.firstChild?.remove();let u;if(this._state.matchesCount>0){let n=String(this._state.matchesCount);if(this._state.matchesCount>=sr)n+="+";let h=String(this._state.matchesPosition);if(h==="0")h="?";u=Ha(g2,h,n)}else u=Mg;this._matchesCount.appendChild(document.createTextNode(u)),zn(this._getAriaLabel(u,this._state.currentMatch,this._state.searchString)),Al=Math.max(Al,this._matchesCount.clientWidth)}_getAriaLabel(u,n,h){let g;if(u===Mg)g=h===""?e(1033,"{0} found",u):e(1034,"{0} found for '{1}'",u,h);else if(n){let p=e(1035,"{0} found for '{1}', at {2}",u,h,n.startLineNumber+":"+n.startColumn),m=this._codeEditor.getModel();if(m&&n.startLineNumber<=m.getLineCount()&&n.startLineNumber>=1)g=`${m.getLineContent(n.startLineNumber)}, ${p}`;else g=p}else g=e(1036,"{0} found for '{1}'",u,h);return g}_updateToggleSelectionFindButton(){let u=this._codeEditor.getSelection(),n=u?u.startLineNumber!==u.endLineNumber||u.startColumn!==u.endColumn:!1,h=this._toggleSelectionFind.checked;if(this._isVisible&&(h||n))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 u=this._state.searchString.length>0,n=this._state.matchesCount?!0:!1;this._prevBtn.setEnabled(this._isVisible&&u&&n&&this._state.canNavigateBack()),this._nextBtn.setEnabled(this._isVisible&&u&&n&&this._state.canNavigateForward()),this._replaceBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&u),this._replaceAllBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&u),this._domNode.classList.toggle("replaceToggled",this._isReplaceVisible),this._toggleReplaceBtn.setExpanded(this._isReplaceVisible);let h=!this._codeEditor.getOption(104);this._toggleReplaceBtn.setEnabled(this._isVisible&&h)}_reveal(){if(this._revealTimeouts.forEach((u)=>{clearTimeout(u)}),this._revealTimeouts=[],!this._isVisible){this._isVisible=!0;let u=this._codeEditor.getSelection();switch(this._codeEditor.getOption(50).autoFindInSelection){case"always":this._toggleSelectionFind.checked=!0;break;case"never":this._toggleSelectionFind.checked=!1;break;case"multiline":{let h=!!u&&u.startLineNumber!==u.endLineNumber;this._toggleSelectionFind.checked=h;break}}this._tryUpdateWidgetWidth(),this._updateButtons(),this._revealTimeouts.push(setTimeout(()=>{this._domNode.classList.add("visible"),this._domNode.setAttribute("aria-hidden","false"),this._updateFindInputAriaLabel()},0)),this._revealTimeouts.push(setTimeout(()=>{this._findInput.validate()},200)),this._codeEditor.layoutOverlayWidget(this);let n=!0;if(this._codeEditor.getOption(50).seedSearchStringFromSelection&&u){let h=this._codeEditor.getDomNode();if(h){let g=kt(h),p=this._codeEditor.getScrolledVisiblePosition(u.getStartPosition()),m=g.left+(p?p.left:0),v=p?p.top:0;if(this._viewZone&&v<this._viewZone.heightInPx){if(u.endLineNumber>u.startLineNumber)n=!1;let S=u1(this._domNode).left;if(m>S)n=!1;let C=this._codeEditor.getScrolledVisiblePosition(u.getEndPosition());if(g.left+(C?C.left:0)>S)n=!1}}}this._showViewZone(n)}}_hide(u){if(this._revealTimeouts.forEach((n)=>{clearTimeout(n)}),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(),u)this._codeEditor.focus();this._codeEditor.layoutOverlayWidget(this),this._removeViewZone()}}_layoutViewZone(u){if(!this._codeEditor.getOption(50).addExtraSpaceOnTop){this._removeViewZone();return}if(!this._isVisible)return;let h=this._viewZone;if(this._viewZoneId!==void 0||!h)return;this._codeEditor.changeViewZones((g)=>{h.heightInPx=this._getHeight(),this._viewZoneId=g.addZone(h),this._codeEditor.setScrollTop(u||this._codeEditor.getScrollTop()+h.heightInPx)})}_showViewZone(u=!0){if(!this._isVisible)return;if(!this._codeEditor.getOption(50).addExtraSpaceOnTop)return;if(this._viewZone===void 0)this._viewZone=new Ng(0);let h=this._viewZone;this._codeEditor.changeViewZones((g)=>{if(this._viewZoneId!==void 0){let p=this._getHeight();if(p===h.heightInPx)return;let m=p-h.heightInPx;if(h.heightInPx=p,g.layoutZone(this._viewZoneId),u)this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()+m);return}else{let p=this._getHeight();if(p-=this._codeEditor.getOption(96).top,p<=0)return;if(h.heightInPx=p,this._viewZoneId=g.addZone(h),u)this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()+p)}})}_removeViewZone(){this._codeEditor.changeViewZones((u)=>{if(this._viewZoneId!==void 0){if(u.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 u=this._codeEditor.getLayoutInfo();if(u.contentWidth<=0){this._domNode.classList.add("hiddenEditor");return}else if(this._domNode.classList.contains("hiddenEditor"))this._domNode.classList.remove("hiddenEditor");let h=u.width,g=u.minimap.minimapWidth,p=!1,m=!1,v=!1;if(this._resized){if(Oo(this._domNode)>dr){this._domNode.style.maxWidth=`${h-28-g-15}px`,this._replaceInput.width=Oo(this._findInput.domNode);return}}if(dr+28+g>=h)m=!0;if(dr+28+g-Al>=h)v=!0;if(dr+28+g-Al>=h+50)p=!0;if(this._domNode.classList.toggle("collapsed-find-widget",p),this._domNode.classList.toggle("narrow-find-widget",v),this._domNode.classList.toggle("reduced-find-widget",m),!v&&!p)this._domNode.style.maxWidth=`${h-28-g-15}px`;if(this._findInput.layout({collapsedFindWidget:p,narrowFindWidget:v,reducedFindWidget:m}),this._resized){let S=this._findInput.inputBox.element.clientWidth;if(S>0)this._replaceInput.width=S}else if(this._isReplaceVisible)this._replaceInput.width=Oo(this._findInput.domNode)}_getHeight(){let u=0;if(u+=4,u+=this._findInput.inputBox.height+2,this._isReplaceVisible)u+=4,u+=this._replaceInput.inputBox.height+2;return u+=4,u}_tryUpdateHeight(){let u=this._getHeight();if(this._cachedHeight!==null&&this._cachedHeight===u)return!1;return this._cachedHeight=u,this._domNode.style.height=`${u}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 u=this._codeEditor.getSelections();if(u.map((n)=>{if(n.endColumn===1&&n.endLineNumber>n.startLineNumber)n=n.setEndPosition(n.endLineNumber-1,this._codeEditor.getModel().getLineMaxColumn(n.endLineNumber-1));let h=this._state.currentMatch;if(n.startLineNumber!==n.endLineNumber){if(!t.equalsRange(n,h))return n}return null}).filter((n)=>!!n),u.length)this._state.change({searchScope:u},!0)}}_onFindInputMouseDown(u){if(u.middleButton)u.stopPropagation()}_onFindInputKeyDown(u){if(u.equals(Iy|3))if(this._keybindingService.dispatchEvent(u,u.target)){u.preventDefault();return}else{this._findInput.inputBox.insertAtCursor(`
|
|
19
|
+
`),u.preventDefault();return}if(u.equals(2)){if(this._isReplaceVisible)this._replaceInput.focus();else this._findInput.focusOnCaseSensitive();u.preventDefault();return}if(u.equals(2066)){this._codeEditor.focus(),u.preventDefault();return}if(u.equals(16))return Ly(u,this._findInput.getValue(),this._findInput.domNode.querySelector("textarea"));if(u.equals(18))return ky(u,this._findInput.getValue(),this._findInput.domNode.querySelector("textarea"))}_onReplaceInputKeyDown(u){if(u.equals(Iy|3))if(this._keybindingService.dispatchEvent(u,u.target)){u.preventDefault();return}else{this._replaceInput.inputBox.insertAtCursor(`
|
|
20
|
+
`),u.preventDefault();return}if(u.equals(2)){this._findInput.focusOnCaseSensitive(),u.preventDefault();return}if(u.equals(1026)){this._findInput.focus(),u.preventDefault();return}if(u.equals(2066)){this._codeEditor.focus(),u.preventDefault();return}if(u.equals(16))return Ly(u,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector("textarea"));if(u.equals(18))return ky(u,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector("textarea"))}getVerticalSashLeft(u){return 0}_keybindingLabelFor(u){return this._keybindingService.appendKeybinding("",u)}_buildDomNode(){let h=this._codeEditor.getOption(50).history,g=this._codeEditor.getOption(50).replaceHistory;if(this._findInput=this._register(new kg(null,this._contextViewProvider,{width:m2,label:R_,placeholder:YD,appendCaseSensitiveLabel:this._keybindingLabelFor(_t.ToggleCaseSensitiveCommand),appendWholeWordsLabel:this._keybindingLabelFor(_t.ToggleWholeWordCommand),appendRegexLabel:this._keybindingLabelFor(_t.ToggleRegexCommand),validation:(T)=>{if(T.length===0||!this._findInput.getRegex())return null;try{return new RegExp(T,"gu"),null}catch(R){return{content:R.message}}},flexibleHeight:!0,flexibleWidth:!0,flexibleMaxHeight:118,showCommonFindToggles:!0,showHistoryHint:()=>T_(this._keybindingService),inputBoxStyles:fy,toggleStyles:py,history:h==="workspace"?this._findWidgetSearchHistory:new Set([])},this._contextKeyService)),this._findInput.setRegex(!!this._state.isRegex),this._findInput.setCaseSensitive(!!this._state.matchCase),this._findInput.setWholeWords(!!this._state.wholeWord),this._register(this._findInput.onKeyDown((T)=>{if(T.equals(3)&&!this._codeEditor.getOption(50).findOnType)this._state.change({searchString:this._findInput.getValue()},!0);this._onFindInputKeyDown(T)})),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((T)=>{if(T.equals(1026)){if(this._isReplaceVisible)this._replaceInput.focus(),T.preventDefault()}})),this._register(this._findInput.onRegexKeyDown((T)=>{if(T.equals(2)){if(this._isReplaceVisible)this._replaceInput.focusOnPreserve(),T.preventDefault()}})),this._register(this._findInput.inputBox.onDidHeightChange((T)=>{if(this._tryUpdateHeight())this._showViewZone()})),oi)this._register(this._findInput.onMouseDown((T)=>this._onFindInputMouseDown(T)));this._matchesCount=document.createElement("div"),this._matchesCount.className="matchesCount",this._updateMatchesCount();let p={groupId:"find-widget"};this._prevBtn=this._register(new Er({label:JD+this._keybindingLabelFor(_t.PreviousMatchFindAction),icon:GD,hoverLifecycleOptions:p,onTrigger:()=>{ac(this._codeEditor.getAction(_t.PreviousMatchFindAction)).run().then(void 0,X)}},this._hoverService)),this._nextBtn=this._register(new Er({label:QD+this._keybindingLabelFor(_t.NextMatchFindAction),icon:ZD,hoverLifecycleOptions:p,onTrigger:()=>{ac(this._codeEditor.getAction(_t.NextMatchFindAction)).run().then(void 0,X)}},this._hoverService));let m=document.createElement("div");m.className="find-part",m.appendChild(this._findInput.domNode);let v=document.createElement("div");v.className="find-actions",m.appendChild(v),v.appendChild(this._matchesCount),v.appendChild(this._prevBtn.domNode),v.appendChild(this._nextBtn.domNode),this._toggleSelectionFind=this._register(new kc({icon:qD,title:t2+this._keybindingLabelFor(_t.ToggleSearchScopeCommand),isChecked:!1,hoverLifecycleOptions:p,inputActiveOptionBackground:P(qh),inputActiveOptionBorder:P(fg),inputActiveOptionForeground:P(mg)})),this._register(this._toggleSelectionFind.onChange(()=>{if(this._toggleSelectionFind.checked){if(this._codeEditor.hasModel()){let T=this._codeEditor.getSelections();if(T=T.map((R)=>{if(R.endColumn===1&&R.endLineNumber>R.startLineNumber)R=R.setEndPosition(R.endLineNumber-1,this._codeEditor.getModel().getLineMaxColumn(R.endLineNumber-1));if(!R.isEmpty())return R;return null}).filter((R)=>!!R),T.length)this._state.change({searchScope:T},!0)}}else this._state.change({searchScope:null},!0)})),v.appendChild(this._toggleSelectionFind.domNode),this._closeBtn=this._register(new Er({label:n2+this._keybindingLabelFor(_t.CloseFindWidgetCommand),icon:tk,hoverLifecycleOptions:p,onTrigger:()=>{this._state.change({isRevealed:!1,searchScope:null},!1)},onKeyDown:(T)=>{if(T.equals(2)){if(this._isReplaceVisible){if(this._replaceBtn.isEnabled())this._replaceBtn.focus();else this._codeEditor.focus();T.preventDefault()}}}},this._hoverService)),this._replaceInput=this._register(new Dg(null,void 0,{label:N_,placeholder:d2,appendPreserveCaseLabel:this._keybindingLabelFor(_t.TogglePreserveCaseCommand),history:g==="workspace"?this._replaceWidgetHistory:new Set([]),flexibleHeight:!0,flexibleWidth:!0,flexibleMaxHeight:118,showHistoryHint:()=>T_(this._keybindingService),inputBoxStyles:fy,toggleStyles:py,hoverLifecycleOptions:p},this._contextKeyService,!0)),this._replaceInput.setPreserveCase(!!this._state.preserveCase),this._register(this._replaceInput.onKeyDown((T)=>this._onReplaceInputKeyDown(T))),this._register(this._replaceInput.inputBox.onDidChange(()=>{this._state.change({replaceString:this._replaceInput.inputBox.value},!1)})),this._register(this._replaceInput.inputBox.onDidHeightChange((T)=>{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((T)=>{if(T.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();T.preventDefault()}})),this._replaceBtn=this._register(new Er({label:c2+this._keybindingLabelFor(_t.ReplaceOneAction),icon:jD,hoverLifecycleOptions:p,onTrigger:()=>{this._controller.replace()},onKeyDown:(T)=>{if(T.equals(1026))this._closeBtn.focus(),T.preventDefault()}},this._hoverService)),this._replaceAllBtn=this._register(new Er({label:l2+this._keybindingLabelFor(_t.ReplaceAllAction),icon:$D,hoverLifecycleOptions:p,onTrigger:()=>{this._controller.replaceAll()}},this._hoverService));let S=document.createElement("div");S.className="replace-part",S.appendChild(this._replaceInput.domNode);let C=document.createElement("div");C.className="replace-actions",S.appendChild(C),C.appendChild(this._replaceBtn.domNode),C.appendChild(this._replaceAllBtn.domNode),this._toggleReplaceBtn=this._register(new Er({label:h2,className:"codicon toggle left",onTrigger:()=>{if(this._state.change({isReplaceRevealed:!this._isReplaceVisible},!1),this._isReplaceVisible)this._replaceInput.width=Oo(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=XD,this._domNode.role="dialog",this._domNode.style.width=`${dr}px`,this._domNode.appendChild(this._toggleReplaceBtn.domNode),this._domNode.appendChild(m),this._domNode.appendChild(this._closeBtn.domNode),this._domNode.appendChild(S),this._resizeSash=this._register(new go(this._domNode,this,{orientation:0,size:2})),this._resized=!1;let x=dr;this._register(this._resizeSash.onDidStart(()=>{x=Oo(this._domNode)})),this._register(this._resizeSash.onDidChange((T)=>{this._resized=!0;let R=x+T.startX-T.currentX;if(R<dr)return;let Z=parseFloat(p0(this._domNode).maxWidth)||0;if(R>Z)return;if(this._domNode.style.width=`${R}px`,this._isReplaceVisible)this._replaceInput.width=Oo(this._findInput.domNode);this._findInput.inputBox.layout(),this._tryUpdateHeight()})),this._register(this._resizeSash.onDidReset(()=>{let T=Oo(this._domNode);if(T<dr)return;let R=dr;if(!this._resized||T===dr){let Z=this._codeEditor.getLayoutInfo();R=Z.width-28-Z.minimap.minimapWidth-15,this._resized=!0}if(this._domNode.style.width=`${R}px`,this._isReplaceVisible)this._replaceInput.width=Oo(this._findInput.domNode);this._findInput.inputBox.layout()}))}updateAccessibilitySupport(){let u=this._codeEditor.getOption(2);this._findInput.setFocusInputOnOptionClick(u!==2),this._updateFindInputAriaLabel()}_updateFindInputAriaLabel(){let u=R_,n=N_;if(!this._accessibilityHelpHintAnnounced&&this._configurationService.getValue("accessibility.verbosity.find")&&this._accessibilityService.isScreenReaderOptimized()){let h=this._keybindingService.lookupKeybinding("editor.action.accessibilityHelp")?.getAriaLabel();if(h){let g=e(1037,"Press {0} for accessibility help",h);u=e(1038,"{0}, {1}",u,g),n=e(1039,"{0}, {1}",n,g)}this._accessibilityHelpHintAnnounced=!0,this._labelResetTimeout?.dispose(),this._labelResetTimeout=fi(()=>{if(this._isVisible)this._findInput.inputBox.setAriaLabel(R_),this._replaceInput.inputBox.setAriaLabel(N_)},1000)}this._findInput.inputBox.setAriaLabel(u),this._replaceInput.inputBox.setAriaLabel(n)}getViewState(){let u=!1;if(this._viewZone&&this._viewZoneId)u=this._viewZone.heightInPx>this._codeEditor.getScrollTop();return{widgetViewZoneVisible:u,scrollTop:this._codeEditor.getScrollTop()}}setViewState(u){if(!u)return;if(u.widgetViewZoneVisible)this._layoutViewZone(u.scrollTop)}}class Er extends Ei{constructor(u,n){super();this._opts=u;let h="button";if(this._opts.className)h=h+" "+this._opts.className;if(this._opts.icon)h=h+" "+J.asClassName(this._opts.icon);this._domNode=document.createElement("div"),this._domNode.tabIndex=0,this._domNode.className=h,this._domNode.setAttribute("role","button"),this._domNode.setAttribute("aria-label",this._opts.label),this._register(n.setupDelayedHover(this._domNode,{content:this._opts.label,style:1},u.hoverLifecycleOptions)),this.onclick(this._domNode,(g)=>{this._opts.onTrigger(),g.preventDefault()}),this.onkeydown(this._domNode,(g)=>{if(g.equals(10)||g.equals(3)){this._opts.onTrigger(),g.preventDefault();return}this._opts.onKeyDown?.(g)})}get domNode(){return this._domNode}isEnabled(){return this._domNode.tabIndex>=0}focus(){this._domNode.focus()}setEnabled(u){this._domNode.classList.toggle("disabled",!u),this._domNode.setAttribute("aria-disabled",String(!u)),this._domNode.tabIndex=u?0:-1}setExpanded(u){if(this._domNode.setAttribute("aria-expanded",String(!!u)),u)this._domNode.classList.remove(...J.asClassNameArray(Sy)),this._domNode.classList.add(...J.asClassNameArray(Cy));else this._domNode.classList.remove(...J.asClassNameArray(Cy)),this._domNode.classList.add(...J.asClassNameArray(Sy))}}Li((u,n)=>{let h=u.getColor(bc);if(h)n.addRule(`.monaco-editor .findMatch { border: 1px ${br(u.type)?"dotted":"solid"} ${h}; box-sizing: border-box; }`);let g=u.getColor(PM);if(g)n.addRule(`.monaco-editor .findScope { border: 1px ${br(u.type)?"dashed":"solid"} ${g}; }`);let p=u.getColor(je);if(p)n.addRule(`.monaco-editor .find-widget { border: 1px solid ${p}; }`);let m=u.getColor(OM);if(m)n.addRule(`.monaco-editor .findMatchInline { color: ${m}; }`);let v=u.getColor(MM);if(v)n.addRule(`.monaco-editor .currentFindMatchInline { color: ${v}; }`)});class Og extends Ei{static{this.ID="editor.contrib.findOptionsWidget"}constructor(u,n,h){super();this._hideSoon=this._register(new Ce(()=>this._hide(),2000)),this._isVisible=!1,this._editor=u,this._state=n,this._keybindingService=h,this._domNode=document.createElement("div"),this._domNode.className="findOptionsWidget",this._domNode.style.display="none",this._domNode.style.top="10px",this._domNode.style.zIndex="12",this._domNode.setAttribute("role","presentation"),this._domNode.setAttribute("aria-hidden","true");let g={inputActiveOptionBorder:P(fg),inputActiveOptionForeground:P(mg),inputActiveOptionBackground:P(qh)},p={groupId:"find-options-widget"};this.caseSensitive=this._register(new H0({appendTitle:this._keybindingLabelFor(_t.ToggleCaseSensitiveCommand),isChecked:this._state.matchCase,hoverLifecycleOptions:p,...g})),this._domNode.appendChild(this.caseSensitive.domNode),this._register(this.caseSensitive.onChange(()=>{this._state.change({matchCase:this.caseSensitive.checked},!1)})),this.wholeWords=this._register(new B0({appendTitle:this._keybindingLabelFor(_t.ToggleWholeWordCommand),isChecked:this._state.wholeWord,hoverLifecycleOptions:p,...g})),this._domNode.appendChild(this.wholeWords.domNode),this._register(this.wholeWords.onChange(()=>{this._state.change({wholeWord:this.wholeWords.checked},!1)})),this.regex=this._register(new z0({appendTitle:this._keybindingLabelFor(_t.ToggleRegexCommand),isChecked:this._state.isRegex,hoverLifecycleOptions:p,...g})),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((m)=>{let v=!1;if(m.isRegex)this.regex.checked=this._state.isRegex,v=!0;if(m.wholeWord)this.wholeWords.checked=this._state.wholeWord,v=!0;if(m.matchCase)this.caseSensitive.checked=this._state.matchCase,v=!0;if(!this._state.isRevealed&&v)this._revealTemporarily()})),this._register(c(this._domNode,E.MOUSE_LEAVE,(m)=>this._onMouseLeave())),this._register(c(this._domNode,"mouseover",(m)=>this._onMouseOver()))}_keybindingLabelFor(u){return this._keybindingService.appendKeybinding("",u)}dispose(){this._editor.removeOverlayWidget(this),super.dispose()}getId(){return Og.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 Pg(u,n){if(u===1)return!0;if(u===2)return!1;return n}class M_ extends i{get searchString(){return this._searchString}get replaceString(){return this._replaceString}get isRevealed(){return this._isRevealed}get isReplaceRevealed(){return this._isReplaceRevealed}get isRegex(){return Pg(this._isRegexOverride,this._isRegex)}get wholeWord(){return Pg(this._wholeWordOverride,this._wholeWord)}get matchCase(){return Pg(this._matchCaseOverride,this._matchCase)}get preserveCase(){return Pg(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 o),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(u,n,h){let g={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},p=!1;if(n===0)u=0;if(u>n)u=n;if(this._matchesPosition!==u)this._matchesPosition=u,g.matchesPosition=!0,p=!0;if(this._matchesCount!==n)this._matchesCount=n,g.matchesCount=!0,p=!0;if(typeof h<"u"){if(!t.equalsRange(this._currentMatch,h))this._currentMatch=h,g.currentMatch=!0,p=!0}if(p)this._onFindReplaceStateChange.fire(g)}change(u,n,h=!0){let g={moveCursor:n,updateHistory:h,searchString:!1,replaceString:!1,isRevealed:!1,isReplaceRevealed:!1,isRegex:!1,wholeWord:!1,matchCase:!1,preserveCase:!1,searchScope:!1,matchesPosition:!1,matchesCount:!1,currentMatch:!1,loop:!1,isSearching:!1,filters:!1},p=!1,m=this.isRegex,v=this.wholeWord,S=this.matchCase,C=this.preserveCase;if(typeof u.searchString<"u"){if(this._searchString!==u.searchString)this._searchString=u.searchString,g.searchString=!0,p=!0}if(typeof u.replaceString<"u"){if(this._replaceString!==u.replaceString)this._replaceString=u.replaceString,g.replaceString=!0,p=!0}if(typeof u.isRevealed<"u"){if(this._isRevealed!==u.isRevealed)this._isRevealed=u.isRevealed,g.isRevealed=!0,p=!0}if(typeof u.isReplaceRevealed<"u"){if(this._isReplaceRevealed!==u.isReplaceRevealed)this._isReplaceRevealed=u.isReplaceRevealed,g.isReplaceRevealed=!0,p=!0}if(typeof u.isRegex<"u")this._isRegex=u.isRegex;if(typeof u.wholeWord<"u")this._wholeWord=u.wholeWord;if(typeof u.matchCase<"u")this._matchCase=u.matchCase;if(typeof u.preserveCase<"u")this._preserveCase=u.preserveCase;if(typeof u.searchScope<"u"){if(!u.searchScope?.every((x)=>this._searchScope?.some((T)=>!t.equalsRange(T,x))))this._searchScope=u.searchScope,g.searchScope=!0,p=!0}if(typeof u.loop<"u"){if(this._loop!==u.loop)this._loop=u.loop,g.loop=!0,p=!0}if(typeof u.isSearching<"u"){if(this._isSearching!==u.isSearching)this._isSearching=u.isSearching,g.isSearching=!0,p=!0}if(typeof u.filters<"u"){if(this._filters)this._filters.update(u.filters);else this._filters=u.filters;g.filters=!0,p=!0}if(this._isRegexOverride=typeof u.isRegexOverride<"u"?u.isRegexOverride:0,this._wholeWordOverride=typeof u.wholeWordOverride<"u"?u.wholeWordOverride:0,this._matchCaseOverride=typeof u.matchCaseOverride<"u"?u.matchCaseOverride:0,this._preserveCaseOverride=typeof u.preserveCaseOverride<"u"?u.preserveCaseOverride:0,m!==this.isRegex)p=!0,g.isRegex=!0;if(v!==this.wholeWord)p=!0,g.wholeWord=!0;if(S!==this.matchCase)p=!0,g.matchCase=!0;if(C!==this.preserveCase)p=!0,g.preserveCase=!0;if(p)this._onFindReplaceStateChange.fire(g)}canNavigateBack(){return this.canNavigateInLoop()||this.matchesPosition!==1}canNavigateForward(){return this.canNavigateInLoop()||this.matchesPosition<this.matchesCount}canNavigateInLoop(){return this._loop||this.matchesCount>=sr}}var _2=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},b2=function(u,n){return function(h,g){n(h,g,u)}},Ls,Ag=class u{static{Ls=this}static{this.FIND_HISTORY_KEY="workbench.find.history"}static{this._instance=null}static getOrCreate(n){if(!Ls._instance)Ls._instance=new Ls(n);return Ls._instance}constructor(n){this.storageService=n,this.inMemoryValues=new Set,this._onDidChangeEmitter=new o,this.onDidChange=this._onDidChangeEmitter.event,this.load()}delete(n){let h=this.inMemoryValues.delete(n);return this.save(),h}add(n){return this.inMemoryValues.add(n),this.save(),this}has(n){return this.inMemoryValues.has(n)}forEach(n,h){return this.load(),this.inMemoryValues.forEach(n)}replace(n){this.inMemoryValues=new Set(n),this.save()}load(){let n,h=this.storageService.get(Ls.FIND_HISTORY_KEY,1);if(h)try{n=JSON.parse(h)}catch(g){}this.inMemoryValues=new Set(n||[])}save(){let n=[];return this.inMemoryValues.forEach((h)=>n.push(h)),new Promise((h)=>{this.storageService.store(Ls.FIND_HISTORY_KEY,JSON.stringify(n),1,0),this._onDidChangeEmitter.fire(n),h()})}};Ag=Ls=_2([b2(0,Pn)],Ag);var v2=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},w2=function(u,n){return function(h,g){n(h,g,u)}},ks,Fg=class u{static{ks=this}static{this.FIND_HISTORY_KEY="workbench.replace.history"}static{this._instance=null}static getOrCreate(n){if(!ks._instance)ks._instance=new ks(n);return ks._instance}constructor(n){this.storageService=n,this.inMemoryValues=new Set,this._onDidChangeEmitter=new o,this.onDidChange=this._onDidChangeEmitter.event,this.load()}delete(n){let h=this.inMemoryValues.delete(n);return this.save(),h}add(n){return this.inMemoryValues.add(n),this.save(),this}has(n){return this.inMemoryValues.has(n)}forEach(n,h){return this.load(),this.inMemoryValues.forEach(n)}replace(n){this.inMemoryValues=new Set(n),this.save()}load(){let n,h=this.storageService.get(ks.FIND_HISTORY_KEY,1);if(h)try{n=JSON.parse(h)}catch(g){}this.inMemoryValues=new Set(n||[])}save(){let n=[];return this.inMemoryValues.forEach((h)=>n.push(h)),new Promise((h)=>{this.storageService.store(ks.FIND_HISTORY_KEY,JSON.stringify(n),1,0),this._onDidChangeEmitter.fire(n),h()})}};Fg=ks=v2([w2(0,Pn)],Fg);var Ey=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},bo=function(u,n){return function(h,g){n(h,g,u)}},O_,S2=524288;function P_(u,n="single",h=!1){if(!u.hasModel())return null;let g=u.getSelection();if(n==="single"&&g.startLineNumber===g.endLineNumber||n==="multiple"){if(g.isEmpty()){let p=u.getConfiguredWordAtPosition(g.getStartPosition());if(p&&h===!1)return p.word}else if(u.getModel().getValueLengthInRange(g)<S2)return u.getModel().getValueInRange(g)}return null}var Ri=class u extends i{static{O_=this}static{this.ID="editor.contrib.findController"}get editor(){return this._editor}static get(n){return n.getContribution(O_.ID)}constructor(n,h,g,p,m,v){super();this._editor=n,this._findWidgetVisible=ar.bindTo(h),this._contextKeyService=h,this._storageService=g,this._clipboardService=p,this._notificationService=m,this._hoverService=v,this._updateHistoryDelayer=this._register(new qi(500)),this._state=this._register(new M_),this.loadQueryState(),this._register(this._state.onFindReplaceStateChange((S)=>this._onStateChanged(S))),this._model=null,this._register(this._editor.onDidChangeModel(()=>{let S=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),S)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(n){if(this.saveQueryState(n),n.isRevealed)if(this._state.isRevealed)this._findWidgetVisible.set(!0);else this._findWidgetVisible.reset(),this.disposeModel();if(n.searchString)this.setGlobalBufferTerm(this._state.searchString)}saveQueryState(n){if(n.isRegex)this._storageService.store("editor.isRegex",this._state.actualIsRegex,1,1);if(n.wholeWord)this._storageService.store("editor.wholeWord",this._state.actualWholeWord,1,1);if(n.matchCase)this._storageService.store("editor.matchCase",this._state.actualMatchCase,1,1);if(n.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!!qd.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 n=this._editor.getSelections();if(n=n.map((h)=>{if(h.endColumn===1&&h.endLineNumber>h.startLineNumber)h=h.setEndPosition(h.endLineNumber-1,this._editor.getModel().getLineMaxColumn(h.endLineNumber-1));if(!h.isEmpty())return h;return null}).filter((h)=>!!h),n.length)this._state.change({searchScope:n},!0)}}setSearchString(n){if(this._state.isRegex)n=Ui(n);this._state.change({searchString:n},!1)}highlightFindOptions(n=!1){}async _start(n,h){if(this.disposeModel(),!this._editor.hasModel())return;let g={...h,isRevealed:!0};if(n.seedSearchStringFromSelection==="single"){let p=P_(this._editor,n.seedSearchStringFromSelection,n.seedSearchStringFromNonEmptySelection);if(p)if(this._state.isRegex)g.searchString=Ui(p);else g.searchString=p}else if(n.seedSearchStringFromSelection==="multiple"&&!n.updateSearchScope){let p=P_(this._editor,n.seedSearchStringFromSelection);if(p)g.searchString=p}if(!g.searchString&&n.seedSearchStringFromGlobalClipboard){let p=await this.getGlobalBufferTerm();if(!this._editor.hasModel())return;if(p)g.searchString=p}if(n.forceRevealReplace||g.isReplaceRevealed)g.isReplaceRevealed=!0;else if(!this._findWidgetVisible.get())g.isReplaceRevealed=!1;if(n.updateSearchScope){let p=this._editor.getSelections();if(p.some((m)=>!m.isEmpty()))g.searchScope=p}if(g.loop=n.loop,this._state.change(g,!1),!this._model)this._model=new Ud(this._editor,this._state)}start(n,h){return this._start(n,h)}moveToNextMatch(){if(this._model)return this._model.moveToNextMatch(),!0;return!1}moveToPrevMatch(){if(this._model)return this._model.moveToPrevMatch(),!0;return!1}goToMatch(n){if(this._model)return this._model.moveToMatch(n),!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(n){if(this._editor.getOption(50).globalFindClipboard&&this._editor.hasModel()&&!this._editor.getModel().isTooLargeForSyncing())this._clipboardService.writeFindText(n)}};Ri=O_=Ey([bo(1,G),bo(2,Pn),bo(3,bi),bo(4,wt),bo(5,On)],Ri);var A_=class u extends Ri{constructor(n,h,g,p,m,v,S,C,x,T){super(n,g,v,S,m,C);this._contextViewService=h,this._keybindingService=p,this._configurationService=x,this._accessibilityService=T,this._widget=null,this._findOptionsWidget=null,this._findWidgetSearchHistory=Ag.getOrCreate(v),this._replaceWidgetHistory=Fg.getOrCreate(v)}async _start(n,h){if(!this._widget)this._createFindWidget();let g=this._editor.getSelection(),p=!1;switch(this._editor.getOption(50).autoFindInSelection){case"always":p=!0;break;case"never":p=!1;break;case"multiline":{p=!!g&&g.startLineNumber!==g.endLineNumber;break}}if(n.updateSearchScope=n.updateSearchScope||p,await super._start(n,h),this._widget){if(n.shouldFocus===2)this._widget.focusReplaceInput();else if(n.shouldFocus===1)this._widget.focusFindInput()}}highlightFindOptions(n=!1){if(!this._widget)this._createFindWidget();if(this._state.isRevealed&&!n)this._widget.highlightFindOptions();else this._findOptionsWidget.highlightFindOptions()}_createFindWidget(){this._widget=this._register(new ad(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 Og(this._editor,this._state,this._keybindingService))}saveViewState(){return this._widget?.getViewState()}restoreViewState(n){this._widget?.setViewState(n)}};A_=Ey([bo(1,xs),bo(2,G),bo(3,me),bo(4,wt),bo(5,Pn),bo(6,bi),bo(7,On),bo(8,re),bo(9,sn)],A_);var C2=m0(new Kv({id:_t.StartFindAction,label:b(1002,"Find"),precondition:L.or(r.focus,L.has("editorIsOpen")),kbOpts:{kbExpr:null,primary:2084,weight:100},menuOpts:{menuId:l.MenubarEditMenu,group:"3_find",title:e(995,"&&Find"),order:1}}));C2.addImplementation(0,(u,n,h)=>{let g=Ri.get(n);if(!g)return!1;return g.start({forceRevealReplace:!1,seedSearchStringFromSelection:n.getOption(50).seedSearchStringFromSelection!=="never"?"single":"none",seedSearchStringFromNonEmptySelection:n.getOption(50).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:n.getOption(50).globalFindClipboard,shouldFocus:1,shouldAnimate:!0,updateSearchScope:!1,loop:n.getOption(50).loop})});var y2={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 Dy extends U{constructor(){super({id:_t.StartFindWithArgs,label:b(1003,"Find with Arguments"),precondition:void 0,kbOpts:{kbExpr:null,primary:0,weight:100},metadata:y2})}async run(u,n,h){let g=Ri.get(n);if(g){let p=h?{searchString:h.searchString,replaceString:h.replaceString,isReplaceRevealed:h.replaceString!==void 0,isRegex:h.isRegex,wholeWord:h.matchWholeWord,matchCase:h.isCaseSensitive,preserveCase:h.preserveCase}:{};await g.start({forceRevealReplace:!1,seedSearchStringFromSelection:g.getState().searchString.length===0&&n.getOption(50).seedSearchStringFromSelection!=="never"?"single":"none",seedSearchStringFromNonEmptySelection:n.getOption(50).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:!0,shouldFocus:1,shouldAnimate:!0,updateSearchScope:h?.findInSelection||!1,loop:n.getOption(50).loop},p),g.setGlobalBufferTerm(g.getState().searchString)}}}class Ty extends U{constructor(){super({id:_t.StartFindWithSelection,label:b(1004,"Find with Selection"),precondition:void 0,kbOpts:{kbExpr:null,primary:0,mac:{primary:2083},weight:100}})}async run(u,n){let h=Ri.get(n);if(h)await h.start({forceRevealReplace:!1,seedSearchStringFromSelection:"multiple",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:n.getOption(50).loop}),h.setGlobalBufferTerm(h.getState().searchString)}}async function Ry(u,n){let h=Ri.get(u);if(!h)return;let g=u.getOption(50).closeOnResult,p=h.getState().isRevealed,m=()=>{let v=h.editor.getSelection(),S=n?h.moveToNextMatch():h.moveToPrevMatch(),C=!1;if(S){let x=h.editor.getSelection();if(!v&&x)C=!0;else if(v&&x&&!v.equalsSelection(x))C=!0}if(C){if(h.editor.pushUndoStop(),g&&p&&h.isFindInputFocused())h.closeFindWidget();return!0}return!1};if(!m()){if(await h.start({forceRevealReplace:!1,seedSearchStringFromSelection:h.getState().searchString.length===0&&u.getOption(50).seedSearchStringFromSelection!=="never"?"single":"none",seedSearchStringFromNonEmptySelection:u.getOption(50).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:!0,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:u.getOption(50).loop}),!m()){let v=h.getState();if(p&&v.matchesCount===0&&v.searchString)zn(e(996,"{0} found for '{1}'",Mg,v.searchString))}}}var x2=m0(new Kv({id:_t.NextMatchFindAction,label:b(1005,"Find Next"),precondition:void 0,kbOpts:[{kbExpr:r.focus,primary:61,mac:{primary:2085,secondary:[61]},weight:100},{kbExpr:L.and(r.focus,qd),primary:3,weight:100}]}));x2.addImplementation(0,async(u,n,h)=>Ry(n,!0));var I2=m0(new Kv({id:_t.PreviousMatchFindAction,label:b(1006,"Find Previous"),precondition:void 0,kbOpts:[{kbExpr:r.focus,primary:1085,mac:{primary:3109,secondary:[1085]},weight:100},{kbExpr:L.and(r.focus,qd),primary:1027,weight:100}]}));I2.addImplementation(0,async(u,n,h)=>Ry(n,!1));class Ny extends U{constructor(){super({id:_t.GoToMatchFindAction,label:b(1007,"Go to Match..."),precondition:ar});this._highlightDecorations=[]}run(u,n){let h=Ri.get(n);if(!h)return;let g=h.getState().matchesCount;if(g<1){u.get(wt).notify({severity:wc.Warning,message:e(997,"No matches. Try searching for something else.")});return}let p=u.get(En),m=new d,v=m.add(p.createInputBox());v.placeholder=e(998,"Type a number to go to a specific match (between 1 and {0})",g);let S=(x)=>{let T=parseInt(x);if(isNaN(T))return;let R=h.getState().matchesCount;if(T>0&&T<=R)return T-1;else if(T<0&&T>=-R)return R+T;return},C=(x)=>{let T=S(x);if(typeof T==="number"){v.validationMessage=void 0,h.goToMatch(T);let R=h.getState().currentMatch;if(R)this.addDecorations(n,R)}else v.validationMessage=e(999,"Please type a number between 1 and {0}",h.getState().matchesCount),this.clearDecorations(n)};m.add(v.onDidChangeValue((x)=>{C(x)})),m.add(v.onDidAccept(()=>{let x=S(v.value);if(typeof x==="number")h.goToMatch(x),v.hide();else v.validationMessage=e(1000,"Please type a number between 1 and {0}",h.getState().matchesCount)})),m.add(v.onDidHide(()=>{this.clearDecorations(n),m.dispose()})),v.show()}clearDecorations(u){u.changeDecorations((n)=>{this._highlightDecorations=n.deltaDecorations(this._highlightDecorations,[])})}addDecorations(u,n){u.changeDecorations((h)=>{this._highlightDecorations=h.deltaDecorations(this._highlightDecorations,[{range:n,options:{description:"find-match-quick-access-range-highlight",className:"rangeHighlight",isWholeLine:!0}},{range:n,options:{description:"find-match-quick-access-range-highlight-overview",overviewRuler:{color:bn(E1),position:Xo.Full}}}])})}}class F_ extends U{async run(u,n){let h=Ri.get(n);if(!h)return;let g=P_(n,"single",!1);if(g)h.setSearchString(g);if(!this._run(h))await h.start({forceRevealReplace:!1,seedSearchStringFromSelection:"none",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:n.getOption(50).loop}),this._run(h)}}class My extends F_{constructor(){super({id:_t.NextSelectionMatchFindAction,label:b(1008,"Find Next Selection"),precondition:void 0,kbOpts:{kbExpr:r.focus,primary:2109,weight:100}})}_run(u){return u.moveToNextMatch()}}class Oy extends F_{constructor(){super({id:_t.PreviousSelectionMatchFindAction,label:b(1009,"Find Previous Selection"),precondition:void 0,kbOpts:{kbExpr:r.focus,primary:3133,weight:100}})}_run(u){return u.moveToPrevMatch()}}var L2=m0(new Kv({id:_t.StartFindReplaceAction,label:b(1010,"Replace"),precondition:L.or(r.focus,L.has("editorIsOpen")),kbOpts:{kbExpr:null,primary:2086,mac:{primary:2596},weight:100},menuOpts:{menuId:l.MenubarEditMenu,group:"3_find",title:e(1001,"&&Replace"),order:2}}));L2.addImplementation(0,(u,n,h)=>{if(!n.hasModel()||n.getOption(104))return!1;let g=Ri.get(n);if(!g)return!1;let p=n.getSelection(),m=g.isFindInputFocused(),v=!p.isEmpty()&&p.startLineNumber===p.endLineNumber&&n.getOption(50).seedSearchStringFromSelection!=="never"&&!m,S=m||v?2:1;return g.start({forceRevealReplace:!0,seedSearchStringFromSelection:v?"single":"none",seedSearchStringFromNonEmptySelection:n.getOption(50).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:n.getOption(50).seedSearchStringFromSelection!=="never",shouldFocus:S,shouldAnimate:!0,updateSearchScope:!1,loop:n.getOption(50).loop})});fe(Ri.ID,A_,0);O(Dy);O(Ty);O(Ny);O(My);O(Oy);var Fn=nn.bindToContribution(Ri.get);K(new Fn({id:_t.CloseFindWidgetCommand,precondition:ar,handler:(u)=>u.closeFindWidget(),kbOpts:{weight:105,kbExpr:r.focus,primary:9,secondary:[1033]}}));K(new Fn({id:_t.ToggleCaseSensitiveCommand,precondition:void 0,handler:(u)=>u.toggleCaseSensitive(),kbOpts:{weight:105,kbExpr:r.focus,primary:Dl.primary,mac:Dl.mac,win:Dl.win,linux:Dl.linux}}));K(new Fn({id:_t.ToggleWholeWordCommand,precondition:void 0,handler:(u)=>u.toggleWholeWords(),kbOpts:{weight:105,kbExpr:r.focus,primary:Rl.primary,mac:Rl.mac,win:Rl.win,linux:Rl.linux}}));K(new Fn({id:_t.ToggleRegexCommand,precondition:void 0,handler:(u)=>u.toggleRegex(),kbOpts:{weight:105,kbExpr:r.focus,primary:Nl.primary,mac:Nl.mac,win:Nl.win,linux:Nl.linux}}));K(new Fn({id:_t.ToggleSearchScopeCommand,precondition:void 0,handler:(u)=>u.toggleSearchScope(),kbOpts:{weight:105,kbExpr:r.focus,primary:Ml.primary,mac:Ml.mac,win:Ml.win,linux:Ml.linux}}));K(new Fn({id:_t.TogglePreserveCaseCommand,precondition:void 0,handler:(u)=>u.togglePreserveCase(),kbOpts:{weight:105,kbExpr:r.focus,primary:Ol.primary,mac:Ol.mac,win:Ol.win,linux:Ol.linux}}));K(new Fn({id:_t.ReplaceOneAction,precondition:ar,handler:(u)=>u.replace(),kbOpts:{weight:105,kbExpr:r.focus,primary:3094}}));K(new Fn({id:_t.ReplaceOneAction,precondition:ar,handler:(u)=>u.replace(),kbOpts:{weight:105,kbExpr:L.and(r.focus,pl),primary:3}}));K(new Fn({id:_t.ReplaceAllAction,precondition:ar,handler:(u)=>u.replaceAll(),kbOpts:{weight:105,kbExpr:r.focus,primary:2563}}));K(new Fn({id:_t.ReplaceAllAction,precondition:ar,handler:(u)=>u.replaceAll(),kbOpts:{weight:105,kbExpr:L.and(r.focus,pl),primary:void 0,mac:{primary:2051}}}));K(new Fn({id:_t.SelectAllMatchesAction,precondition:ar,handler:(u)=>u.selectAllMatches(),kbOpts:{weight:105,kbExpr:r.focus,primary:515}}));var k2=a("editor.wordHighlightBackground",{dark:"#575757B8",light:"#57575740",hcDark:null,hcLight:null},e(1637,"Background color of a symbol during read-access, like reading a variable. The color must not be opaque so as not to hide underlying decorations."),!0);a("editor.wordHighlightStrongBackground",{dark:"#004972B8",light:"#0e639c40",hcDark:null,hcLight:null},e(1638,"Background color of a symbol during write-access, like writing to a variable. The color must not be opaque so as not to hide underlying decorations."),!0);a("editor.wordHighlightTextBackground",k2,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 E2=a("editor.wordHighlightBorder",{light:null,dark:null,hcDark:Zt,hcLight:Zt},e(1640,"Border color of a symbol during read-access, like reading a variable."));a("editor.wordHighlightStrongBorder",{light:null,dark:null,hcDark:Zt,hcLight:Zt},e(1641,"Border color of a symbol during write-access, like writing to a variable."));a("editor.wordHighlightTextBorder",E2,e(1642,"Border color of a textual occurrence for a symbol."));var D2=a("editorOverviewRuler.wordHighlightForeground","#A0A0A0CC",e(1643,"Overview ruler marker color for symbol highlights. The color must not be opaque so as not to hide underlying decorations."),!0),T2=a("editorOverviewRuler.wordHighlightStrongForeground","#C0A0C0CC",e(1644,"Overview ruler marker color for write-access symbol highlights. The color must not be opaque so as not to hide underlying decorations."),!0),R2=a("editorOverviewRuler.wordHighlightTextForeground",II,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),N2=de.register({description:"word-highlight-strong",stickiness:1,className:"wordHighlightStrong",overviewRuler:{color:bn(T2),position:Xo.Center},minimap:{color:bn(x0),position:1}}),M2=de.register({description:"word-highlight-text",stickiness:1,className:"wordHighlightText",overviewRuler:{color:bn(R2),position:Xo.Center},minimap:{color:bn(x0),position:1}}),O2=de.register({description:"selection-highlight-overview",stickiness:1,className:"selectionHighlight",overviewRuler:{color:bn(II),position:Xo.Center},minimap:{color:bn(x0),position:1}}),P2=de.register({description:"selection-highlight",stickiness:1,className:"selectionHighlight"}),A2=de.register({description:"word-highlight",stickiness:1,className:"wordHighlight",overviewRuler:{color:bn(D2),position:Xo.Center},minimap:{color:bn(x0),position:1}});function sM(u){if(u===Fh.Write)return N2;else if(u===Fh.Text)return M2;else return A2}function Py(u){return u?P2:O2}Li((u,n)=>{let h=u.getColor(hg);if(h)n.addRule(`.monaco-editor .selectionHighlight { background-color: ${h.transparent(0.5)}; }`)});var F2=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},H2=function(u,n){return function(h,g){n(h,g,u)}},H_;function Es(u,n){let h=n.filter((g)=>!u.find((p)=>p.equals(g)));if(h.length>=1){let g=h.map((m)=>`line ${m.viewState.position.lineNumber} column ${m.viewState.position.column}`).join(", "),p=h.length===1?e(1354,"Cursor added: {0}",g):e(1355,"Cursors added: {0}",g);Ho(p)}}class Fy extends U{constructor(){super({id:"editor.action.insertCursorAbove",label:b(1364,"Add Cursor Above"),precondition:void 0,kbOpts:{kbExpr:r.editorTextFocus,primary:2576,linux:{primary:1552,secondary:[3088]},weight:100},menuOpts:{menuId:l.MenubarSelectionMenu,group:"3_multi",title:e(1356,"&&Add Cursor Above"),order:2}})}run(u,n,h){if(!n.hasModel())return;let g=!0;if(h&&h.logicalLine===!1)g=!1;let p=n._getViewModel();if(p.cursorConfig.readOnly)return;p.model.pushStackElement();let m=p.getCursorStates();p.setCursorStates(h.source,3,Fi.addCursorUp(p,m,g)),p.revealTopMostCursor(h.source),Es(m,p.getCursorStates())}}class Hy extends U{constructor(){super({id:"editor.action.insertCursorBelow",label:b(1365,"Add Cursor Below"),precondition:void 0,kbOpts:{kbExpr:r.editorTextFocus,primary:2578,linux:{primary:1554,secondary:[3090]},weight:100},menuOpts:{menuId:l.MenubarSelectionMenu,group:"3_multi",title:e(1357,"A&&dd Cursor Below"),order:3}})}run(u,n,h){if(!n.hasModel())return;let g=!0;if(h&&h.logicalLine===!1)g=!1;let p=n._getViewModel();if(p.cursorConfig.readOnly)return;p.model.pushStackElement();let m=p.getCursorStates();p.setCursorStates(h.source,3,Fi.addCursorDown(p,m,g)),p.revealBottomMostCursor(h.source),Es(m,p.getCursorStates())}}class Wy extends U{constructor(){super({id:"editor.action.insertCursorAtEndOfEachLineSelected",label:b(1366,"Add Cursors to Line Ends"),precondition:void 0,kbOpts:{kbExpr:r.editorTextFocus,primary:1575,weight:100},menuOpts:{menuId:l.MenubarSelectionMenu,group:"3_multi",title:e(1358,"Add C&&ursors to Line Ends"),order:4}})}getCursorsForSelection(u,n,h){if(u.isEmpty())return;for(let g=u.startLineNumber;g<u.endLineNumber;g++){let p=n.getLineMaxColumn(g);h.push(new F(g,p,g,p))}if(u.endColumn>1)h.push(new F(u.endLineNumber,u.endColumn,u.endLineNumber,u.endColumn))}run(u,n){if(!n.hasModel())return;let h=n.getModel(),g=n.getSelections(),p=n._getViewModel(),m=p.getCursorStates(),v=[];if(g.forEach((S)=>this.getCursorsForSelection(S,h,v)),v.length>0)n.setSelections(v);Es(m,p.getCursorStates())}}class By extends U{constructor(){super({id:"editor.action.addCursorsToBottom",label:b(1367,"Add Cursors to Bottom"),precondition:void 0})}run(u,n){if(!n.hasModel())return;let h=n.getSelections(),g=n.getModel().getLineCount(),p=[];for(let S=h[0].startLineNumber;S<=g;S++)p.push(new F(S,h[0].startColumn,S,h[0].endColumn));let m=n._getViewModel(),v=m.getCursorStates();if(p.length>0)n.setSelections(p);Es(v,m.getCursorStates())}}class Vy extends U{constructor(){super({id:"editor.action.addCursorsToTop",label:b(1368,"Add Cursors to Top"),precondition:void 0})}run(u,n){if(!n.hasModel())return;let h=n.getSelections(),g=[];for(let v=h[0].startLineNumber;v>=1;v--)g.push(new F(v,h[0].startColumn,v,h[0].endColumn));let p=n._getViewModel(),m=p.getCursorStates();if(g.length>0)n.setSelections(g);Es(m,p.getCursorStates())}}class Fl{constructor(u,n,h){this.selections=u,this.revealRange=n,this.revealScrollType=h}}class Hl{static create(u,n){if(!u.hasModel())return null;let h=n.getState();if(!u.hasTextFocus()&&h.isRevealed&&h.searchString.length>0)return new Hl(u,n,!1,h.searchString,h.wholeWord,h.matchCase,null);let g=!1,p,m,v=u.getSelections();if(v.length===1&&v[0].isEmpty())g=!0,p=!0,m=!0;else p=h.wholeWord,m=h.matchCase;let S=u.getSelection(),C,x=null;if(S.isEmpty()){let T=u.getConfiguredWordAtPosition(S.getStartPosition());if(!T)return null;C=T.word,x=new F(S.startLineNumber,T.startColumn,S.startLineNumber,T.endColumn)}else C=u.getModel().getValueInRange(S).replace(/\r\n/g,`
|
|
21
|
+
`);return new Hl(u,n,g,C,p,m,x)}constructor(u,n,h,g,p,m,v){this._editor=u,this.findController=n,this.isDisconnectedFromFindController=h,this.searchText=g,this.wholeWord=p,this.matchCase=m,this.currentMatch=v}addSelectionToNextFindMatch(){if(!this._editor.hasModel())return null;let u=this._getNextMatch();if(!u)return null;let n=this._editor.getSelections();return new Fl(n.concat(u),u,0)}moveSelectionToNextFindMatch(){if(!this._editor.hasModel())return null;let u=this._getNextMatch();if(!u)return null;let n=this._editor.getSelections();return new Fl(n.slice(0,n.length-1).concat(u),u,0)}_getNextMatch(){if(!this._editor.hasModel())return null;if(this.currentMatch){let g=this.currentMatch;return this.currentMatch=null,g}this.findController.highlightFindOptions();let u=this._editor.getSelections(),n=u[u.length-1],h=this._editor.getModel().findNextMatch(this.searchText,n.getEndPosition(),!1,this.matchCase,this.wholeWord?this._editor.getOption(148):null,!1);if(!h)return null;return new F(h.range.startLineNumber,h.range.startColumn,h.range.endLineNumber,h.range.endColumn)}addSelectionToPreviousFindMatch(){if(!this._editor.hasModel())return null;let u=this._getPreviousMatch();if(!u)return null;let n=this._editor.getSelections();return new Fl(n.concat(u),u,0)}moveSelectionToPreviousFindMatch(){if(!this._editor.hasModel())return null;let u=this._getPreviousMatch();if(!u)return null;let n=this._editor.getSelections();return new Fl(n.slice(0,n.length-1).concat(u),u,0)}_getPreviousMatch(){if(!this._editor.hasModel())return null;if(this.currentMatch){let g=this.currentMatch;return this.currentMatch=null,g}this.findController.highlightFindOptions();let u=this._editor.getSelections(),n=u[u.length-1],h=this._editor.getModel().findPreviousMatch(this.searchText,n.getStartPosition(),!1,this.matchCase,this.wholeWord?this._editor.getOption(148):null,!1);if(!h)return null;return new F(h.range.startLineNumber,h.range.startColumn,h.range.endLineNumber,h.range.endColumn)}selectAll(u){if(!this._editor.hasModel())return[];this.findController.highlightFindOptions();let n=this._editor.getModel();if(u)return n.findMatches(this.searchText,u,!1,this.matchCase,this.wholeWord?this._editor.getOption(148):null,!1,1073741824);return n.findMatches(this.searchText,!0,!1,this.matchCase,this.wholeWord?this._editor.getOption(148):null,!1,1073741824)}}class jd extends i{static{this.ID="editor.contrib.multiCursorController"}static get(u){return u.getContribution(jd.ID)}constructor(u){super();this._sessionDispose=this._register(new d),this._editor=u,this._ignoreSelectionChange=!1,this._session=null}dispose(){this._endSession(),super.dispose()}_beginSessionIfNeeded(u){if(!this._session){let n=Hl.create(this._editor,u);if(!n)return;this._session=n;let h={searchString:this._session.searchText};if(this._session.isDisconnectedFromFindController)h.wholeWordOverride=1,h.matchCaseOverride=1,h.isRegexOverride=2;u.getState().change(h,!1),this._sessionDispose.add(this._editor.onDidChangeCursorSelection((g)=>{if(this._ignoreSelectionChange)return;this._endSession()})),this._sessionDispose.add(this._editor.onDidBlurEditorText(()=>{this._endSession()})),this._sessionDispose.add(u.getState().onFindReplaceStateChange((g)=>{if(g.matchCase||g.wholeWord)this._endSession()}))}}_endSession(){if(this._sessionDispose.clear(),this._session&&this._session.isDisconnectedFromFindController){let u={wholeWordOverride:0,matchCaseOverride:0,isRegexOverride:0};this._session.findController.getState().change(u,!1)}this._session=null}_setSelections(u){this._ignoreSelectionChange=!0,this._editor.setSelections(u),this._ignoreSelectionChange=!1}_expandEmptyToWord(u,n){if(!n.isEmpty())return n;let h=this._editor.getConfiguredWordAtPosition(n.getStartPosition());if(!h)return n;return new F(n.startLineNumber,h.startColumn,n.startLineNumber,h.endColumn)}_applySessionResult(u){if(!u)return;if(this._setSelections(u.selections),u.revealRange)this._editor.revealRangeInCenterIfOutsideViewport(u.revealRange,u.revealScrollType)}getSession(u){return this._session}addSelectionToNextFindMatch(u){if(!this._editor.hasModel())return;if(!this._session){let n=this._editor.getSelections();if(n.length>1){let g=u.getState().matchCase;if(!Zy(this._editor.getModel(),n,g)){let m=this._editor.getModel(),v=[];for(let S=0,C=n.length;S<C;S++)v[S]=this._expandEmptyToWord(m,n[S]);this._editor.setSelections(v);return}}}if(this._beginSessionIfNeeded(u),this._session)this._applySessionResult(this._session.addSelectionToNextFindMatch())}addSelectionToPreviousFindMatch(u){if(this._beginSessionIfNeeded(u),this._session)this._applySessionResult(this._session.addSelectionToPreviousFindMatch())}moveSelectionToNextFindMatch(u){if(this._beginSessionIfNeeded(u),this._session)this._applySessionResult(this._session.moveSelectionToNextFindMatch())}moveSelectionToPreviousFindMatch(u){if(this._beginSessionIfNeeded(u),this._session)this._applySessionResult(this._session.moveSelectionToPreviousFindMatch())}selectAll(u){if(!this._editor.hasModel())return;let n=null,h=u.getState();if(h.isRevealed&&h.searchString.length>0&&h.isRegex){let g=this._editor.getModel();if(h.searchScope)n=g.findMatches(h.searchString,h.searchScope,h.isRegex,h.matchCase,h.wholeWord?this._editor.getOption(148):null,!1,1073741824);else n=g.findMatches(h.searchString,!0,h.isRegex,h.matchCase,h.wholeWord?this._editor.getOption(148):null,!1,1073741824)}else{if(this._beginSessionIfNeeded(u),!this._session)return;n=this._session.selectAll(h.searchScope)}if(n.length>0){let g=this._editor.getSelection();for(let p=0,m=n.length;p<m;p++){let v=n[p];if(v.range.intersectRanges(g)){n[p]=n[0],n[0]=v;break}}this._setSelections(n.map((p)=>new F(p.range.startLineNumber,p.range.startColumn,p.range.endLineNumber,p.range.endColumn)))}}}class Na extends U{run(u,n){let h=jd.get(n);if(!h)return;let g=n._getViewModel();if(g){let p=g.getCursorStates(),m=Ri.get(n);if(m)this._run(h,m);else{let v=u.get(A).createInstance(Ri,n);this._run(h,v),v.dispose()}Es(p,g.getCursorStates())}}}class zy extends Na{constructor(){super({id:"editor.action.addSelectionToNextFindMatch",label:b(1369,"Add Selection to Next Find Match"),precondition:void 0,kbOpts:{kbExpr:r.focus,primary:2082,weight:100},menuOpts:{menuId:l.MenubarSelectionMenu,group:"3_multi",title:e(1359,"Add &&Next Occurrence"),order:5}})}_run(u,n){u.addSelectionToNextFindMatch(n)}}class Ky extends Na{constructor(){super({id:"editor.action.addSelectionToPreviousFindMatch",label:b(1370,"Add Selection to Previous Find Match"),precondition:void 0,menuOpts:{menuId:l.MenubarSelectionMenu,group:"3_multi",title:e(1360,"Add P&&revious Occurrence"),order:6}})}_run(u,n){u.addSelectionToPreviousFindMatch(n)}}class Uy extends Na{constructor(){super({id:"editor.action.moveSelectionToNextFindMatch",label:b(1371,"Move Last Selection to Next Find Match"),precondition:void 0,kbOpts:{kbExpr:r.focus,primary:hn(2089,2082),weight:100}})}_run(u,n){u.moveSelectionToNextFindMatch(n)}}class qy extends Na{constructor(){super({id:"editor.action.moveSelectionToPreviousFindMatch",label:b(1372,"Move Last Selection to Previous Find Match"),precondition:void 0})}_run(u,n){u.moveSelectionToPreviousFindMatch(n)}}class jy extends Na{constructor(){super({id:"editor.action.selectHighlights",label:b(1373,"Select All Occurrences of Find Match"),precondition:void 0,kbOpts:{kbExpr:r.focus,primary:3114,weight:100},menuOpts:{menuId:l.MenubarSelectionMenu,group:"3_multi",title:e(1361,"Select All &&Occurrences"),order:7}})}_run(u,n){u.selectAll(n)}}class $y extends Na{constructor(){super({id:"editor.action.changeAll",label:b(1374,"Change All Occurrences"),precondition:L.and(r.writable,r.editorTextFocus),kbOpts:{kbExpr:r.editorTextFocus,primary:2108,weight:100},contextMenuOpts:{group:"1_modification",order:1.2}})}_run(u,n){u.selectAll(n)}}class Gy{constructor(u,n,h,g,p){if(this._model=u,this._searchText=n,this._matchCase=h,this._wordSeparators=g,this._cachedFindMatches=null,this._modelVersionId=this._model.getVersionId(),p&&this._model===p._model&&this._searchText===p._searchText&&this._matchCase===p._matchCase&&this._wordSeparators===p._wordSeparators&&this._modelVersionId===p._modelVersionId)this._cachedFindMatches=p._cachedFindMatches}findMatches(){if(this._cachedFindMatches===null)this._cachedFindMatches=this._model.findMatches(this._searchText,!0,!1,this._matchCase,this._wordSeparators,!1).map((u)=>u.range),this._cachedFindMatches.sort(t.compareRangesUsingStarts);return this._cachedFindMatches}}var Hg=class u extends i{static{H_=this}static{this.ID="editor.contrib.selectionHighlighter"}constructor(n,h){super();this._languageFeaturesService=h,this.editor=n,this._isEnabled=n.getOption(122),this._isEnabledMultiline=n.getOption(124),this._maxLength=n.getOption(123),this._decorations=n.createDecorationsCollection(),this.updateSoon=this._register(new Ce(()=>this._update(),300)),this.state=null,this._register(n.onDidChangeConfiguration((p)=>{this._isEnabled=n.getOption(122),this._isEnabledMultiline=n.getOption(124),this._maxLength=n.getOption(123)})),this._register(n.onDidChangeCursorSelection((p)=>{if(!this._isEnabled)return;if(p.selection.isEmpty())if(p.reason===3){if(this.state)this._setState(null);this.updateSoon.schedule()}else this._setState(null);else this._update()})),this._register(n.onDidChangeModel((p)=>{this._setState(null)})),this._register(n.onDidChangeModelContent((p)=>{if(this._isEnabled)this.updateSoon.schedule()}));let g=Ri.get(n);if(g)this._register(g.getState().onFindReplaceStateChange((p)=>{this._update()}));this.updateSoon.schedule()}_update(){this._setState(H_._createState(this.state,this._isEnabled,this._isEnabledMultiline,this._maxLength,this.editor))}static _createState(n,h,g,p,m){if(!h)return null;if(!m.hasModel())return null;if(!g){let R=m.getSelection();if(R.startLineNumber!==R.endLineNumber)return null}let v=jd.get(m);if(!v)return null;let S=Ri.get(m);if(!S)return null;let C=v.getSession(S);if(!C){let R=m.getSelections();if(R.length>1){let Y=S.getState().matchCase;if(!Zy(m.getModel(),R,Y))return null}C=Hl.create(m,S)}if(!C)return null;if(C.currentMatch)return null;if(/^[ \t]+$/.test(C.searchText))return null;if(p>0&&C.searchText.length>p)return null;let x=S.getState(),T=x.matchCase;if(x.isRevealed){let R=x.searchString;if(!T)R=R.toLowerCase();let Z=C.searchText;if(!T)Z=Z.toLowerCase();if(R===Z&&C.matchCase===x.matchCase&&C.wholeWord===x.wholeWord&&!x.isRegex)return null}return new Gy(m.getModel(),C.searchText,C.matchCase,C.wholeWord?m.getOption(148):null,n)}_setState(n){if(this.state=n,!this.state){this._decorations.clear();return}if(!this.editor.hasModel())return;let h=this.editor.getModel();if(h.isTooLargeForTokenization())return;let g=this.state.findMatches(),p=this.editor.getSelections();p.sort(t.compareRangesUsingStarts);let m=[];for(let x=0,T=0,R=g.length,Z=p.length;x<R;){let Y=g[x];if(T>=Z)m.push(Y),x++;else{let Q=t.compareRangesUsingStarts(Y,p[T]);if(Q<0){if(p[T].isEmpty()||!t.areIntersecting(Y,p[T]))m.push(Y);x++}else if(Q>0)T++;else x++,T++}}let v=this.editor.getOption(90)!=="off",S=this._languageFeaturesService.documentHighlightProvider.has(h)&&v,C=m.map((x)=>({range:x,options:Py(S)}));this._decorations.set(C)}dispose(){this._setState(null),super.dispose()}};Hg=H_=F2([H2(1,z)],Hg);function Zy(u,n,h){let g=Ay(u,n[0],!h);for(let p=1,m=n.length;p<m;p++){let v=n[p];if(v.isEmpty())return!1;let S=Ay(u,v,!h);if(g!==S)return!1}return!0}function Ay(u,n,h){let g=u.getValueInRange(n);return h?g.toLowerCase():g}class Xy extends U{constructor(){super({id:"editor.action.focusNextCursor",label:b(1375,"Focus Next Cursor"),metadata:{description:e(1362,"Focuses the next cursor"),args:[]},precondition:void 0})}run(u,n,h){if(!n.hasModel())return;let g=n._getViewModel();if(g.cursorConfig.readOnly)return;g.model.pushStackElement();let p=Array.from(g.getCursorStates()),m=p.shift();if(!m)return;p.push(m),g.setCursorStates(h.source,3,p),g.revealPrimaryCursor(h.source,!0),Es(p,g.getCursorStates())}}class Yy extends U{constructor(){super({id:"editor.action.focusPreviousCursor",label:b(1376,"Focus Previous Cursor"),metadata:{description:e(1363,"Focuses the previous cursor"),args:[]},precondition:void 0})}run(u,n,h){if(!n.hasModel())return;let g=n._getViewModel();if(g.cursorConfig.readOnly)return;g.model.pushStackElement();let p=Array.from(g.getCursorStates()),m=p.pop();if(!m)return;p.unshift(m),g.setCursorStates(h.source,3,p),g.revealPrimaryCursor(h.source,!0),Es(p,g.getCursorStates())}}fe(jd.ID,jd,4);fe(Hg.ID,Hg,1);O(Fy);O(Hy);O(Wy);O(zy);O(Ky);O(Uy);O(qy);O(jy);O($y);O(By);O(Vy);O(Xy);O(Yy);class vo{async provideSelectionRanges(u,n){let h=[];for(let g of n){let p=[];h.push(p);let m=new Map;await new Promise((v)=>vo._bracketsRightYield(v,0,u,g,m)),await new Promise((v)=>vo._bracketsLeftYield(v,0,u,g,m,p))}return h}static{this._maxDuration=30}static{this._maxRounds=2}static _bracketsRightYield(u,n,h,g,p){let m=new Map,v=Date.now();while(!0){if(n>=vo._maxRounds){u();break}if(!g){u();break}let S=h.bracketPairs.findNextBracket(g);if(!S){u();break}if(Date.now()-v>vo._maxDuration){setTimeout(()=>vo._bracketsRightYield(u,n+1,h,g,p));break}if(S.bracketInfo.isOpeningBracket){let x=S.bracketInfo.bracketText,T=m.has(x)?m.get(x):0;m.set(x,T+1)}else{let x=S.bracketInfo.getOpeningBrackets()[0].bracketText,T=m.has(x)?m.get(x):0;if(T-=1,m.set(x,Math.max(0,T)),T<0){let R=p.get(x);if(!R)R=new Hn,p.set(x,R);R.push(S.range)}}g=S.range.getEndPosition()}}static _bracketsLeftYield(u,n,h,g,p,m){let v=new Map,S=Date.now();while(!0){if(n>=vo._maxRounds&&p.size===0){u();break}if(!g){u();break}let C=h.bracketPairs.findPrevBracket(g);if(!C){u();break}if(Date.now()-S>vo._maxDuration){setTimeout(()=>vo._bracketsLeftYield(u,n+1,h,g,p,m));break}if(!C.bracketInfo.isOpeningBracket){let T=C.bracketInfo.getOpeningBrackets()[0].bracketText,R=v.has(T)?v.get(T):0;v.set(T,R+1)}else{let T=C.bracketInfo.bracketText,R=v.has(T)?v.get(T):0;if(R-=1,v.set(T,Math.max(0,R)),R<0){let Z=p.get(T);if(Z){let Y=Z.shift();if(Z.size===0)p.delete(T);let Q=t.fromPositions(C.range.getEndPosition(),Y.getStartPosition()),te=t.fromPositions(C.range.getStartPosition(),Y.getEndPosition());m.push({range:Q}),m.push({range:te}),vo._addBracketLeading(h,te,m)}}}g=C.range.getStartPosition()}}static _addBracketLeading(u,n,h){if(n.startLineNumber===n.endLineNumber)return;let g=n.startLineNumber,p=u.getLineFirstNonWhitespaceColumn(g);if(p!==0&&p!==n.startColumn)h.push({range:t.fromPositions(new s(g,p),n.getEndPosition())}),h.push({range:t.fromPositions(new s(g,1),n.getEndPosition())});let m=g-1;if(m>0){let v=u.getLineFirstNonWhitespaceColumn(m);if(v===n.startColumn&&v!==u.getLineLastNonWhitespaceColumn(m))h.push({range:t.fromPositions(new s(m,v),n.getEndPosition())}),h.push({range:t.fromPositions(new s(m,1),n.getEndPosition())})}}}class W_{constructor(u=!0){this.selectSubwords=u}provideSelectionRanges(u,n){let h=[];for(let g of n){let p=[];if(h.push(p),this.selectSubwords)this._addInWordRanges(p,u,g);this._addWordRanges(p,u,g),this._addWhitespaceLine(p,u,g),p.push({range:u.getFullModelRange()})}return h}_addInWordRanges(u,n,h){let g=n.getWordAtPosition(h);if(!g)return;let{word:p,startColumn:m}=g,v=h.column-m,S=v,C=v,x=0;for(;S>=0;S--){let T=p.charCodeAt(S);if(S!==v&&(T===95||T===45))break;else if(iu(T)&&vl(x))break;x=T}S+=1;for(;C<p.length;C++){let T=p.charCodeAt(C);if(vl(T)&&iu(x))break;else if(T===95||T===45)break;x=T}if(S<C)u.push({range:new t(h.lineNumber,m+S,h.lineNumber,m+C)})}_addWordRanges(u,n,h){let g=n.getWordAtPosition(h);if(g)u.push({range:new t(h.lineNumber,g.startColumn,h.lineNumber,g.endColumn)})}_addWhitespaceLine(u,n,h){if(n.getLineLength(h.lineNumber)>0&&n.getLineFirstNonWhitespaceColumn(h.lineNumber)===0&&n.getLineLastNonWhitespaceColumn(h.lineNumber)===0)u.push({range:new t(h.lineNumber,1,h.lineNumber,n.getLineMaxColumn(h.lineNumber))})}}var W2=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},B2=function(u,n){return function(h,g){n(h,g,u)}},B_;class V_{constructor(u,n){this.index=u,this.ranges=n}mov(u){let n=this.index+(u?1:-1);if(n<0||n>=this.ranges.length)return this;let h=new V_(n,this.ranges);if(h.ranges[n].equalsRange(this.ranges[this.index]))return h.mov(u);return h}}var Wl=class u{static{B_=this}static{this.ID="editor.contrib.smartSelectController"}static get(n){return n.getContribution(B_.ID)}constructor(n,h){this._editor=n,this._languageFeaturesService=h,this._ignoreSelection=!1}dispose(){this._selectionListener?.dispose()}async run(n){if(!this._editor.hasModel())return;let h=this._editor.getSelections(),g=this._editor.getModel();if(!this._state)await ex(this._languageFeaturesService.selectionRangeProvider,g,h.map((m)=>m.getPosition()),this._editor.getOption(129),ye.None).then((m)=>{if(!qn(m)||m.length!==h.length)return;if(!this._editor.hasModel()||!ot(this._editor.getSelections(),h,(v,S)=>v.equalsSelection(S)))return;for(let v=0;v<m.length;v++)m[v]=m[v].filter((S)=>S.containsPosition(h[v].getStartPosition())&&S.containsPosition(h[v].getEndPosition())),m[v].unshift(h[v]);this._state=m.map((v)=>new V_(0,v)),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((m)=>m.mov(n));let p=this._state.map((m)=>F.fromPositions(m.ranges[m.index].getStartPosition(),m.ranges[m.index].getEndPosition()));this._ignoreSelection=!0;try{this._editor.setSelections(p)}finally{this._ignoreSelection=!1}}};Wl=B_=W2([B2(1,z)],Wl);class z_ extends U{constructor(u,n){super(n);this._forward=u}async run(u,n){let h=Wl.get(n);if(h)await h.run(this._forward)}}class Jy extends z_{constructor(){super(!0,{id:"editor.action.smartSelect.expand",label:b(1469,"Expand Selection"),precondition:void 0,kbOpts:{kbExpr:r.editorTextFocus,primary:1553,mac:{primary:3345,secondary:[1297]},weight:100},menuOpts:{menuId:l.MenubarSelectionMenu,group:"1_basic",title:e(1467,"&&Expand Selection"),order:2}})}}Te.registerCommandAlias("editor.action.smartSelect.grow","editor.action.smartSelect.expand");class Qy extends z_{constructor(){super(!1,{id:"editor.action.smartSelect.shrink",label:b(1470,"Shrink Selection"),precondition:void 0,kbOpts:{kbExpr:r.editorTextFocus,primary:1551,mac:{primary:3343,secondary:[1295]},weight:100},menuOpts:{menuId:l.MenubarSelectionMenu,group:"1_basic",title:e(1468,"&&Shrink Selection"),order:3}})}}fe(Wl.ID,Wl,4);O(Jy);O(Qy);async function ex(u,n,h,g,p){let m=u.all(n).concat(new W_(g.selectSubwords));if(m.length===1)m.unshift(new vo);let v=[],S=[];for(let C of m)v.push(Promise.resolve(C.provideSelectionRanges(n,h,p)).then((x)=>{if(qn(x)&&x.length===h.length)for(let T=0;T<h.length;T++){if(!S[T])S[T]=[];for(let R of x[T])if(t.isIRange(R.range)&&t.containsPosition(R.range,h[T]))S[T].push(t.lift(R.range))}},yt));return await Promise.all(v),S.map((C)=>{if(C.length===0)return[];C.sort((Z,Y)=>{if(s.isBefore(Z.getStartPosition(),Y.getStartPosition()))return 1;else if(s.isBefore(Y.getStartPosition(),Z.getStartPosition()))return-1;else if(s.isBefore(Z.getEndPosition(),Y.getEndPosition()))return-1;else if(s.isBefore(Y.getEndPosition(),Z.getEndPosition()))return 1;else return 0});let x=[],T;for(let Z of C)if(!T||t.containsRange(Z,T)&&!t.equalsRange(Z,T))x.push(Z),T=Z;if(!g.selectLeadingAndTrailingWhitespace)return x;let R=[x[0]];for(let Z=1;Z<x.length;Z++){let Y=x[Z-1],Q=x[Z];if(Q.startLineNumber!==Y.startLineNumber||Q.endLineNumber!==Y.endLineNumber){let te=new t(Y.startLineNumber,n.getLineFirstNonWhitespaceColumn(Y.startLineNumber),Y.endLineNumber,n.getLineLastNonWhitespaceColumn(Y.endLineNumber));if(te.containsRange(Y)&&!te.equalsRange(Y)&&Q.containsRange(te)&&!Q.equalsRange(te))R.push(te);let oe=new t(Y.startLineNumber,1,Y.endLineNumber,n.getLineMaxColumn(Y.endLineNumber));if(oe.containsRange(Y)&&!oe.equalsRange(te)&&Q.containsRange(oe)&&!Q.equalsRange(oe))R.push(oe)}R.push(Q)}return R})}Te.registerCommand("_executeSelectionRangeProvider",async function(u,...n){let[h,g]=n;Fe(q.isUri(h)),Fe(cM(g,(v)=>s.isIPosition(v)));let p=u.get(z).selectionRangeProvider,m=await u.get(Dn).createModelReference(h);try{return ex(p,m.object.textEditorModel,g.map(s.lift),{selectLeadingAndTrailingWhitespace:!0,selectSubwords:!0},ye.None)}finally{m.dispose()}});class $d extends nn{constructor(u){super(u);this._inSelectionMode=u.inSelectionMode,this._wordNavigationType=u.wordNavigationType}runEditorCommand(u,n,h){if(!n.hasModel())return;let g=es(n.getOption(148),n.getOption(147)),p=n.getModel(),m=n.getSelections(),v=m.length>1,S=m.map((C)=>{let x=new s(C.positionLineNumber,C.positionColumn),T=this._move(g,p,x,this._wordNavigationType,v);return this._moveTo(C,T,this._inSelectionMode)});if(p.pushStackElement(),n._getViewModel().setCursorStates("moveWordCommand",3,S.map((C)=>et.fromModelSelection(C))),S.length===1){let C=new s(S[0].positionLineNumber,S[0].positionColumn);n.revealPosition(C,0)}}_moveTo(u,n,h){if(h)return new F(u.selectionStartLineNumber,u.selectionStartColumn,n.lineNumber,n.column);else return new F(n.lineNumber,n.column,n.lineNumber,n.column)}}class Tr extends $d{_move(u,n,h,g,p){return Mt.moveWordLeft(u,n,h,g,p)}}class Wr extends $d{_move(u,n,h,g,p){return Mt.moveWordRight(u,n,h,g)}}class tx extends Tr{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordStartLeft",precondition:void 0})}}class ix extends Tr{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordEndLeft",precondition:void 0})}}class ox extends Tr{constructor(){super({inSelectionMode:!1,wordNavigationType:1,id:"cursorWordLeft",precondition:void 0,kbOpts:{kbExpr:L.and(r.textInputFocus,L.and(Vh,M0)?.negate()),primary:2063,mac:{primary:527},weight:100}})}}class nx extends Tr{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordStartLeftSelect",precondition:void 0})}}class rx extends Tr{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordEndLeftSelect",precondition:void 0})}}class sx extends Tr{constructor(){super({inSelectionMode:!0,wordNavigationType:1,id:"cursorWordLeftSelect",precondition:void 0,kbOpts:{kbExpr:L.and(r.textInputFocus,L.and(Vh,M0)?.negate()),primary:3087,mac:{primary:1551},weight:100}})}}class ax extends Tr{constructor(){super({inSelectionMode:!1,wordNavigationType:3,id:"cursorWordAccessibilityLeft",precondition:void 0})}_move(u,n,h,g,p){return super._move(es(po.wordSeparators.defaultValue,u.intlSegmenterLocales),n,h,g,p)}}class dx extends Tr{constructor(){super({inSelectionMode:!0,wordNavigationType:3,id:"cursorWordAccessibilityLeftSelect",precondition:void 0})}_move(u,n,h,g,p){return super._move(es(po.wordSeparators.defaultValue,u.intlSegmenterLocales),n,h,g,p)}}class cx extends Wr{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordStartRight",precondition:void 0})}}class lx extends Wr{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordEndRight",precondition:void 0,kbOpts:{kbExpr:L.and(r.textInputFocus,L.and(Vh,M0)?.negate()),primary:2065,mac:{primary:529},weight:100}})}}class hx extends Wr{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordRight",precondition:void 0})}}class ux extends Wr{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordStartRightSelect",precondition:void 0})}}class gx extends Wr{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordEndRightSelect",precondition:void 0,kbOpts:{kbExpr:L.and(r.textInputFocus,L.and(Vh,M0)?.negate()),primary:3089,mac:{primary:1553},weight:100}})}}class px extends Wr{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordRightSelect",precondition:void 0})}}class mx extends Wr{constructor(){super({inSelectionMode:!1,wordNavigationType:3,id:"cursorWordAccessibilityRight",precondition:void 0})}_move(u,n,h,g,p){return super._move(es(po.wordSeparators.defaultValue,u.intlSegmenterLocales),n,h,g,p)}}class fx extends Wr{constructor(){super({inSelectionMode:!0,wordNavigationType:3,id:"cursorWordAccessibilityRightSelect",precondition:void 0})}_move(u,n,h,g,p){return super._move(es(po.wordSeparators.defaultValue,u.intlSegmenterLocales),n,h,g,p)}}class Gd extends nn{constructor(u){super({canTriggerInlineEdits:!0,...u});this._whitespaceHeuristics=u.whitespaceHeuristics,this._wordNavigationType=u.wordNavigationType}runEditorCommand(u,n,h){let g=u?.get(ut);if(!n.hasModel()||!g)return;let p=es(n.getOption(148),n.getOption(147)),m=n.getModel(),v=n.getSelections(),S=n.getOption(10),C=n.getOption(15),x=g.getLanguageConfiguration(m.getLanguageId()).getAutoClosingPairs(),T=n._getViewModel(),R=v.map((Z)=>{let Y=this._delete({wordSeparators:p,model:m,selection:Z,whitespaceHeuristics:this._whitespaceHeuristics,autoClosingDelete:n.getOption(13),autoClosingBrackets:S,autoClosingQuotes:C,autoClosingPairs:x,autoClosedCharacters:T.getCursorAutoClosedCharacters()},this._wordNavigationType);return new Ti(Y,"")});n.pushUndoStop(),n.executeCommands(this.id,R),n.pushUndoStop()}}class Wg extends Gd{_delete(u,n){let h=Mt.deleteWordLeft(u,n);if(h)return h;return new t(1,1,1,1)}}class Bg extends Gd{_delete(u,n){let h=Mt.deleteWordRight(u,n);if(h)return h;let g=u.model.getLineCount(),p=u.model.getLineMaxColumn(g);return new t(g,p,g,p)}}class _x extends Wg{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:0,id:"deleteWordStartLeft",precondition:r.writable})}}class bx extends Wg{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:2,id:"deleteWordEndLeft",precondition:r.writable})}}class vx extends Wg{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:0,id:"deleteWordLeft",precondition:r.writable,kbOpts:{kbExpr:r.textInputFocus,primary:2049,mac:{primary:513},weight:100}})}}class wx extends Bg{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:0,id:"deleteWordStartRight",precondition:r.writable})}}class Sx extends Bg{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:2,id:"deleteWordEndRight",precondition:r.writable})}}class Cx extends Bg{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:2,id:"deleteWordRight",precondition:r.writable,kbOpts:{kbExpr:r.textInputFocus,primary:2068,mac:{primary:532},weight:100}})}}class yx extends U{constructor(){super({id:"deleteInsideWord",precondition:r.writable,label:b(1650,"Delete Word"),metadata:{description:b(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(u,n,h){if(!n.hasModel())return;let g=!!(h&&typeof h==="object"&&h.onlyWord),p=es(n.getOption(148),n.getOption(147)),m=n.getModel(),S=n.getSelections().map((C)=>{let x=Mt.deleteInsideWord(p,m,C,g);return new Ti(x,"")});n.pushUndoStop(),n.executeCommands(this.id,S),n.pushUndoStop()}}K(new tx);K(new ix);K(new ox);K(new nx);K(new rx);K(new sx);K(new cx);K(new lx);K(new hx);K(new ux);K(new gx);K(new px);K(new ax);K(new dx);K(new mx);K(new fx);K(new _x);K(new bx);K(new vx);K(new wx);K(new Sx);K(new Cx);O(yx);class xx extends Gd{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:0,id:"deleteWordPartLeft",precondition:r.writable,kbOpts:{kbExpr:r.textInputFocus,primary:0,mac:{primary:769},weight:100}})}_delete(u,n){let h=sy.deleteWordPartLeft(u);if(h)return h;return new t(1,1,1,1)}}class Ix extends Gd{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:2,id:"deleteWordPartRight",precondition:r.writable,kbOpts:{kbExpr:r.textInputFocus,primary:0,mac:{primary:788},weight:100}})}_delete(u,n){let h=sy.deleteWordPartRight(u);if(h)return h;let g=u.model.getLineCount(),p=u.model.getLineMaxColumn(g);return new t(g,p,g,p)}}class K_ extends $d{_move(u,n,h,g,p){return sy.moveWordPartLeft(u,n,h,p)}}class Lx extends K_{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordPartLeft",precondition:void 0,kbOpts:{kbExpr:r.textInputFocus,primary:0,mac:{primary:783},weight:100}})}}Te.registerCommandAlias("cursorWordPartStartLeft","cursorWordPartLeft");class kx extends K_{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordPartLeftSelect",precondition:void 0,kbOpts:{kbExpr:r.textInputFocus,primary:0,mac:{primary:1807},weight:100}})}}Te.registerCommandAlias("cursorWordPartStartLeftSelect","cursorWordPartLeftSelect");class U_ extends $d{_move(u,n,h,g,p){return sy.moveWordPartRight(u,n,h)}}class Ex extends U_{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordPartRight",precondition:void 0,kbOpts:{kbExpr:r.textInputFocus,primary:0,mac:{primary:785},weight:100}})}}class Dx extends U_{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordPartRightSelect",precondition:void 0,kbOpts:{kbExpr:r.textInputFocus,primary:0,mac:{primary:1809},weight:100}})}}K(new xx);K(new Ix);K(new Lx);K(new kx);K(new Ex);K(new Dx);var V2={[0]:" ",[1]:"u",[2]:"r"};var Zd=16777215;class Vg{constructor(u){let n=Math.ceil(u/32);this._states=new Uint32Array(n)}get(u){let n=u/32|0,h=u%32;return(this._states[n]&1<<h)!==0}set(u,n){let h=u/32|0,g=u%32,p=this._states[h];if(n)this._states[h]=p|1<<g;else this._states[h]=p&~(1<<g)}}class yi{constructor(u,n,h){if(u.length!==n.length||u.length>65535)throw Error("invalid startIndexes or endIndexes size");this._startIndexes=u,this._endIndexes=n,this._collapseStates=new Vg(u.length),this._userDefinedStates=new Vg(u.length),this._recoveredStates=new Vg(u.length),this._types=h,this._parentsComputed=!1}ensureParentIndices(){if(!this._parentsComputed){this._parentsComputed=!0;let u=[],n=(h,g)=>{let p=u[u.length-1];return this.getStartLineNumber(p)<=h&&this.getEndLineNumber(p)>=g};for(let h=0,g=this._startIndexes.length;h<g;h++){let p=this._startIndexes[h],m=this._endIndexes[h];if(p>16777215||m>16777215)throw Error("startLineNumber or endLineNumber must not exceed 16777215");while(u.length>0&&!n(p,m))u.pop();let v=u.length>0?u[u.length-1]:-1;u.push(h),this._startIndexes[h]=p+((v&255)<<24),this._endIndexes[h]=m+((v&65280)<<16)}}}get length(){return this._startIndexes.length}getStartLineNumber(u){return this._startIndexes[u]&16777215}getEndLineNumber(u){return this._endIndexes[u]&16777215}getType(u){return this._types?this._types[u]:void 0}hasTypes(){return!!this._types}isCollapsed(u){return this._collapseStates.get(u)}setCollapsed(u,n){this._collapseStates.set(u,n)}isUserDefined(u){return this._userDefinedStates.get(u)}setUserDefined(u,n){return this._userDefinedStates.set(u,n)}isRecovered(u){return this._recoveredStates.get(u)}setRecovered(u,n){return this._recoveredStates.set(u,n)}getSource(u){if(this.isUserDefined(u))return 1;else if(this.isRecovered(u))return 2;return 0}setSource(u,n){if(n===1)this.setUserDefined(u,!0),this.setRecovered(u,!1);else if(n===2)this.setUserDefined(u,!1),this.setRecovered(u,!0);else this.setUserDefined(u,!1),this.setRecovered(u,!1)}setCollapsedAllOfType(u,n){let h=!1;if(this._types){for(let g=0;g<this._types.length;g++)if(this._types[g]===u)this.setCollapsed(g,n),h=!0}return h}toRegion(u){return new Tx(this,u)}getParentIndex(u){this.ensureParentIndices();let n=((this._startIndexes[u]&4278190080)>>>24)+((this._endIndexes[u]&4278190080)>>>16);if(n===65535)return-1;return n}contains(u,n){return this.getStartLineNumber(u)<=n&&this.getEndLineNumber(u)>=n}findIndex(u){let n=0,h=this._startIndexes.length;if(h===0)return-1;while(n<h){let g=Math.floor((n+h)/2);if(u<this.getStartLineNumber(g))h=g;else n=g+1}return n-1}findRange(u){let n=this.findIndex(u);if(n>=0){if(this.getEndLineNumber(n)>=u)return n;n=this.getParentIndex(n);while(n!==-1){if(this.contains(n,u))return n;n=this.getParentIndex(n)}}return-1}toString(){let u=[];for(let n=0;n<this.length;n++)u[n]=`[${V2[this.getSource(n)]}${this.isCollapsed(n)?"+":"-"}] ${this.getStartLineNumber(n)}/${this.getEndLineNumber(n)}`;return u.join(", ")}toFoldRange(u){return{startLineNumber:this._startIndexes[u]&16777215,endLineNumber:this._endIndexes[u]&16777215,type:this._types?this._types[u]:void 0,isCollapsed:this.isCollapsed(u),source:this.getSource(u)}}static fromFoldRanges(u){let n=u.length,h=new Uint32Array(n),g=new Uint32Array(n),p=[],m=!1;for(let S=0;S<n;S++){let C=u[S];if(h[S]=C.startLineNumber,g[S]=C.endLineNumber,p.push(C.type),C.type)m=!0}if(!m)p=void 0;let v=new yi(h,g,p);for(let S=0;S<n;S++){if(u[S].isCollapsed)v.setCollapsed(S,!0);v.setSource(S,u[S].source)}return v}static sanitizeAndMerge(u,n,h,g){h=h??Number.MAX_VALUE;let p=(te,oe)=>Array.isArray(te)?(ne)=>ne<oe?te[ne]:void 0:(ne)=>ne<oe?te.toFoldRange(ne):void 0,m=p(u,u.length),v=p(n,n.length),S=0,C=0,x=m(0),T=v(0),R=[],Z,Y=0,Q=[];while(x||T){let te=void 0;if(T&&(!x||x.startLineNumber>=T.startLineNumber)){if(x&&x.startLineNumber===T.startLineNumber){if(T.source===1)te=T;else te=x,te.isCollapsed=T.isCollapsed&&(x.endLineNumber===T.endLineNumber||!g?.startsInside(x.startLineNumber+1,x.endLineNumber+1)),te.source=0;x=m(++S)}else if(te=T,T.isCollapsed&&T.source===0)te.source=2;T=v(++C)}else{let oe=C,ne=T;while(!0){if(!ne||ne.startLineNumber>x.endLineNumber){te=x;break}if(ne.source===1&&ne.endLineNumber>x.endLineNumber)break;ne=v(++oe)}x=m(++S)}if(te){while(Z&&Z.endLineNumber<te.startLineNumber)Z=R.pop();if(te.endLineNumber>te.startLineNumber&&te.startLineNumber>Y&&te.endLineNumber<=h&&(!Z||Z.endLineNumber>=te.endLineNumber)){if(Q.push(te),Y=te.startLineNumber,Z)R.push(Z);Z=te}}}return Q}}class Tx{constructor(u,n){this.ranges=u,this.index=n}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(u){return u.startLineNumber<=this.startLineNumber&&u.endLineNumber>=this.endLineNumber}containsLine(u){return this.startLineNumber<=u&&u<=this.endLineNumber}}class q_{get regions(){return this._regions}get textModel(){return this._textModel}constructor(u,n){this._updateEventEmitter=new o,this.onDidChange=this._updateEventEmitter.event,this._textModel=u,this._decorationProvider=n,this._regions=new yi(new Uint32Array(0),new Uint32Array(0)),this._editorDecorationIds=[]}toggleCollapseState(u){if(!u.length)return;u=u.sort((h,g)=>h.regionIndex-g.regionIndex);let n={};this._decorationProvider.changeDecorations((h)=>{let g=0,p=-1,m=-1,v=(S)=>{while(g<S){let C=this._regions.getEndLineNumber(g),x=this._regions.isCollapsed(g);if(C<=p){let T=this.regions.getSource(g)!==0;h.changeDecorationOptions(this._editorDecorationIds[g],this._decorationProvider.getDecorationOption(x,C<=m,T))}if(x&&C>m)m=C;g++}};for(let S of u){let C=S.regionIndex,x=this._editorDecorationIds[C];if(x&&!n[x]){n[x]=!0,v(C);let T=!this._regions.isCollapsed(C);this._regions.setCollapsed(C,T),p=Math.max(p,this._regions.getEndLineNumber(C))}}v(this._regions.length)}),this._updateEventEmitter.fire({model:this,collapseStateChanged:u})}removeManualRanges(u){let n=new Set,h=!1;for(let m of u)if(t.isEmpty(m)){let v=this._regions.findRange(m.startLineNumber);while(v!==-1&&this._regions.getSource(v)===0)v=this._regions.getParentIndex(v);if(v===-1)h=!0;else n.add(v)}let g=[],p=(m)=>{for(let v of u)if(!t.isEmpty(v)&&!(v.startLineNumber>m.endLineNumber||m.startLineNumber>v.endLineNumber))return!0;return!1};for(let m=0;m<this._regions.length;m++){let v=this._regions.toFoldRange(m);if(v.source===0||!h&&!n.has(m)&&!p(v))g.push(v)}this.updatePost(yi.fromFoldRanges(g))}update(u,n){let h=this._currentFoldedOrManualRanges(n),g=yi.sanitizeAndMerge(u,h,this._textModel.getLineCount(),n);this.updatePost(yi.fromFoldRanges(g))}updatePost(u){let n=[],h=-1;for(let g=0,p=u.length;g<p;g++){let m=u.getStartLineNumber(g),v=u.getEndLineNumber(g),S=u.isCollapsed(g),C=u.getSource(g)!==0,x={startLineNumber:m,startColumn:this._textModel.getLineMaxColumn(m),endLineNumber:v,endColumn:this._textModel.getLineMaxColumn(v)+1};if(n.push({range:x,options:this._decorationProvider.getDecorationOption(S,v<=h,C)}),S&&v>h)h=v}this._decorationProvider.changeDecorations((g)=>this._editorDecorationIds=g.deltaDecorations(this._editorDecorationIds,n)),this._regions=u,this._updateEventEmitter.fire({model:this})}_currentFoldedOrManualRanges(u){let n=[];for(let h=0,g=this._regions.length;h<g;h++){let p=this.regions.isCollapsed(h),m=this.regions.getSource(h);if(p||m!==0){let v=this._regions.toFoldRange(h),S=this._textModel.getDecorationRange(this._editorDecorationIds[h]);if(S){if(p&&u?.startsInside(S.startLineNumber+1,S.endLineNumber))p=!1;n.push({startLineNumber:S.startLineNumber,endLineNumber:S.endLineNumber,type:v.type,isCollapsed:p,source:m})}}}return n}getMemento(){let u=this._currentFoldedOrManualRanges(),n=[],h=this._textModel.getLineCount();for(let g=0,p=u.length;g<p;g++){let m=u[g];if(m.startLineNumber>=m.endLineNumber||m.startLineNumber<1||m.endLineNumber>h)continue;let v=this._getLinesChecksum(m.startLineNumber+1,m.endLineNumber);n.push({startLineNumber:m.startLineNumber,endLineNumber:m.endLineNumber,isCollapsed:m.isCollapsed,source:m.source,checksum:v})}return n.length>0?n:void 0}applyMemento(u){if(!Array.isArray(u))return;let n=[],h=this._textModel.getLineCount();for(let p of u){if(p.startLineNumber>=p.endLineNumber||p.startLineNumber<1||p.endLineNumber>h)continue;let m=this._getLinesChecksum(p.startLineNumber+1,p.endLineNumber);if(!p.checksum||m===p.checksum)n.push({startLineNumber:p.startLineNumber,endLineNumber:p.endLineNumber,type:void 0,isCollapsed:p.isCollapsed??!0,source:p.source??0})}let g=yi.sanitizeAndMerge(this._regions,n,h);this.updatePost(yi.fromFoldRanges(g))}_getLinesChecksum(u,n){return ru(this._textModel.getLineContent(u)+this._textModel.getLineContent(n))%1e6}dispose(){this._decorationProvider.removeDecorations(this._editorDecorationIds),this._updateEventEmitter.dispose()}getAllRegionsAtLine(u,n){let h=[];if(this._regions){let g=this._regions.findRange(u),p=1;while(g>=0){let m=this._regions.toRegion(g);if(!n||n(m,p))h.push(m);p++,g=m.parentIndex}}return h}getRegionAtLine(u){if(this._regions){let n=this._regions.findRange(u);if(n>=0)return this._regions.toRegion(n)}return null}getRegionsInside(u,n){let h=[],g=u?u.regionIndex+1:0,p=u?u.endLineNumber:Number.MAX_VALUE;if(n&&n.length===2){let m=[];for(let v=g,S=this._regions.length;v<S;v++){let C=this._regions.toRegion(v);if(this._regions.getStartLineNumber(v)<p){while(m.length>0&&!C.containedBy(m[m.length-1]))m.pop();if(m.push(C),n(C,m.length))h.push(C)}else break}}else for(let m=g,v=this._regions.length;m<v;m++){let S=this._regions.toRegion(m);if(this._regions.getStartLineNumber(m)<p){if(!n||n(S))h.push(S)}else break}return h}}function Bl(u,n,h){let g=[];for(let p of h){let m=u.getRegionAtLine(p);if(m){let v=!m.isCollapsed;if(g.push(m),n>1){let S=u.getRegionsInside(m,(C,x)=>C.isCollapsed!==v&&x<n);g.push(...S)}}}u.toggleCollapseState(g)}function Ma(u,n,h=Number.MAX_VALUE,g){let p=[];if(g&&g.length>0)for(let m of g){let v=u.getRegionAtLine(m);if(v){if(v.isCollapsed!==n)p.push(v);if(h>1){let S=u.getRegionsInside(v,(C,x)=>C.isCollapsed!==n&&x<h);p.push(...S)}}}else{let m=u.getRegionsInside(null,(v,S)=>v.isCollapsed!==n&&S<h);p.push(...m)}u.toggleCollapseState(p)}function j_(u,n,h,g){let p=[];for(let m of g){let v=u.getAllRegionsAtLine(m,(S,C)=>S.isCollapsed!==n&&C<=h);p.push(...v)}u.toggleCollapseState(p)}function Rx(u,n,h){let g=[];for(let p of h){let m=u.getAllRegionsAtLine(p,(v)=>v.isCollapsed!==n);if(m.length>0)g.push(m[0])}u.toggleCollapseState(g)}function Nx(u,n,h,g){let p=(v,S)=>S===n&&v.isCollapsed!==h&&!g.some((C)=>v.containsLine(C)),m=u.getRegionsInside(null,p);u.toggleCollapseState(m)}function $_(u,n,h){let g=[];for(let v of h){let S=u.getAllRegionsAtLine(v,void 0);if(S.length>0)g.push(S[0])}let p=(v)=>g.every((S)=>!S.containedBy(v)&&!v.containedBy(S))&&v.isCollapsed!==n,m=u.getRegionsInside(null,p);u.toggleCollapseState(m)}function zg(u,n,h){let{textModel:g,regions:p}=u,m=[];for(let v=p.length-1;v>=0;v--)if(h!==p.isCollapsed(v)){let S=p.getStartLineNumber(v);if(n.test(g.getLineContent(S)))m.push(p.toRegion(v))}u.toggleCollapseState(m)}function Kg(u,n,h){let g=u.regions,p=[];for(let m=g.length-1;m>=0;m--)if(h!==g.isCollapsed(m)&&n===g.getType(m))p.push(g.toRegion(m));u.toggleCollapseState(p)}function Mx(u,n){let h=null,g=n.getRegionAtLine(u);if(g!==null){if(h=g.startLineNumber,u===h){let p=g.parentIndex;if(p!==-1)h=n.regions.getStartLineNumber(p);else h=null}}return h}function Ox(u,n){let h=n.getRegionAtLine(u);if(h!==null&&h.startLineNumber===u)if(u!==h.startLineNumber)return h.startLineNumber;else{let g=h.parentIndex,p=0;if(g!==-1)p=n.regions.getStartLineNumber(h.parentIndex);while(h!==null)if(h.regionIndex>0){if(h=n.regions.toRegion(h.regionIndex-1),h.startLineNumber<=p)return null;else if(h.parentIndex===g)return h.startLineNumber}else return null}else if(n.regions.length>0){h=n.regions.toRegion(n.regions.length-1);while(h!==null){if(h.startLineNumber<u)return h.startLineNumber;if(h.regionIndex>0)h=n.regions.toRegion(h.regionIndex-1);else h=null}}return null}function Px(u,n){let h=n.getRegionAtLine(u);if(h!==null&&h.startLineNumber===u){let g=h.parentIndex,p=0;if(g!==-1)p=n.regions.getEndLineNumber(h.parentIndex);else if(n.regions.length===0)return null;else p=n.regions.getEndLineNumber(n.regions.length-1);while(h!==null)if(h.regionIndex<n.regions.length){if(h=n.regions.toRegion(h.regionIndex+1),h.startLineNumber>=p)return null;else if(h.parentIndex===g)return h.startLineNumber}else return null}else if(n.regions.length>0){h=n.regions.toRegion(0);while(h!==null){if(h.startLineNumber>u)return h.startLineNumber;if(h.regionIndex<n.regions.length)h=n.regions.toRegion(h.regionIndex+1);else h=null}}return null}class G_{get onDidChange(){return this._updateEventEmitter.event}get hiddenRanges(){return this._hiddenRanges}constructor(u){if(this._updateEventEmitter=new o,this._hasLineChanges=!1,this._foldingModel=u,this._foldingModelListener=u.onDidChange((n)=>this.updateHiddenRanges()),this._hiddenRanges=[],u.regions.length)this.updateHiddenRanges()}notifyChangeModelContent(u){if(this._hiddenRanges.length&&!this._hasLineChanges)this._hasLineChanges=u.changes.some((n)=>n.range.endLineNumber!==n.range.startLineNumber||ha(n.text)[0]!==0)}updateHiddenRanges(){let u=!1,n=[],h=0,g=0,p=Number.MAX_VALUE,m=-1,v=this._foldingModel.regions;for(;h<v.length;h++){if(!v.isCollapsed(h))continue;let S=v.getStartLineNumber(h)+1,C=v.getEndLineNumber(h);if(p<=S&&C<=m)continue;if(!u&&g<this._hiddenRanges.length&&this._hiddenRanges[g].startLineNumber===S&&this._hiddenRanges[g].endLineNumber===C)n.push(this._hiddenRanges[g]),g++;else u=!0,n.push(new t(S,1,C,1));p=S,m=C}if(this._hasLineChanges||u||g<this._hiddenRanges.length)this.applyHiddenRanges(n)}applyHiddenRanges(u){this._hiddenRanges=u,this._hasLineChanges=!1,this._updateEventEmitter.fire(u)}hasRanges(){return this._hiddenRanges.length>0}isHidden(u){return Ax(this._hiddenRanges,u)!==null}adjustSelections(u){let n=!1,h=this._foldingModel.textModel,g=null,p=(m)=>{if(!g||!z2(m,g))g=Ax(this._hiddenRanges,m);if(g)return g.startLineNumber-1;return null};for(let m=0,v=u.length;m<v;m++){let S=u[m],C=p(S.startLineNumber);if(C)S=S.setStartPosition(C,h.getLineMaxColumn(C)),n=!0;let x=p(S.endLineNumber);if(x)S=S.setEndPosition(x,h.getLineMaxColumn(x)),n=!0;u[m]=S}return n}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 z2(u,n){return u>=n.startLineNumber&&u<=n.endLineNumber}function Ax(u,n){let h=vf(u,(g)=>n<g.startLineNumber)-1;if(h>=0&&u[h].endLineNumber>=n)return u[h];return null}var K2=5000,U2="indent";class Xd{constructor(u,n,h){this.editorModel=u,this.languageConfigurationService=n,this.foldingRangesLimit=h,this.id=U2}dispose(){}compute(u){let n=this.languageConfigurationService.getLanguageConfiguration(this.editorModel.getLanguageId()).foldingRules,h=n&&!!n.offSide,g=n&&n.markers;return Promise.resolve(j2(this.editorModel,h,g,this.foldingRangesLimit))}}class Fx{constructor(u){this._startIndexes=[],this._endIndexes=[],this._indentOccurrences=[],this._length=0,this._foldingRangesLimit=u}insertFirst(u,n,h){if(u>Zd||n>Zd)return;let g=this._length;if(this._startIndexes[g]=u,this._endIndexes[g]=n,this._length++,h<1000)this._indentOccurrences[h]=(this._indentOccurrences[h]||0)+1}toIndentRanges(u){let n=this._foldingRangesLimit.limit;if(this._length<=n){this._foldingRangesLimit.update(this._length,!1);let h=new Uint32Array(this._length),g=new Uint32Array(this._length);for(let p=this._length-1,m=0;p>=0;p--,m++)h[m]=this._startIndexes[p],g[m]=this._endIndexes[p];return new yi(h,g)}else{this._foldingRangesLimit.update(this._length,n);let h=0,g=this._indentOccurrences.length;for(let S=0;S<this._indentOccurrences.length;S++){let C=this._indentOccurrences[S];if(C){if(C+h>n){g=S;break}h+=C}}let p=u.getOptions().tabSize,m=new Uint32Array(n),v=new Uint32Array(n);for(let S=this._length-1,C=0;S>=0;S--){let x=this._startIndexes[S],T=u.getLineContent(x),R=wg(T,p);if(R<g||R===g&&h++<n)m[C]=x,v[C]=this._endIndexes[S],C++}return new yi(m,v)}}}var q2={limit:K2,update:()=>{}};function j2(u,n,h,g=q2){let p=u.getOptions().tabSize,m=new Fx(g),v=void 0,S=void 0,C=void 0;if(h)if(h.start.flags===h.end.flags)v=new RegExp(`(${h.start.source})|(?:${h.end.source})`,h.start.flags);else S=h.start,C=h.end;let x=[],T=u.getLineCount()+1;x.push({indent:-1,endAbove:T,line:T});for(let R=u.getLineCount();R>0;R--){let Z=u.getLineContent(R),Y=wg(Z,p),Q=x[x.length-1];if(Y===-1){if(n)Q.endAbove=R;continue}let te=!1,oe=!1,ne;if(v){if(v.lastIndex=0,ne=v.exec(Z))te=!!ne[1],oe=!te}else{if(S)S.lastIndex=0,te=S.test(Z);if(!te&&C)C.lastIndex=0,oe=C.test(Z)}if(te||oe)if(te){let he=x.length-1;while(he>0&&x[he].indent!==-2)he--;if(he>0){x.length=he+1,Q=x[he],m.insertFirst(R,Q.line,Y),Q.line=R,Q.indent=Y,Q.endAbove=R;continue}}else{x.push({indent:-2,endAbove:R,line:R});continue}if(Q.indent>Y){do x.pop(),Q=x[x.length-1];while(Q.indent>Y);let he=Q.endAbove-1;if(he-R>=1)m.insertFirst(R,he,Y)}if(Q.indent===Y)Q.endAbove=R;else x.push({indent:Y,endAbove:R,line:R})}return m.toIndentRanges(u)}var $2=a("editor.foldBackground",{light:be(pd,0.3),dark:be(pd,0.3),hcDark:null,hcLight:null},e(1060,"Background color behind folded ranges. The color must not be opaque so as not to hide underlying decorations."),!0);a("editor.foldPlaceholderForeground",{light:"#808080",dark:"#808080",hcDark:null,hcLight:null},e(1061,"Color of the collapsed text after the first line of a folded range."));a("editorGutter.foldingControlForeground",cg,e(1062,"Color of the folding control in the editor gutter."));var Vl=Ht("folding-expanded",_.chevronDown,e(1063,"Icon for expanded ranges in the editor glyph margin.")),zl=Ht("folding-collapsed",_.chevronRight,e(1064,"Icon for collapsed ranges in the editor glyph margin.")),Hx=Ht("folding-manual-collapsed",zl,e(1065,"Icon for manually collapsed ranges in the editor glyph margin.")),Wx=Ht("folding-manual-expanded",Vl,e(1066,"Icon for manually expanded ranges in the editor glyph margin.")),Z_={color:bn($2),position:1},Yd=e(1067,"Click to expand the range."),Ug=e(1068,"Click to collapse the range.");class Zi{static{this.COLLAPSED_VISUAL_DECORATION=de.register({description:"folding-collapsed-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,linesDecorationsTooltip:Yd,firstLineDecorationClassName:J.asClassName(zl)})}static{this.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION=de.register({description:"folding-collapsed-highlighted-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:Z_,isWholeLine:!0,linesDecorationsTooltip:Yd,firstLineDecorationClassName:J.asClassName(zl)})}static{this.MANUALLY_COLLAPSED_VISUAL_DECORATION=de.register({description:"folding-manually-collapsed-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,linesDecorationsTooltip:Yd,firstLineDecorationClassName:J.asClassName(Hx)})}static{this.MANUALLY_COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION=de.register({description:"folding-manually-collapsed-highlighted-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:Z_,isWholeLine:!0,linesDecorationsTooltip:Yd,firstLineDecorationClassName:J.asClassName(Hx)})}static{this.NO_CONTROLS_COLLAPSED_RANGE_DECORATION=de.register({description:"folding-no-controls-range-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,linesDecorationsTooltip:Yd})}static{this.NO_CONTROLS_COLLAPSED_HIGHLIGHTED_RANGE_DECORATION=de.register({description:"folding-no-controls-range-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:Z_,isWholeLine:!0,linesDecorationsTooltip:Yd})}static{this.EXPANDED_VISUAL_DECORATION=de.register({description:"folding-expanded-visual-decoration",stickiness:1,isWholeLine:!0,firstLineDecorationClassName:"alwaysShowFoldIcons "+J.asClassName(Vl),linesDecorationsTooltip:Ug})}static{this.EXPANDED_AUTO_HIDE_VISUAL_DECORATION=de.register({description:"folding-expanded-auto-hide-visual-decoration",stickiness:1,isWholeLine:!0,firstLineDecorationClassName:J.asClassName(Vl),linesDecorationsTooltip:Ug})}static{this.MANUALLY_EXPANDED_VISUAL_DECORATION=de.register({description:"folding-manually-expanded-visual-decoration",stickiness:0,isWholeLine:!0,firstLineDecorationClassName:"alwaysShowFoldIcons "+J.asClassName(Wx),linesDecorationsTooltip:Ug})}static{this.MANUALLY_EXPANDED_AUTO_HIDE_VISUAL_DECORATION=de.register({description:"folding-manually-expanded-auto-hide-visual-decoration",stickiness:0,isWholeLine:!0,firstLineDecorationClassName:J.asClassName(Wx),linesDecorationsTooltip:Ug})}static{this.NO_CONTROLS_EXPANDED_RANGE_DECORATION=de.register({description:"folding-no-controls-range-decoration",stickiness:0,isWholeLine:!0})}static{this.HIDDEN_RANGE_DECORATION=de.register({description:"folding-hidden-range-decoration",stickiness:1})}constructor(u){this.editor=u,this.showFoldingControls="mouseover",this.showFoldingHighlights=!0}getDecorationOption(u,n,h){if(n)return Zi.HIDDEN_RANGE_DECORATION;if(this.showFoldingControls==="never"){if(u)return this.showFoldingHighlights?Zi.NO_CONTROLS_COLLAPSED_HIGHLIGHTED_RANGE_DECORATION:Zi.NO_CONTROLS_COLLAPSED_RANGE_DECORATION;return Zi.NO_CONTROLS_EXPANDED_RANGE_DECORATION}if(u)return h?this.showFoldingHighlights?Zi.MANUALLY_COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION:Zi.MANUALLY_COLLAPSED_VISUAL_DECORATION:this.showFoldingHighlights?Zi.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION:Zi.COLLAPSED_VISUAL_DECORATION;else if(this.showFoldingControls==="mouseover")return h?Zi.MANUALLY_EXPANDED_AUTO_HIDE_VISUAL_DECORATION:Zi.EXPANDED_AUTO_HIDE_VISUAL_DECORATION;else return h?Zi.MANUALLY_EXPANDED_VISUAL_DECORATION:Zi.EXPANDED_VISUAL_DECORATION}changeDecorations(u){return this.editor.changeDecorations(u)}removeDecorations(u){this.editor.removeDecorations(u)}}var G2={},Z2="syntax";class Jd{constructor(u,n,h,g,p){if(this.editorModel=u,this.providers=n,this.handleFoldingRangesChange=h,this.foldingRangesLimit=g,this.fallbackRangeProvider=p,this.id=Z2,this.disposables=new d,p)this.disposables.add(p);for(let m of n)if(typeof m.onDidChange==="function")this.disposables.add(m.onDidChange(h))}compute(u){return X2(this.providers,this.editorModel,u).then((n)=>{if(this.editorModel.isDisposed())return null;if(n)return Y2(n,this.foldingRangesLimit);return this.fallbackRangeProvider?.compute(u)??null})}dispose(){this.disposables.dispose()}}function X2(u,n,h){let g=null,p=u.map((m,v)=>Promise.resolve(m.provideFoldingRanges(n,G2,h)).then((S)=>{if(h.isCancellationRequested)return;if(Array.isArray(S)){if(!Array.isArray(g))g=[];let C=n.getLineCount();for(let x of S)if(x.start>0&&x.end>x.start&&x.end<=C)g.push({start:x.start,end:x.end,rank:v,kind:x.kind})}},yt));return Promise.all(p).then((m)=>g)}class Bx{constructor(u){this._startIndexes=[],this._endIndexes=[],this._nestingLevels=[],this._nestingLevelCounts=[],this._types=[],this._length=0,this._foldingRangesLimit=u}add(u,n,h,g){if(u>Zd||n>Zd)return;let p=this._length;if(this._startIndexes[p]=u,this._endIndexes[p]=n,this._nestingLevels[p]=g,this._types[p]=h,this._length++,g<30)this._nestingLevelCounts[g]=(this._nestingLevelCounts[g]||0)+1}toIndentRanges(){let u=this._foldingRangesLimit.limit;if(this._length<=u){this._foldingRangesLimit.update(this._length,!1);let n=new Uint32Array(this._length),h=new Uint32Array(this._length);for(let g=0;g<this._length;g++)n[g]=this._startIndexes[g],h[g]=this._endIndexes[g];return new yi(n,h,this._types)}else{this._foldingRangesLimit.update(this._length,u);let n=0,h=this._nestingLevelCounts.length;for(let v=0;v<this._nestingLevelCounts.length;v++){let S=this._nestingLevelCounts[v];if(S){if(S+n>u){h=v;break}n+=S}}let g=new Uint32Array(u),p=new Uint32Array(u),m=[];for(let v=0,S=0;v<this._length;v++){let C=this._nestingLevels[v];if(C<h||C===h&&n++<u)g[S]=this._startIndexes[v],p[S]=this._endIndexes[v],m[S]=this._types[v],S++}return new yi(g,p,m)}}}function Y2(u,n){let h=u.sort((v,S)=>{let C=v.start-S.start;if(C===0)C=v.rank-S.rank;return C}),g=new Bx(n),p=void 0,m=[];for(let v of h)if(!p)p=v,g.add(v.start,v.end,v.kind&&v.kind.value,m.length);else if(v.start>p.start)if(v.end<=p.end)m.push(p),p=v,g.add(v.start,v.end,v.kind&&v.kind.value,m.length);else{if(v.start>p.end){do p=m.pop();while(p&&v.start>p.end);if(p)m.push(p);p=v}g.add(v.start,v.end,v.kind&&v.kind.value,m.length)}return g.toIndentRanges()}var J2=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Kl=function(u,n){return function(h,g){n(h,g,u)}},Ul,Qt=new M("foldingEnabled",!1),cr=class u extends i{static{Ul=this}static{this.ID="editor.contrib.folding"}static get(n){return n.getContribution(Ul.ID)}static getFoldingRangeProviders(n,h){let g=n.foldingRangeProvider.ordered(h);return Ul._foldingRangeSelector?.(g,h)??g}constructor(n,h,g,p,m,v){super();this.contextKeyService=h,this.languageConfigurationService=g,this.languageFeaturesService=v,this.localToDispose=this._register(new d),this.editor=n,this._foldingLimitReporter=this._register(new qg(n));let S=this.editor.getOptions();this._isEnabled=S.get(52),this._useFoldingProviders=S.get(53)!=="indentation",this._unfoldOnClickAfterEndOfLine=S.get(57),this._restoringViewState=!1,this._currentModelHasFoldedImports=!1,this._foldingImportsByDefault=S.get(55),this.updateDebounceInfo=m.for(v.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 Zi(n),this.foldingDecorationProvider.showFoldingControls=S.get(126),this.foldingDecorationProvider.showFoldingHighlights=S.get(54),this.foldingEnabled=Qt.bindTo(this.contextKeyService),this.foldingEnabled.set(this._isEnabled),this._register(this.editor.onDidChangeModel(()=>this.onModelChanged())),this._register(this.editor.onDidChangeConfiguration((C)=>{if(C.hasChanged(52))this._isEnabled=this.editor.getOptions().get(52),this.foldingEnabled.set(this._isEnabled),this.onModelChanged();if(C.hasChanged(56))this.onModelChanged();if(C.hasChanged(126)||C.hasChanged(54)){let x=this.editor.getOptions();this.foldingDecorationProvider.showFoldingControls=x.get(126),this.foldingDecorationProvider.showFoldingHighlights=x.get(54),this.triggerFoldingModelChanged()}if(C.hasChanged(53))this._useFoldingProviders=this.editor.getOptions().get(53)!=="indentation",this.onFoldingStrategyChanged();if(C.hasChanged(57))this._unfoldOnClickAfterEndOfLine=this.editor.getOptions().get(57);if(C.hasChanged(55))this._foldingImportsByDefault=this.editor.getOptions().get(55)})),this.onModelChanged()}saveViewState(){let n=this.editor.getModel();if(!n||!this._isEnabled||n.isTooLargeForTokenization())return{};if(this.foldingModel){let h=this.foldingModel.getMemento(),g=this.rangeProvider?this.rangeProvider.id:void 0;return{collapsedRegions:h,lineCount:n.getLineCount(),provider:g,foldedImports:this._currentModelHasFoldedImports}}return}restoreViewState(n){let h=this.editor.getModel();if(!h||!this._isEnabled||h.isTooLargeForTokenization()||!this.hiddenRangeModel)return;if(!n)return;if(this._currentModelHasFoldedImports=!!n.foldedImports,n.collapsedRegions&&n.collapsedRegions.length>0&&this.foldingModel){this._restoringViewState=!0;try{this.foldingModel.applyMemento(n.collapsedRegions)}finally{this._restoringViewState=!1}}}onModelChanged(){this.localToDispose.clear();let n=this.editor.getModel();if(!this._isEnabled||!n||n.isTooLargeForTokenization())return;this._currentModelHasFoldedImports=!1,this.foldingModel=new q_(n,this.foldingDecorationProvider),this.localToDispose.add(this.foldingModel),this.hiddenRangeModel=new G_(this.foldingModel),this.localToDispose.add(this.hiddenRangeModel),this.localToDispose.add(this.hiddenRangeModel.onDidChange((h)=>this.onHiddenRangesChanges(h))),this.updateScheduler=new qi(this.updateDebounceInfo.get(n)),this.localToDispose.add(this.updateScheduler),this.cursorChangedScheduler=new Ce(()=>this.revealCursor(),200),this.localToDispose.add(this.cursorChangedScheduler),this.localToDispose.add(this.languageFeaturesService.foldingRangeProvider.onDidChange(()=>this.onFoldingStrategyChanged())),this.localToDispose.add(this.editor.onDidChangeModelLanguageConfiguration(()=>this.onFoldingStrategyChanged())),this.localToDispose.add(this.editor.onDidChangeModelContent((h)=>this.onDidChangeModelContent(h))),this.localToDispose.add(this.editor.onDidChangeCursorPosition(()=>this.onCursorPositionChanged())),this.localToDispose.add(this.editor.onMouseDown((h)=>this.onEditorMouseDown(h))),this.localToDispose.add(this.editor.onMouseUp((h)=>this.onEditorMouseUp(h))),this.localToDispose.add({dispose:()=>{if(this.foldingRegionPromise)this.foldingRegionPromise.cancel(),this.foldingRegionPromise=null;this.updateScheduler?.cancel(),this.updateScheduler=null,this.foldingModel=null,this.foldingModelPromise=null,this.hiddenRangeModel=null,this.cursorChangedScheduler=null,this.rangeProvider?.dispose(),this.rangeProvider=null}}),this.triggerFoldingModelChanged()}onFoldingStrategyChanged(){this.rangeProvider?.dispose(),this.rangeProvider=null,this.triggerFoldingModelChanged()}getRangeProvider(n){if(this.rangeProvider)return this.rangeProvider;let h=new Xd(n,this.languageConfigurationService,this._foldingLimitReporter);if(this.rangeProvider=h,this._useFoldingProviders&&this.foldingModel){let g=Ul.getFoldingRangeProviders(this.languageFeaturesService,n);if(g.length>0)this.rangeProvider=new Jd(n,g,()=>this.triggerFoldingModelChanged(),this._foldingLimitReporter,h)}return this.rangeProvider}getFoldingModel(){return this.foldingModelPromise}onDidChangeModelContent(n){this.hiddenRangeModel?.notifyChangeModelContent(n),this.triggerFoldingModelChanged()}triggerFoldingModelChanged(){if(this.updateScheduler){if(this.foldingRegionPromise)this.foldingRegionPromise.cancel(),this.foldingRegionPromise=null;this.foldingModelPromise=this.updateScheduler.trigger(()=>{let n=this.foldingModel;if(!n)return null;let h=new un,g=this.getRangeProvider(n.textModel),p=this.foldingRegionPromise=Yt((m)=>g.compute(m));return p.then((m)=>{if(m&&p===this.foldingRegionPromise){let v;if(this._foldingImportsByDefault&&!this._currentModelHasFoldedImports){let x=m.setCollapsedAllOfType(ms.Imports.value,!0);if(x)v=os.capture(this.editor),this._currentModelHasFoldedImports=x}let S=this.editor.getSelections();n.update(m,Q2(S)),v?.restore(this.editor);let C=this.updateDebounceInfo.update(n.textModel,h.elapsed());if(this.updateScheduler)this.updateScheduler.defaultDelay=C}return n})}).then(void 0,(n)=>(X(n),null))}}onHiddenRangesChanges(n){if(this.hiddenRangeModel&&n.length&&!this._restoringViewState){let h=this.editor.getSelections();if(h){if(this.hiddenRangeModel.adjustSelections(h))this.editor.setSelections(h)}}this.editor.setHiddenAreas(n,this)}onCursorPositionChanged(){if(this.hiddenRangeModel&&this.hiddenRangeModel.hasRanges())this.cursorChangedScheduler.schedule()}revealCursor(){let n=this.getFoldingModel();if(!n)return;n.then((h)=>{if(h){let g=this.editor.getSelections();if(g&&g.length>0){let p=[];for(let m of g){let v=m.selectionStartLineNumber;if(this.hiddenRangeModel&&this.hiddenRangeModel.isHidden(v))p.push(...h.getAllRegionsAtLine(v,(S)=>S.isCollapsed&&v>S.startLineNumber))}if(p.length)h.toggleCollapseState(p),this.reveal(g[0].getPosition())}}}).then(void 0,X)}onEditorMouseDown(n){if(this.mouseDownInfo=null,!this.hiddenRangeModel||!n.target||!n.target.range)return;if(!n.event.leftButton&&!n.event.middleButton)return;let h=n.target.range,g=!1;switch(n.target.type){case 4:{let p=n.target.detail,m=n.target.element.offsetLeft;if(p.offsetX-m<4)return;g=!0;break}case 7:{if(this._unfoldOnClickAfterEndOfLine&&this.hiddenRangeModel.hasRanges()){if(!n.target.detail.isAfterLines)break}return}case 6:{if(this.hiddenRangeModel.hasRanges()){let p=this.editor.getModel();if(p&&h.startColumn===p.getLineMaxColumn(h.startLineNumber))break}return}default:return}this.mouseDownInfo={lineNumber:h.startLineNumber,iconClicked:g}}onEditorMouseUp(n){let h=this.foldingModel;if(!h||!this.mouseDownInfo||!n.target)return;let g=this.mouseDownInfo.lineNumber,p=this.mouseDownInfo.iconClicked,m=n.target.range;if(!m||m.startLineNumber!==g)return;if(p){if(n.target.type!==4)return}else{let S=this.editor.getModel();if(!S||m.startColumn!==S.getLineMaxColumn(g))return}let v=h.getRegionAtLine(g);if(v&&v.startLineNumber===g){let S=v.isCollapsed;if(p||S){let C=n.event.altKey,x=[];if(C){let T=(Z)=>!Z.containedBy(v)&&!v.containedBy(Z),R=h.getRegionsInside(null,T);for(let Z of R)if(Z.isCollapsed)x.push(Z);if(x.length===0)x=R}else{let T=n.event.middleButton||n.event.shiftKey;if(T){for(let R of h.getRegionsInside(v))if(R.isCollapsed===S)x.push(R)}if(S||!T||x.length===0)x.push(v)}h.toggleCollapseState(x),this.reveal({lineNumber:g,column:1})}}}reveal(n){this.editor.revealPositionInCenterIfOutsideViewport(n,0)}};cr=Ul=J2([Kl(1,G),Kl(2,ut),Kl(3,wt),Kl(4,uo),Kl(5,z)],cr);class qg extends i{constructor(u){super();this.editor=u,this._onDidChange=this._register(new o),this._computed=0,this._limited=!1}get limit(){return this.editor.getOptions().get(56)}update(u,n){if(u!==this._computed||n!==this._limited)this._computed=u,this._limited=n,this._onDidChange.fire()}}class di extends U{runEditorCommand(u,n,h){let g=u.get(ut),p=cr.get(n);if(!p)return;let m=p.getFoldingModel();if(m)return this.reportTelemetry(u,n),m.then((v)=>{if(v){this.invoke(p,v,n,h,g);let S=n.getSelection();if(S)p.reveal(S.getStartPosition())}})}getSelectedLines(u){let n=u.getSelections();return n?n.map((h)=>h.startLineNumber):[]}getLineNumbers(u,n){if(u&&u.selectionLines)return u.selectionLines.map((h)=>h+1);return this.getSelectedLines(n)}run(u,n){}}function Q2(u){if(!u||u.length===0)return{startsInside:()=>!1};return{startsInside(n,h){for(let g of u){let p=g.startLineNumber;if(p>=n&&p<=h)return!0}return!1}}}function Vx(u){if(!ro(u)){if(!dn(u))return!1;let n=u;if(!ro(n.levels)&&!Ds(n.levels))return!1;if(!ro(n.direction)&&!$n(n.direction))return!1;if(!ro(n.selectionLines)&&(!Array.isArray(n.selectionLines)||!n.selectionLines.every(Ds)))return!1}return!0}class zx extends di{constructor(){super({id:"editor.unfold",label:b(1040,"Unfold"),precondition:Qt,kbOpts:{kbExpr:r.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:Vx,schema:{type:"object",properties:{levels:{type:"number",default:1},direction:{type:"string",enum:["up","down"],default:"down"},selectionLines:{type:"array",items:{type:"number"}}}}}]}})}invoke(u,n,h,g){let p=g&&g.levels||1,m=this.getLineNumbers(g,h);if(g&&g.direction==="up")j_(n,!1,p,m);else Ma(n,!1,p,m)}}class Kx extends di{constructor(){super({id:"editor.unfoldRecursively",label:b(1041,"Unfold Recursively"),precondition:Qt,kbOpts:{kbExpr:r.editorTextFocus,primary:hn(2089,2142),weight:100}})}invoke(u,n,h,g){Ma(n,!1,Number.MAX_VALUE,this.getSelectedLines(h))}}class Ux extends di{constructor(){super({id:"editor.fold",label:b(1042,"Fold"),precondition:Qt,kbOpts:{kbExpr:r.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:Vx,schema:{type:"object",properties:{levels:{type:"number"},direction:{type:"string",enum:["up","down"]},selectionLines:{type:"array",items:{type:"number"}}}}}]}})}invoke(u,n,h,g){let p=this.getLineNumbers(g,h),m=g&&g.levels,v=g&&g.direction;if(typeof m!=="number"&&typeof v!=="string")Rx(n,!0,p);else if(v==="up")j_(n,!0,m||1,p);else Ma(n,!0,m||1,p)}}class qx extends di{constructor(){super({id:"editor.toggleFold",label:b(1043,"Toggle Fold"),precondition:Qt,kbOpts:{kbExpr:r.editorTextFocus,primary:hn(2089,2090),weight:100}})}invoke(u,n,h){let g=this.getSelectedLines(h);Bl(n,1,g)}}class jx extends di{constructor(){super({id:"editor.foldRecursively",label:b(1044,"Fold Recursively"),precondition:Qt,kbOpts:{kbExpr:r.editorTextFocus,primary:hn(2089,2140),weight:100}})}invoke(u,n,h){let g=this.getSelectedLines(h);Ma(n,!0,Number.MAX_VALUE,g)}}class $x extends di{constructor(){super({id:"editor.toggleFoldRecursively",label:b(1045,"Toggle Fold Recursively"),precondition:Qt,kbOpts:{kbExpr:r.editorTextFocus,primary:hn(2089,3114),weight:100}})}invoke(u,n,h){let g=this.getSelectedLines(h);Bl(n,Number.MAX_VALUE,g)}}class Gx extends di{constructor(){super({id:"editor.foldAllBlockComments",label:b(1046,"Fold All Block Comments"),precondition:Qt,kbOpts:{kbExpr:r.editorTextFocus,primary:hn(2089,2138),weight:100}})}invoke(u,n,h,g,p){if(n.regions.hasTypes())Kg(n,ms.Comment.value,!0);else{let m=h.getModel();if(!m)return;let v=p.getLanguageConfiguration(m.getLanguageId()).comments;if(v&&v.blockCommentStartToken){let S=new RegExp("^\\s*"+Ui(v.blockCommentStartToken));zg(n,S,!0)}}}}class Zx extends di{constructor(){super({id:"editor.foldAllMarkerRegions",label:b(1047,"Fold All Regions"),precondition:Qt,kbOpts:{kbExpr:r.editorTextFocus,primary:hn(2089,2077),weight:100}})}invoke(u,n,h,g,p){if(n.regions.hasTypes())Kg(n,ms.Region.value,!0);else{let m=h.getModel();if(!m)return;let v=p.getLanguageConfiguration(m.getLanguageId()).foldingRules;if(v&&v.markers&&v.markers.start){let S=new RegExp(v.markers.start);zg(n,S,!0)}}}}class Xx extends di{constructor(){super({id:"editor.unfoldAllMarkerRegions",label:b(1048,"Unfold All Regions"),precondition:Qt,kbOpts:{kbExpr:r.editorTextFocus,primary:hn(2089,2078),weight:100}})}invoke(u,n,h,g,p){if(n.regions.hasTypes())Kg(n,ms.Region.value,!1);else{let m=h.getModel();if(!m)return;let v=p.getLanguageConfiguration(m.getLanguageId()).foldingRules;if(v&&v.markers&&v.markers.start){let S=new RegExp(v.markers.start);zg(n,S,!1)}}}}class Yx extends di{constructor(){super({id:"editor.foldAllExcept",label:b(1049,"Fold All Except Selected"),precondition:Qt,kbOpts:{kbExpr:r.editorTextFocus,primary:hn(2089,2136),weight:100}})}invoke(u,n,h){let g=this.getSelectedLines(h);$_(n,!0,g)}}class Jx extends di{constructor(){super({id:"editor.unfoldAllExcept",label:b(1050,"Unfold All Except Selected"),precondition:Qt,kbOpts:{kbExpr:r.editorTextFocus,primary:hn(2089,2134),weight:100}})}invoke(u,n,h){let g=this.getSelectedLines(h);$_(n,!1,g)}}class Qx extends di{constructor(){super({id:"editor.foldAll",label:b(1051,"Fold All"),precondition:Qt,kbOpts:{kbExpr:r.editorTextFocus,primary:hn(2089,2069),weight:100}})}invoke(u,n,h){Ma(n,!0)}}class eI extends di{constructor(){super({id:"editor.unfoldAll",label:b(1052,"Unfold All"),precondition:Qt,kbOpts:{kbExpr:r.editorTextFocus,primary:hn(2089,2088),weight:100}})}invoke(u,n,h){Ma(n,!1)}}class ql extends di{static{this.ID_PREFIX="editor.foldLevel"}static{this.ID=(u)=>ql.ID_PREFIX+u}getFoldingLevel(){return parseInt(this.id.substr(ql.ID_PREFIX.length))}invoke(u,n,h){Nx(n,this.getFoldingLevel(),!0,this.getSelectedLines(h))}}class tI extends di{constructor(){super({id:"editor.gotoParentFold",label:b(1053,"Go to Parent Fold"),precondition:Qt,kbOpts:{kbExpr:r.editorTextFocus,weight:100}})}invoke(u,n,h){let g=this.getSelectedLines(h);if(g.length>0){let p=Mx(g[0],n);if(p!==null)h.setSelection({startLineNumber:p,startColumn:1,endLineNumber:p,endColumn:1})}}}class iI extends di{constructor(){super({id:"editor.gotoPreviousFold",label:b(1054,"Go to Previous Folding Range"),precondition:Qt,kbOpts:{kbExpr:r.editorTextFocus,weight:100}})}invoke(u,n,h){let g=this.getSelectedLines(h);if(g.length>0){let p=Ox(g[0],n);if(p!==null)h.setSelection({startLineNumber:p,startColumn:1,endLineNumber:p,endColumn:1})}}}class oI extends di{constructor(){super({id:"editor.gotoNextFold",label:b(1055,"Go to Next Folding Range"),precondition:Qt,kbOpts:{kbExpr:r.editorTextFocus,weight:100}})}invoke(u,n,h){let g=this.getSelectedLines(h);if(g.length>0){let p=Px(g[0],n);if(p!==null)h.setSelection({startLineNumber:p,startColumn:1,endLineNumber:p,endColumn:1})}}}class nI extends di{constructor(){super({id:"editor.createFoldingRangeFromSelection",label:b(1056,"Create Folding Range from Selection"),precondition:Qt,kbOpts:{kbExpr:r.editorTextFocus,primary:hn(2089,2135),weight:100}})}invoke(u,n,h){let g=[],p=h.getSelections();if(p){for(let m of p){let v=m.endLineNumber;if(m.endColumn===1)--v;if(v>m.startLineNumber)g.push({startLineNumber:m.startLineNumber,endLineNumber:v,type:void 0,isCollapsed:!0,source:1}),h.setSelection({startLineNumber:m.startLineNumber,startColumn:1,endLineNumber:m.startLineNumber,endColumn:1})}if(g.length>0){g.sort((v,S)=>v.startLineNumber-S.startLineNumber);let m=yi.sanitizeAndMerge(n.regions,g,h.getModel()?.getLineCount());n.updatePost(yi.fromFoldRanges(m))}}}}class rI extends di{constructor(){super({id:"editor.removeManualFoldingRanges",label:b(1057,"Remove Manual Folding Ranges"),precondition:Qt,kbOpts:{kbExpr:r.editorTextFocus,primary:hn(2089,2137),weight:100}})}invoke(u,n,h){let g=h.getSelections();if(g)n.removeManualRanges(g),u.triggerFoldingModelChanged()}}class sI extends di{constructor(){super({id:"editor.toggleImportFold",label:b(1058,"Toggle Import Fold"),precondition:Qt,kbOpts:{kbExpr:r.editorTextFocus,weight:100}})}async invoke(u,n){let h=[],g=n.regions;for(let p=g.length-1;p>=0;p--)if(g.getType(p)===ms.Imports.value)h.push(g.toRegion(p));n.toggleCollapseState(h),u.triggerFoldingModelChanged()}}fe(cr.ID,cr,0);O(zx);O(Kx);O(Ux);O(jx);O($x);O(Qx);O(eI);O(Gx);O(Zx);O(Xx);O(Yx);O(Jx);O(qx);O(tI);O(iI);O(oI);O(nI);O(rI);O(sI);for(let u=1;u<=7;u++)$M(new ql({id:ql.ID(u),label:b(1059,"Fold Level {0}",u),precondition:Qt,kbOpts:{kbExpr:r.editorTextFocus,primary:hn(2089,2048|21+u),weight:100}}));Te.registerCommand("_executeFoldingRangeProvider",async function(u,...n){let[h]=n;if(!(h instanceof q))throw wo();let g=u.get(z),p=u.get(Et).getModel(h);if(!p)throw wo();let m=u.get(re);if(!m.getValue("editor.folding",{resource:h}))return[];let v=u.get(ut),S=m.getValue("editor.foldingStrategy",{resource:h}),C={get limit(){return m.getValue("editor.foldingMaximumRegions",{resource:h})},update:(Y,Q)=>{}},x=new Xd(p,v,C),T=x;if(S!=="indentation"){let Y=cr.getFoldingRangeProviders(g,p);if(Y.length)T=new Jd(p,Y,()=>{},C,x)}let R=await T.compute(ye.None),Z=[];try{if(R)for(let Y=0;Y<R.length;Y++){let Q=R.getType(Y);Z.push({start:R.getStartLineNumber(Y),end:R.getEndLineNumber(Y),kind:Q?ms.fromValue(Q):void 0})}return Z}finally{T.dispose()}});var aI=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},jg=function(u,n){return function(h,g){n(h,g,u)}};class X_{constructor(u,n,h){this.marker=u,this.index=n,this.total=h}}var Y_=class u{constructor(n,h,g){if(this._markerService=h,this._configService=g,this._onDidChange=new o,this.onDidChange=this._onDidChange.event,this._dispoables=new d,this._markers=[],this._nextIdx=-1,q.isUri(n))this._resourceFilter=(S)=>S.toString()===n.toString();else if(n)this._resourceFilter=n;let p=this._configService.getValue("problems.sortOrder"),m=(S,C)=>{let x=af(S.resource.toString(),C.resource.toString());if(x===0)if(p==="position")x=t.compareRangesUsingStarts(S,C)||an.compare(S.severity,C.severity);else x=an.compare(S.severity,C.severity)||t.compareRangesUsingStarts(S,C);return x},v=()=>{let S=this._markerService.read({resource:q.isUri(n)?n:void 0,severities:an.Error|an.Warning|an.Info});if(typeof n==="function")S=S.filter((C)=>this._resourceFilter(C.resource));if(S.sort(m),ot(S,this._markers,(C,x)=>C.resource.toString()===x.resource.toString()&&C.startLineNumber===x.startLineNumber&&C.startColumn===x.startColumn&&C.endLineNumber===x.endLineNumber&&C.endColumn===x.endColumn&&C.severity===x.severity&&C.message===x.message))return!1;return this._markers=S,!0};v(),this._dispoables.add(h.onMarkerChanged((S)=>{if(!this._resourceFilter||S.some((C)=>this._resourceFilter(C))){if(v())this._nextIdx=-1,this._onDidChange.fire()}}))}dispose(){this._dispoables.dispose(),this._onDidChange.dispose()}matches(n){if(!this._resourceFilter&&!n)return!0;if(!this._resourceFilter||!n)return!1;return this._resourceFilter(n)}get selected(){let n=this._markers[this._nextIdx];return n&&new X_(n,this._nextIdx+1,this._markers.length)}_initIdx(n,h,g){let p=this._markers.findIndex((m)=>bs(m.resource,n.uri));if(p<0){if(p=sf(this._markers.length,(m)=>af(this._markers[m].resource.toString(),n.uri.toString())),p<0)p=~p;if(g)this._nextIdx=p;else this._nextIdx=(this._markers.length+p-1)%this._markers.length}else{let m=!1,v=!1;for(let S=p;S<this._markers.length;S++){let C=t.lift(this._markers[S]);if(C.isEmpty()){let x=n.getWordAtPosition(C.getStartPosition());if(x)C=new t(C.startLineNumber,x.startColumn,C.startLineNumber,x.endColumn)}if(h&&(C.containsPosition(h)||h.isBeforeOrEqual(C.getStartPosition()))){this._nextIdx=S,m=!0,v=!C.containsPosition(h);break}if(this._markers[S].resource.toString()!==n.uri.toString())break}if(!m)this._nextIdx=g?0:this._markers.length-1;else if(v&&!g)this._nextIdx-=1}if(this._nextIdx<0)this._nextIdx=this._markers.length-1}resetIndex(){this._nextIdx=-1}move(n,h,g){if(this._markers.length===0)return!1;let p=this._nextIdx;if(this._nextIdx===-1)this._initIdx(h,g,n);else if(n)this._nextIdx=(this._nextIdx+1)%this._markers.length;else if(!n)this._nextIdx=(this._nextIdx-1+this._markers.length)%this._markers.length;if(p!==this._nextIdx)return!0;return!1}find(n,h){let g=this._markers.findIndex((p)=>p.resource.toString()===n.toString());if(g<0)return;for(;g<this._markers.length;g++)if(t.containsPosition(this._markers[g],h))return new X_(this._markers[g],g+1,this._markers.length);return}};Y_=aI([jg(1,Br),jg(2,re)],Y_);var Q_=ie("IMarkerNavigationService"),J_=class u{constructor(n,h){this._markerService=n,this._configService=h,this._provider=new Hn}getMarkerList(n){for(let h of this._provider){let g=h.getMarkerList(n);if(g)return g}return new Y_(n,this._markerService,this._configService)}};J_=aI([jg(0,Br),jg(1,re)],J_);xe(Q_,J_,1);var eT=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},lr=function(u,n){return function(h,g){n(h,g,u)}},Ni=class u extends xc{constructor(n,h,g,p,m,v,S,C,x,T,R,Z,Y,Q){super(n,{...p.getRawOptions(),overflowWidgetsDomNode:p.getOverflowWidgetsDomNode()},g,m,v,S,C,x,T,R,Z,Y,Q);this._parentEditor=p,this._overwriteOptions=h,super.updateOptions(this._overwriteOptions),this._register(p.onDidChangeConfiguration((te)=>this._onParentConfigurationChanged(te)))}getParentEditor(){return this._parentEditor}_onParentConfigurationChanged(n){super.updateOptions(this._parentEditor.getRawOptions()),super.updateOptions(this._overwriteOptions)}updateOptions(n){Xm(this._overwriteOptions,n,!0),super.updateOptions(this._overwriteOptions)}};Ni=eT([lr(4,A),lr(5,Ee),lr(6,Ue),lr(7,G),lr(8,Be),lr(9,wt),lr(10,sn),lr(11,ut),lr(12,z),lr(13,Fr)],Ni);function $g(u){let n=u.get(Ee).getFocusedCodeEditor();if(n instanceof Ni)return n.getParentEditor();return n}var dI=new y(new D(0,122,204)),tT={showArrow:!0,showFrame:!0,className:"",frameColor:dI,arrowColor:dI,keepEditorSelection:!1},iT="vs.editor.contrib.zoneWidget";class cI{constructor(u,n,h,g,p,m,v,S){this.id="",this.domNode=u,this.afterLineNumber=n,this.afterColumn=h,this.heightInLines=g,this.showInHiddenAreas=v,this.ordinal=S,this._onDomNodeTop=p,this._onComputedHeight=m}onDomNodeTop(u){this._onDomNodeTop(u)}onComputedHeight(u){this._onComputedHeight(u)}}class lI{constructor(u,n){this._id=u,this._domNode=n}getId(){return this._id}getDomNode(){return this._domNode}getPosition(){return null}}class eb{static{this._IdGenerator=new dy(".arrow-decoration-")}constructor(u){this._editor=u,this._ruleName=eb._IdGenerator.nextId(),this._color=null,this._height=-1,this._decorations=this._editor.createDecorationsCollection()}dispose(){this.hide(),b1(this._ruleName)}set color(u){if(this._color!==u)this._color=u,this._updateStyle()}set height(u){if(this._height!==u)this._height=u,this._updateStyle()}_updateStyle(){b1(this._ruleName),ey(`.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(u){if(u.column===1)u={lineNumber:u.lineNumber,column:2};this._decorations.set([{range:t.fromPositions(u),options:{description:"zone-widget-arrow",className:this._ruleName,stickiness:1}}])}hide(){this._decorations.clear()}}class tb{constructor(u,n={}){if(this._arrow=null,this._overlayWidget=null,this._resizeSash=null,this._isSashResizeHeight=!1,this._viewZone=null,this._disposables=new d,this.container=null,this._isShowing=!1,this.editor=u,this._positionMarkerId=this.editor.createDecorationsCollection(),this.options=Fa(n),Xm(this.options,tT,!1),this.domNode=document.createElement("div"),!this.options.isAccessible)this.domNode.setAttribute("aria-hidden","true"),this.domNode.setAttribute("role","presentation");this._disposables.add(this.editor.onDidLayoutChange((h)=>{let g=this._getWidth(h);this.domNode.style.width=g+"px",this.domNode.style.left=this._getLeft(h)+"px",this._onWidth(g)}))}dispose(){if(this._overlayWidget)this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null;if(this._viewZone)this.editor.changeViewZones((u)=>{if(this._viewZone)u.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 eb(this.editor),this._disposables.add(this._arrow);this._fillContainer(this.container),this._initSash(),this._applyStyles()}style(u){if(u.frameColor)this.options.frameColor=u.frameColor;if(u.arrowColor)this.options.arrowColor=u.arrowColor;this._applyStyles()}_applyStyles(){if(this.container&&this.options.frameColor){let u=this.options.frameColor.toString();this.container.style.borderTopColor=u,this.container.style.borderBottomColor=u}if(this._arrow&&this.options.arrowColor){let u=this.options.arrowColor.toString();this._arrow.color=u}}_getWidth(u){return u.width-u.minimap.minimapWidth-u.verticalScrollbarWidth}_getLeft(u){if(u.minimap.minimapWidth>0&&u.minimap.minimapLeft===0)return u.minimap.minimapWidth;return 0}_onViewZoneTop(u){this.domNode.style.top=u+"px"}_onViewZoneHeight(u){if(this.domNode.style.height=`${u}px`,this.container){let n=u-this._decoratingElementsHeight();this.container.style.height=`${n}px`;let h=this.editor.getLayoutInfo();this._doLayout(n,this._getWidth(h))}this._resizeSash?.layout()}get position(){let u=this._positionMarkerId.getRange(0);if(!u)return;return u.getStartPosition()}show(u,n){let h=t.isIRange(u)?t.lift(u):t.fromPositions(u);this._isShowing=!0,this._showImpl(h,n),this._isShowing=!1,this._positionMarkerId.set([{range:h,options:de.EMPTY}])}hide(){if(this._viewZone)this.editor.changeViewZones((u)=>{if(this._viewZone)u.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 u=this.editor.getOption(75),n=0;if(this.options.showArrow){let h=Math.round(u/3);n+=2*h}if(this.options.showFrame){let h=this.options.frameWidth??Math.round(u/9);n+=2*h}return n}_getMaximumHeightInLines(){return Math.max(12,this.editor.getLayoutInfo().height/this.editor.getOption(75)*0.8)}_showImpl(u,n){let h=u.getStartPosition(),g=this.editor.getLayoutInfo(),p=this._getWidth(g);this.domNode.style.width=`${p}px`,this.domNode.style.left=this._getLeft(g)+"px";let m=document.createElement("div");m.style.overflow="hidden";let v=this.editor.getOption(75),S=this._getMaximumHeightInLines();if(S!==void 0)n=Math.min(n,S);let C=0,x=0;if(this._arrow&&this.options.showArrow)C=Math.round(v/3),this._arrow.height=C,this._arrow.show(h);if(this.options.showFrame)x=Math.round(v/9);if(this.editor.changeViewZones((Z)=>{if(this._viewZone)Z.removeZone(this._viewZone.id);if(this._overlayWidget)this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null;this.domNode.style.top="-1000px",this._viewZone=new cI(m,h.lineNumber,h.column,n,(Y)=>this._onViewZoneTop(Y),(Y)=>this._onViewZoneHeight(Y),this.options.showInHiddenAreas,this.options.ordinal),this._viewZone.id=Z.addZone(this._viewZone),this._overlayWidget=new lI(iT+this._viewZone.id,this.domNode),this.editor.addOverlayWidget(this._overlayWidget)}),this._updateSashEnablement(),this.container&&this.options.showFrame){let Z=this.options.frameWidth?this.options.frameWidth:x;this.container.style.borderTopWidth=Z+"px",this.container.style.borderBottomWidth=Z+"px"}let T=n*v-this._decoratingElementsHeight();if(this.container)this.container.style.top=C+"px",this.container.style.height=T+"px",this.container.style.overflow="hidden";if(this._doLayout(T,p),!this.options.keepEditorSelection)this.editor.setSelection(u);let R=this.editor.getModel();if(R){let Z=R.validateRange(new t(u.startLineNumber,1,u.endLineNumber+1,1));this.revealRange(Z,Z.startLineNumber===R.getLineCount())}}revealRange(u,n){if(n)this.editor.revealLineNearTop(u.endLineNumber,0);else this.editor.revealRange(u,0)}setCssClass(u,n){if(!this.container)return;if(n)this.container.classList.remove(n);this.container.classList.add(u)}_onWidth(u){}_doLayout(u,n){}_relayout(u,n){let h=this._getMaximumHeightInLines(),g=n&&h!==void 0?Math.min(h,u):u;if(this._viewZone&&this._viewZone.heightInLines!==g)this.editor.changeViewZones((p)=>{if(this._viewZone)this._viewZone.heightInLines=g,p.layoutZone(this._viewZone.id)}),this._updateSashEnablement()}_initSash(){if(this._resizeSash)return;if(this._resizeSash=this._disposables.add(new go(this.domNode,this,{orientation:1})),!this.options.isResizeable)this._resizeSash.state=0;let u;this._disposables.add(this._resizeSash.onDidStart((n)=>{if(this._viewZone)u={startY:n.startY,heightInLines:this._viewZone.heightInLines,...this._getResizeBounds()}})),this._disposables.add(this._resizeSash.onDidEnd(()=>{u=void 0})),this._disposables.add(this._resizeSash.onDidChange((n)=>{if(u){let h=(n.currentY-u.startY)/this.editor.getOption(75),g=h<0?Math.ceil(h):Math.floor(h),p=u.heightInLines+g;if(p>u.minLines&&p<u.maxLines)this._isSashResizeHeight=!0,this._relayout(p)}}))}_updateSashEnablement(){if(this._resizeSash){let{minLines:u,maxLines:n}=this._getResizeBounds();this._resizeSash.state=u===n?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 u=this.editor.getLayoutInfo();return u.width-u.minimap.minimapWidth}}var hI=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},uI=function(u,n){return function(h,g){n(h,g,u)}},ib=ie("IPeekViewService");xe(ib,class{constructor(){this._widgets=new Map}addExclusiveWidget(u,n){let h=this._widgets.get(u);if(h)h.listener.dispose(),h.widget.dispose();let g=()=>{let p=this._widgets.get(u);if(p&&p.widget===n)p.listener.dispose(),this._widgets.delete(u)};this._widgets.set(u,{widget:n,listener:n.onDidClose(g)})}},1);var ui;(function(u){u.inPeekEditor=new M("inReferenceSearchEditor",!0,e(1382,"Whether the current code editor is embedded inside peek")),u.notInPeekEditor=u.inPeekEditor.toNegated()})(ui||(ui={}));var Gg=class u{static{this.ID="editor.contrib.referenceController"}constructor(n,h){if(n instanceof Ni)ui.inPeekEditor.bindTo(h)}dispose(){}};Gg=hI([uI(1,G)],Gg);fe(Gg.ID,Gg,0);var oT={headerBackgroundColor:y.white,primaryHeadingColor:y.fromHex("#333333"),secondaryHeadingColor:y.fromHex("#6c6c6cb3")},Qd=class u extends tb{constructor(n,h,g){super(n,h);this.instantiationService=g,this._onDidClose=new o,this.onDidClose=this._onDidClose.event,Xm(this.options,oT,!1);let p=ct(this.editor);p.openedPeekWidgets.set(p.openedPeekWidgets.get()+1,void 0)}dispose(){if(!this.disposed){this.disposed=!0,super.dispose(),this._onDidClose.fire(this),this._onDidClose.dispose();let n=ct(this.editor);n.openedPeekWidgets.set(n.openedPeekWidgets.get()-1,void 0)}}style(n){let h=this.options;if(n.headerBackgroundColor)h.headerBackgroundColor=n.headerBackgroundColor;if(n.primaryHeadingColor)h.primaryHeadingColor=n.primaryHeadingColor;if(n.secondaryHeadingColor)h.secondaryHeadingColor=n.secondaryHeadingColor;super.style(n)}_applyStyles(){super._applyStyles();let n=this.options;if(this._headElement&&n.headerBackgroundColor)this._headElement.style.backgroundColor=n.headerBackgroundColor.toString();if(this._primaryHeading&&n.primaryHeadingColor)this._primaryHeading.style.color=n.primaryHeadingColor.toString();if(this._secondaryHeading&&n.secondaryHeadingColor)this._secondaryHeading.style.color=n.secondaryHeadingColor.toString();if(this._bodyElement&&n.frameColor)this._bodyElement.style.borderColor=n.frameColor.toString()}_fillContainer(n){this.setCssClass("peekview-widget"),this._headElement=w(".head"),this._bodyElement=w(".body"),this._fillHead(this._headElement),this._fillBody(this._bodyElement),n.appendChild(this._headElement),n.appendChild(this._bodyElement)}_fillHead(n,h){if(this._titleElement=w(".peekview-title"),this.options.supportOnTitleClick)this._titleElement.classList.add("clickable"),Ct(this._titleElement,"click",(m)=>this._onTitleClick(m));k(this._headElement,this._titleElement),this._fillTitleIcon(this._titleElement),this._primaryHeading=w("span.filename"),this._secondaryHeading=w("span.dirname"),this._metaHeading=w("span.meta"),k(this._titleElement,this._primaryHeading,this._secondaryHeading,this._metaHeading);let g=w(".peekview-actions");k(this._headElement,g);let p=this._getActionBarOptions();if(this._actionbarWidget=new Qi(g,p),this._disposables.add(this._actionbarWidget),!h)this._actionbarWidget.push(this._disposables.add(new xo("peekview.close",e(1383,"Close"),J.asClassName(_.close),!0,()=>(this.dispose(),Promise.resolve()))),{label:!1,icon:!0})}_fillTitleIcon(n){}_getActionBarOptions(){return{actionViewItemProvider:my.bind(void 0,this.instantiationService),orientation:0}}_onTitleClick(n){}setTitle(n,h){if(this._primaryHeading&&this._secondaryHeading)if(this._primaryHeading.innerText=n,this._primaryHeading.setAttribute("title",n),h)this._secondaryHeading.innerText=h;else mn(this._secondaryHeading)}setMetaTitle(n){if(this._metaHeading)if(n)this._metaHeading.innerText=n,Mo(this._metaHeading);else fo(this._metaHeading)}_doLayout(n,h){if(!this._isShowing&&n<0){this.dispose();return}let g=Math.ceil(this.editor.getOption(75)*1.2),p=Math.round(n-(g+1));this._doLayoutHead(g,h),this._doLayoutBody(p,h)}_doLayoutHead(n,h){if(this._headElement)this._headElement.style.height=`${n}px`,this._headElement.style.lineHeight=this._headElement.style.height}_doLayoutBody(n,h){if(this._bodyElement)this._bodyElement.style.height=`${n}px`}};Qd=hI([uI(2,A)],Qd);var pI=a("peekViewTitle.background",{dark:"#252526",light:"#F3F3F3",hcDark:y.black,hcLight:y.white},e(1384,"Background color of the peek view title area.")),Zg=a("peekViewTitleLabel.foreground",{dark:y.white,light:y.black,hcDark:y.white,hcLight:za},e(1385,"Color of the peek view title.")),Xg=a("peekViewTitleDescription.foreground",{dark:"#ccccccb3",light:"#616161",hcDark:"#FFFFFF99",hcLight:"#292929"},e(1386,"Color of the peek view title info.")),fI=a("peekView.border",{dark:js,light:js,hcDark:je,hcLight:je},e(1387,"Color of the peek view borders and arrow.")),WI=a("peekViewResult.background",{dark:"#252526",light:"#F3F3F3",hcDark:y.black,hcLight:y.white},e(1388,"Background color of the peek view result list."));a("peekViewResult.lineForeground",{dark:"#bbbbbb",light:"#646465",hcDark:y.white,hcLight:za},e(1389,"Foreground color for line nodes in the peek view result list."));a("peekViewResult.fileForeground",{dark:y.white,light:"#1E1E1E",hcDark:y.white,hcLight:za},e(1390,"Foreground color for file nodes in the peek view result list."));a("peekViewResult.selectionBackground",{dark:"#3399ff33",light:"#3399ff33",hcDark:null,hcLight:null},e(1391,"Background color of the selected entry in the peek view result list."));a("peekViewResult.selectionForeground",{dark:y.white,light:"#6C6C6C",hcDark:y.white,hcLight:za},e(1392,"Foreground color of the selected entry in the peek view result list."));var ob=a("peekViewEditor.background",{dark:"#001F33",light:"#F2F8FC",hcDark:y.black,hcLight:y.white},e(1393,"Background color of the peek view editor."));a("peekViewEditorGutter.background",ob,e(1394,"Background color of the gutter in the peek view editor."));a("peekViewEditorStickyScroll.background",ob,e(1395,"Background color of sticky scroll in the peek view editor."));a("peekViewEditorStickyScrollGutter.background",ob,e(1396,"Background color of the gutter part of sticky scroll in the peek view editor."));a("peekViewResult.matchHighlightBackground",{dark:"#ea5c004d",light:"#ea5c004d",hcDark:null,hcLight:null},e(1397,"Match highlight color in the peek view result list."));a("peekViewEditor.matchHighlightBackground",{dark:"#ff8f0099",light:"#f5d802de",hcDark:null,hcLight:null},e(1398,"Match highlight color in the peek view editor."));a("peekViewEditor.matchHighlightBorder",{dark:null,light:null,hcDark:Zt,hcLight:Zt},e(1399,"Match highlight border in the peek view editor."));var Yg;(function(u){function n(h){switch(h){case pn.Ignore:return"severity-ignore "+J.asClassName(_.info);case pn.Info:return J.asClassName(_.info);case pn.Warning:return J.asClassName(_.warning);case pn.Error:return J.asClassName(_.error);default:return""}}u.className=n})(Yg||(Yg={}));var nT=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},ec=function(u,n){return function(h,g){n(h,g,u)}},nb;class UI{constructor(u,n,h,g,p){this._openerService=g,this._labelService=p,this._lines=0,this._longestLineLength=0,this._relatedDiagnostics=new WeakMap,this._disposables=new d,this._editor=n;let m=document.createElement("div");m.className="descriptioncontainer",this._messageBlock=document.createElement("div"),this._messageBlock.classList.add("message"),this._messageBlock.setAttribute("aria-live","assertive"),this._messageBlock.setAttribute("role","alert"),m.appendChild(this._messageBlock),this._relatedBlock=document.createElement("div"),m.appendChild(this._relatedBlock),this._disposables.add(Ct(this._relatedBlock,"click",(v)=>{v.preventDefault();let S=this._relatedDiagnostics.get(v.target);if(S)h(S)})),this._scrollable=new C0(m,{horizontal:1,vertical:1,useShadows:!1,horizontalScrollbarSize:6,verticalScrollbarSize:6}),u.appendChild(this._scrollable.getDomNode()),this._disposables.add(this._scrollable.onScroll((v)=>{m.style.left=`-${v.scrollLeft}px`,m.style.top=`-${v.scrollTop}px`})),this._disposables.add(this._scrollable)}dispose(){He(this._disposables)}update(u){let{source:n,message:h,relatedInformation:g,code:p}=u,m=(n?.length||0)+2;if(p)if(typeof p==="string")m+=p.length;else m+=p.value.length;let v=Ci(h);this._lines=v.length,this._longestLineLength=0;for(let R of v)this._longestLineLength=Math.max(R.length+m,this._longestLineLength);mn(this._messageBlock),this._messageBlock.setAttribute("aria-label",this.getAriaLabel(u)),Ho(this.getAriaLabel(u)),this._editor.applyFontInfo(this._messageBlock);let S=this._messageBlock;for(let R of v){if(S=document.createElement("div"),S.innerText=R,R==="")S.style.height=this._messageBlock.style.lineHeight;this._messageBlock.appendChild(S)}if(n||p){let R=document.createElement("span");if(R.classList.add("details"),S.appendChild(R),n){let Z=document.createElement("span");Z.innerText=n,Z.classList.add("source"),R.appendChild(Z)}if(p)if(typeof p==="string"){let Z=document.createElement("span");Z.innerText=`(${p})`,Z.classList.add("code"),R.appendChild(Z)}else{this._codeLink=w("a.code-link"),this._codeLink.setAttribute("href",`${p.target.toString()}`),this._codeLink.onclick=(Y)=>{this._openerService.open(p.target),Y.preventDefault(),Y.stopPropagation()};let Z=k(this._codeLink,w("span"));Z.innerText=p.value,R.appendChild(this._codeLink)}}if(mn(this._relatedBlock),this._editor.applyFontInfo(this._relatedBlock),qn(g)){let R=this._relatedBlock.appendChild(document.createElement("div"));R.style.paddingTop=`${Math.floor(this._editor.getOption(75)*0.66)}px`,this._lines+=1;for(let Z of g){let Y=document.createElement("div"),Q=document.createElement("a");Q.classList.add("filename"),Q.innerText=`${this._labelService.getUriBasenameLabel(Z.resource)}(${Z.startLineNumber}, ${Z.startColumn}): `,Q.title=this._labelService.getUriLabel(Z.resource),this._relatedDiagnostics.set(Q,Z);let te=document.createElement("span");te.innerText=Z.message,Y.appendChild(Q),Y.appendChild(te),this._lines+=1,R.appendChild(Y)}}let C=this._editor.getOption(59),x=Math.ceil(C.typicalFullwidthCharacterWidth*this._longestLineLength*0.75),T=C.lineHeight*this._lines;this._scrollable.setScrollDimensions({scrollWidth:x,scrollHeight:T})}layout(u,n){this._scrollable.getDomNode().style.height=`${u}px`,this._scrollable.getDomNode().style.width=`${n}px`,this._scrollable.setScrollDimensions({width:n,height:u})}getHeightInLines(){return Math.min(17,this._lines)}getAriaLabel(u){let n="";switch(u.severity){case an.Error:n=e(1082,"Error");break;case an.Warning:n=e(1083,"Warning");break;case an.Info:n=e(1084,"Info");break;case an.Hint:n=e(1085,"Hint");break}let h=e(1086,"{0}: {1} at {2}. ",n,u.message,u.startLineNumber+":"+u.startColumn),g=this._editor.getModel();if(g&&u.startLineNumber<=g.getLineCount()&&u.startLineNumber>=1)h=`${g.getLineContent(u.startLineNumber)}, ${h}`;return h}}var tc=class u extends Qd{static{nb=this}static{this.TitleMenu=new l("gotoErrorTitleMenu")}constructor(n,h,g,p,m,v,S){super(n,{showArrow:!0,showFrame:!0,isAccessible:!0,frameWidth:1},m);this._themeService=h,this._openerService=g,this._menuService=p,this._contextKeyService=v,this._labelService=S,this._callOnDispose=new d,this._onDidSelectRelatedInformation=new o,this.onDidSelectRelatedInformation=this._onDidSelectRelatedInformation.event,this._severity=an.Warning,this._backgroundColor=y.white,this._applyTheme(h.getColorTheme()),this._callOnDispose.add(h.onDidColorThemeChange(this._applyTheme.bind(this))),this.create()}_applyTheme(n){this._backgroundColor=n.getColor(dT);let h=rb,g=rT;if(this._severity===an.Warning)h=Jg,g=sT;else if(this._severity===an.Info)h=sb,g=aT;let p=n.getColor(h),m=n.getColor(g);this.style({arrowColor:p,frameColor:p,headerBackgroundColor:m,primaryHeadingColor:n.getColor(Zg),secondaryHeadingColor:n.getColor(Xg)})}_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(n){super._fillHead(n),this._disposables.add(this._actionbarWidget.actionRunner.onWillRun((p)=>this.editor.focus()));let h=this._menuService.getMenuActions(nb.TitleMenu,this._contextKeyService),g=i2(h);this._actionbarWidget.push(g,{label:!1,icon:!0,index:0})}_fillTitleIcon(n){this._icon=k(n,w(""))}_fillBody(n){this._parentContainer=n,n.classList.add("marker-widget"),this._parentContainer.tabIndex=0,this._parentContainer.setAttribute("role","tooltip"),this._container=document.createElement("div"),n.appendChild(this._container),this._message=new UI(this._container,this.editor,(h)=>this._onDidSelectRelatedInformation.fire(h),this._openerService,this._labelService),this._disposables.add(this._message)}show(){throw Error("call showAtMarker")}showAtMarker(n,h,g){this._container.classList.remove("stale"),this._message.update(n),this._severity=n.severity,this._applyTheme(this._themeService.getColorTheme());let p=t.lift(n),m=this.editor.getPosition(),v=m&&p.containsPosition(m)?m:p.getStartPosition();super.show(v,this.computeRequiredHeight());let S=this.editor.getModel();if(S){let C=g>1?e(1087,"{0} of {1} problems",h,g):e(1088,"{0} of {1} problem",h,g);this.setTitle(Mi(S.uri),C)}this._icon.className=`codicon ${Yg.className(an.toSeverity(this._severity))}`,this.editor.revealPositionInCenterIfOutsideViewport(v,0),this.editor.focus()}updateMarker(n){this._container.classList.remove("stale"),this._message.update(n)}showStale(){this._container.classList.add("stale"),this._relayout()}_doLayoutBody(n,h){super._doLayoutBody(n,h),this._heightInPixel=n,this._message.layout(n,h),this._container.style.height=`${n}px`}_onWidth(n){this._message.layout(this._heightInPixel,n)}_relayout(){super._relayout(this.computeRequiredHeight())}computeRequiredHeight(){return 3+this._message.getHeightInLines()}};tc=nb=nT([ec(1,Be),ec(2,er),ec(3,Oi),ec(4,A),ec(5,G),ec(6,Cc)],tc);var VI=lg(ug,NM),zI=lg(Wa,_f),KI=lg(js,Sf),rb=a("editorMarkerNavigationError.background",{dark:VI,light:VI,hcDark:je,hcLight:je},e(1089,"Editor marker navigation widget error color.")),rT=a("editorMarkerNavigationError.headerBackground",{dark:be(rb,0.1),light:be(rb,0.1),hcDark:null,hcLight:null},e(1090,"Editor marker navigation widget error heading background.")),Jg=a("editorMarkerNavigationWarning.background",{dark:zI,light:zI,hcDark:je,hcLight:je},e(1091,"Editor marker navigation widget warning color.")),sT=a("editorMarkerNavigationWarning.headerBackground",{dark:be(Jg,0.1),light:be(Jg,0.1),hcDark:"#0C141F",hcLight:be(Jg,0.2)},e(1092,"Editor marker navigation widget warning heading background.")),sb=a("editorMarkerNavigationInfo.background",{dark:KI,light:KI,hcDark:je,hcLight:je},e(1093,"Editor marker navigation widget info color.")),aT=a("editorMarkerNavigationInfo.headerBackground",{dark:be(sb,0.1),light:be(sb,0.1),hcDark:null,hcLight:null},e(1094,"Editor marker navigation widget info heading background.")),dT=a("editorMarkerNavigation.background",Qo,e(1095,"Editor marker navigation widget background."));var cT=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Qg=function(u,n){return function(h,g){n(h,g,u)}},jl,Ts=class u{static{jl=this}static{this.ID="editor.contrib.markerController"}static get(n){return n.getContribution(jl.ID)}constructor(n,h,g,p,m){this._markerNavigationService=h,this._contextKeyService=g,this._editorService=p,this._instantiationService=m,this._sessionDispoables=new d,this._editor=n,this._widgetVisible=qI.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(n){if(this._model&&this._model.matches(n))return this._model;let h=!1;if(this._model)h=!0,this._cleanUp();if(this._model=this._markerNavigationService.getMarkerList(n),h)this._model.move(!0,this._editor.getModel(),this._editor.getPosition());return this._widget=this._instantiationService.createInstance(tc,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((g)=>{if(!this._model?.selected||!t.containsPosition(this._model?.selected.marker,g.position))this._model?.resetIndex()})),this._sessionDispoables.add(this._model.onDidChange(()=>{if(!this._widget||!this._widget.position||!this._model)return;let g=this._model.find(this._editor.getModel().uri,this._widget.position);if(g)this._widget.updateMarker(g.marker);else this._widget.showStale()})),this._sessionDispoables.add(this._widget.onDidSelectRelatedInformation((g)=>{this._editorService.openCodeEditor({resource:g.resource,options:{pinned:!0,revealIfOpened:!0,selection:t.lift(g).collapseToStart()}},this._editor),this.close(!1)})),this._sessionDispoables.add(this._editor.onDidChangeModel(()=>this._cleanUp())),this._model}close(n=!0){if(this._cleanUp(),n)this._editor.focus()}showAtMarker(n){if(!this._editor.hasModel())return;let h=this._editor.getModel(),g=this._getOrCreateModel(h.uri);if(g.resetIndex(),g.move(!0,h,new s(n.startLineNumber,n.startColumn)),g.selected)this._widget.showAtMarker(g.selected.marker,g.selected.index,g.selected.total)}async navigate(n,h){if(!this._editor.hasModel())return;let g=this._editor.getModel(),p=this._getOrCreateModel(h?void 0:g.uri);if(p.move(n,g,this._editor.getPosition()),!p.selected)return;if(p.selected.marker.resource.toString()!==g.uri.toString()){this._cleanUp();let m=await this._editorService.openCodeEditor({resource:p.selected.marker.resource,options:{pinned:!1,revealIfOpened:!0,selectionRevealType:2,selection:p.selected.marker}},this._editor);if(m)jl.get(m)?.close(),jl.get(m)?.navigate(n,h)}else this._widget.showAtMarker(p.selected.marker,p.selected.index,p.selected.total)}};Ts=jl=cT([Qg(1,Q_),Qg(2,G),Qg(3,Ee),Qg(4,A)],Ts);class Gl extends U{constructor(u,n,h){super(h);this._next=u,this._multiFile=n}async run(u,n){if(n.hasModel())await Ts.get(n)?.navigate(this._next,this._multiFile)}}class Vr extends Gl{static{this.ID="editor.action.marker.next"}static{this.LABEL=b(1078,"Go to Next Problem (Error, Warning, Info)")}constructor(){super(!0,!1,{id:Vr.ID,label:Vr.LABEL,precondition:void 0,kbOpts:{kbExpr:r.focus,primary:578,weight:100},menuOpts:{menuId:tc.TitleMenu,title:Vr.LABEL.value,icon:Ht("marker-navigation-next",_.arrowDown,e(1074,"Icon for goto next marker.")),group:"navigation",order:1}})}}class Oa extends Gl{static{this.ID="editor.action.marker.prev"}static{this.LABEL=b(1079,"Go to Previous Problem (Error, Warning, Info)")}constructor(){super(!1,!1,{id:Oa.ID,label:Oa.LABEL,precondition:void 0,kbOpts:{kbExpr:r.focus,primary:1602,weight:100},menuOpts:{menuId:tc.TitleMenu,title:Oa.LABEL.value,icon:Ht("marker-navigation-previous",_.arrowUp,e(1075,"Icon for goto previous marker.")),group:"navigation",order:2}})}}class Zl extends Gl{static{this.ID="editor.action.marker.nextInFiles"}constructor(){super(!0,!0,{id:Zl.ID,label:b(1080,"Go to Next Problem in Files (Error, Warning, Info)"),precondition:void 0,kbOpts:{kbExpr:r.focus,primary:66,weight:100},menuOpts:{menuId:l.MenubarGoMenu,title:e(1076,"Next &&Problem"),group:"6_problem_nav",order:1}})}}class Xl extends Gl{static{this.ID="editor.action.marker.prevInFiles"}constructor(){super(!1,!0,{id:Xl.ID,label:b(1081,"Go to Previous Problem in Files (Error, Warning, Info)"),precondition:void 0,kbOpts:{kbExpr:r.focus,primary:1090,weight:100},menuOpts:{menuId:l.MenubarGoMenu,title:e(1077,"Previous &&Problem"),group:"6_problem_nav",order:2}})}}fe(Ts.ID,Ts,4);O(Vr);O(Oa);O(Zl);O(Xl);var qI=new M("markersNavigationVisible",!1),lT=nn.bindToContribution(Ts.get);K(new lT({id:"closeMarkersNavigation",precondition:qI,handler:(u)=>u.close(),kbOpts:{weight:150,kbExpr:r.focus,primary:9,secondary:[1033]}}));class e0{constructor(u){this.options=u,this.rangeHighlightDecorationId=void 0}provide(u,n,h){let g=new d;u.canAcceptInBackground=!!this.options?.canAcceptInBackground,u.matchOnLabel=u.matchOnDescription=u.matchOnDetail=u.sortByLabel=!1;let p=g.add(new ce);return p.value=this.doProvide(u,n,h),g.add(this.onDidActiveTextEditorControlChange(()=>{p.value=void 0,p.value=this.doProvide(u,n)})),g}doProvide(u,n,h){let g=new d,p=this.activeTextEditorControl;if(p&&this.canProvideWithTextEditor(p)){let m={editor:p},v=ik(p);if(v){let S=p.saveViewState()??void 0;g.add(v.onDidChangeCursorPosition(()=>{S=p.saveViewState()??void 0})),m.restoreViewState=()=>{if(S&&p===this.activeTextEditorControl)p.restoreViewState(S)},g.add(As(n.onCancellationRequested)(()=>m.restoreViewState?.()))}g.add(N(()=>this.clearDecorations(p))),g.add(this.provideWithTextEditor(m,u,n,h))}else g.add(this.provideWithoutTextEditor(u,n));return g}canProvideWithTextEditor(u){return!0}gotoLocation({editor:u},n){if(u.setSelection(n.range,"code.jump"),u.revealRangeInCenter(n.range,0),!n.preserveFocus)u.focus();let h=this.getModel(u);if(h){let g=h.getLineContent(n.range.startLineNumber);Ho(e(1401,"Line {0}, column {1}: {2}",n.range.startLineNumber,n.range.startColumn,g))}}getModel(u){return wy(u)?u.getModel()?.modified:u.getModel()}addDecorations(u,n){u.changeDecorations((h)=>{let g=[];if(this.rangeHighlightDecorationId)g.push(this.rangeHighlightDecorationId.overviewRulerDecorationId),g.push(this.rangeHighlightDecorationId.rangeHighlightId),this.rangeHighlightDecorationId=void 0;let p=[{range:n,options:{description:"quick-access-range-highlight",className:"rangeHighlight",isWholeLine:!0}},{range:n,options:{description:"quick-access-range-highlight-overview",overviewRuler:{color:bn(E1),position:Xo.Full}}}],[m,v]=h.deltaDecorations(g,p);this.rangeHighlightDecorationId={rangeHighlightId:m,overviewRulerDecorationId:v}})}clearDecorations(u){let n=this.rangeHighlightDecorationId;if(n)u.changeDecorations((h)=>{h.deltaDecorations([n.overviewRulerDecorationId,n.rangeHighlightId],[])}),this.rangeHighlightDecorationId=void 0}}class ic extends e0{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(ic.ZERO_BASED_OFFSET_STORAGE_KEY,-1,!1)}set useZeroBasedOffset(u){this.storageService.store(ic.ZERO_BASED_OFFSET_STORAGE_KEY,u,-1,0)}provideWithoutTextEditor(u){let n=e(1402,"Open a text editor first to go to a line or an offset.");return u.items=[{label:n}],u.ariaLabel=n,i.None}provideWithTextEditor(u,n,h){let g=u.editor,p=new d;n.ariaLabel=e(1403,"Go to line. Type a line number, optionally followed by colon and column number."),p.add(n.onDidAccept((C)=>{let[x]=n.selectedItems;if(x){if(!x.lineNumber)return;if(this.gotoLocation(u,{range:this.toRange(x.lineNumber,x.column),keyMods:n.keyMods,preserveFocus:C.inBackground}),!C.inBackground)n.hide()}}));let m={iconClass:J.asClassName(_.indexZero),tooltip:e(1404,"Toggle Zero-Based Offset"),location:Sg.Input,toggle:{checked:this.useZeroBasedOffset}},v=()=>{let C=n.value.trim().substring(ic.GO_TO_LINE_PREFIX.length),{inOffsetMode:x,lineNumber:T,column:R,label:Z}=this.parsePosition(g,C);if(n.buttons=x?[m]:[],n.items=[{lineNumber:T,column:R,label:Z,ariaLabel:T?e(1405,"Go to line {0}, column {1}. Press Enter to navigate.",T,R||1):Z}],!T){this.clearDecorations(g);return}let Y=this.toRange(T,R);g.revealRangeInCenter(Y,0),this.addDecorations(g,Y)};p.add(n.onDidTriggerButton((C)=>{if(C===m)this.useZeroBasedOffset=C.toggle?.checked??!this.useZeroBasedOffset,v()})),v(),p.add(n.onDidChangeValue(()=>v()));let S=ik(g);if(S){if(S.getOptions().get(76).renderType===2)S.updateOptions({lineNumbers:"on"}),p.add(N(()=>S.updateOptions({lineNumbers:"relative"})))}return p}toRange(u=1,n=1){return{startLineNumber:u,startColumn:n,endLineNumber:u,endColumn:n}}parsePosition(u,n){let h=this.getModel(u);if(!h)return{label:e(1406,"Open a text editor first to go to a line or an offset.")};if(n.startsWith(":")){let g=parseInt(n.substring(1),10),p=h.getValueLength();if(isNaN(g))return{inOffsetMode:!0,label:this.useZeroBasedOffset?e(1407,"Type a character position to go to (from 0 to {0}).",p-1):e(1408,"Type a character position to go to (from 1 to {0}).",p)};else{let m=g<0;if(!this.useZeroBasedOffset)g-=Math.sign(g);if(m)g+=p;let v=h.getPositionAt(g),S=Lt.visibleColumnFromColumn(h.getLineContent(v.lineNumber),v.column,h.getOptions().tabSize)+1;return{...v,inOffsetMode:!0,label:e(1409,"Press 'Enter' to go to line {0} at column {1}.",v.lineNumber,S)}}}else{let g=n.split(/,|:|#/),p=h.getLineCount(),m=parseInt(g[0]?.trim(),10);if(g.length<1||isNaN(m))return{label:e(1410,"Type a line number to go to (from 1 to {0}).",p)};m=m>=0?m:p+1+m,m=Math.min(Math.max(1,m),p);let v=h.getOptions().tabSize,S=h.getLineContent(m),C=Lt.visibleColumnFromColumn(S,h.getLineMaxColumn(m),v)+1,x=parseInt(g[1]?.trim(),10);if(g.length<2||isNaN(x))return{lineNumber:m,column:1,label:g.length<2?e(1411,"Press 'Enter' to go to line {0} or enter colon : to add a column number.",m):e(1412,"Press 'Enter' to go to line {0} or enter a column number (from 1 to {1}).",m,C)};x=x>=0?x:C+x,x=Math.min(Math.max(1,x),C);let T=Lt.columnFromVisibleColumn(S,x-1,v);return{lineNumber:m,column:T,label:e(1413,"Press 'Enter' to go to line {0} at column {1}.",m,x)}}}}var hT=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},jI=function(u,n){return function(h,g){n(h,g,u)}},Ws=class u extends ic{constructor(n,h){super();this.editorService=n,this.storageService=h,this.onDidActiveTextEditorControlChange=I.None}get activeTextEditorControl(){return this.editorService.getFocusedCodeEditor()??void 0}};Ws=hT([jI(0,Ee),jI(1,Pn)],Ws);class ep extends U{static{this.ID="editor.action.gotoLine"}constructor(){super({id:ep.ID,label:Lg.gotoLineActionLabel,alias:"Go to Line/Column...",precondition:void 0,kbOpts:{kbExpr:r.focus,primary:2085,mac:{primary:293},weight:100}})}run(u){u.get(En).quickAccess.show(Ws.GO_TO_LINE_PREFIX)}}O(ep);ht.as(ga.Quickaccess).registerQuickAccessProvider({ctor:Ws,prefix:Ws.GO_TO_LINE_PREFIX,helpEntries:[{description:Lg.gotoLineActionLabel,commandId:ep.ID}]});class ip extends U{static{this.ID="editor.action.gotoOffset"}constructor(){super({id:ip.ID,label:Lg.gotoOffsetActionLabel,alias:"Go to Offset...",precondition:void 0})}run(u){u.get(En).quickAccess.show(Ws.GO_TO_OFFSET_PREFIX)}}O(ip);ht.as(ga.Quickaccess).registerQuickAccessProvider({ctor:Ws,prefix:Ws.GO_TO_OFFSET_PREFIX,helpEntries:[{description:Lg.gotoOffsetActionLabel,commandId:ip.ID}]});var uT=a("editorOverviewRuler.bracketMatchForeground","#A0A0A0",e(855,"Overview ruler marker color for matching brackets."));class GI extends U{constructor(){super({id:"editor.action.jumpToBracket",label:b(857,"Go to Bracket"),precondition:void 0,kbOpts:{kbExpr:r.editorTextFocus,primary:3165,weight:100}})}run(u,n){zr.get(n)?.jumpToBracket()}}class ZI extends U{constructor(){super({id:"editor.action.selectToBracket",label:b(858,"Select to Bracket"),precondition:void 0,metadata:{description:b(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(u,n,h){let g=!0;if(h&&h.selectBrackets===!1)g=!1;zr.get(n)?.selectToBracket(g)}}class XI extends U{constructor(){super({id:"editor.action.removeBrackets",label:b(860,"Remove Brackets"),precondition:void 0,kbOpts:{kbExpr:r.editorTextFocus,primary:2561,weight:100},canTriggerInlineEdits:!0})}run(u,n){zr.get(n)?.removeBrackets(this.id)}}class YI{constructor(u,n,h){this.position=u,this.brackets=n,this.options=h}}class zr extends i{static{this.ID="editor.contrib.bracketMatchingController"}static get(u){return u.getContribution(zr.ID)}constructor(u){super();this._editor=u,this._lastBracketsData=[],this._lastVersionId=0,this._decorations=this._editor.createDecorationsCollection(),this._updateBracketsSoon=this._register(new Ce(()=>this._updateBrackets(),50)),this._matchBrackets=this._editor.getOption(80),this._updateBracketsSoon.schedule(),this._register(u.onDidChangeCursorPosition((n)=>{if(this._matchBrackets==="never")return;this._updateBracketsSoon.schedule()})),this._register(u.onDidChangeModelContent((n)=>{this._updateBracketsSoon.schedule()})),this._register(u.onDidChangeModel((n)=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()})),this._register(u.onDidChangeModelLanguageConfiguration((n)=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()})),this._register(u.onDidChangeConfiguration((n)=>{if(n.hasChanged(80))this._matchBrackets=this._editor.getOption(80),this._decorations.clear(),this._lastBracketsData=[],this._lastVersionId=0,this._updateBracketsSoon.schedule()})),this._register(u.onDidBlurEditorWidget(()=>{this._updateBracketsSoon.schedule()})),this._register(u.onDidFocusEditorWidget(()=>{this._updateBracketsSoon.schedule()}))}jumpToBracket(){if(!this._editor.hasModel())return;let u=this._editor.getModel(),n=this._editor.getSelections().map((h)=>{let g=h.getStartPosition(),p=u.bracketPairs.matchBracket(g),m=null;if(p){if(p[0].containsPosition(g)&&!p[1].containsPosition(g))m=p[1].getStartPosition();else if(p[1].containsPosition(g))m=p[0].getStartPosition()}else{let v=u.bracketPairs.findEnclosingBrackets(g);if(v)m=v[1].getStartPosition();else{let S=u.bracketPairs.findNextBracket(g);if(S&&S.range)m=S.range.getStartPosition()}}if(m)return new F(m.lineNumber,m.column,m.lineNumber,m.column);return new F(g.lineNumber,g.column,g.lineNumber,g.column)});this._editor.setSelections(n),this._editor.revealRange(n[0])}selectToBracket(u){if(!this._editor.hasModel())return;let n=this._editor.getModel(),h=[];if(this._editor.getSelections().forEach((g)=>{let p=g.getStartPosition(),m=n.bracketPairs.matchBracket(p);if(!m){if(m=n.bracketPairs.findEnclosingBrackets(p),!m){let C=n.bracketPairs.findNextBracket(p);if(C&&C.range)m=n.bracketPairs.matchBracket(C.range.getStartPosition())}}let v=null,S=null;if(m){m.sort(t.compareRangesUsingStarts);let[C,x]=m;if(v=u?C.getStartPosition():C.getEndPosition(),S=u?x.getEndPosition():x.getStartPosition(),x.containsPosition(p)){let T=v;v=S,S=T}}if(v&&S)h.push(new F(v.lineNumber,v.column,S.lineNumber,S.column))}),h.length>0)this._editor.setSelections(h),this._editor.revealRange(h[0])}removeBrackets(u){if(!this._editor.hasModel())return;let n=this._editor.getModel();this._editor.getSelections().forEach((h)=>{let g=h.getPosition(),p=n.bracketPairs.matchBracket(g);if(!p)p=n.bracketPairs.findEnclosingBrackets(g);if(p)this._editor.pushUndoStop(),this._editor.executeEdits(u,[{range:p[0],text:""},{range:p[1],text:""}]),this._editor.pushUndoStop()})}static{this._DECORATION_OPTIONS_WITH_OVERVIEW_RULER=de.register({description:"bracket-match-overview",stickiness:1,className:"bracket-match",inlineClassName:"bracket-match-inline",overviewRuler:{color:bn(uT),position:Xo.Center}})}static{this._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER=de.register({description:"bracket-match-no-overview",stickiness:1,className:"bracket-match",inlineClassName:"bracket-match-inline"})}_updateBrackets(){if(this._matchBrackets==="never")return;this._recomputeBrackets();let u=[],n=0;for(let h of this._lastBracketsData){let g=h.brackets;if(g)u[n++]={range:g[0],options:h.options},u[n++]={range:g[1],options:h.options}}this._decorations.set(u)}_recomputeBrackets(){if(!this._editor.hasModel()||!this._editor.hasWidgetFocus()){this._lastBracketsData=[],this._lastVersionId=0;return}let u=this._editor.getSelections();if(u.length>100){this._lastBracketsData=[],this._lastVersionId=0;return}let n=this._editor.getModel(),h=n.getVersionId(),g=[];if(this._lastVersionId===h)g=this._lastBracketsData;let p=[],m=0;for(let T=0,R=u.length;T<R;T++){let Z=u[T];if(Z.isEmpty())p[m++]=Z.getStartPosition()}if(p.length>1)p.sort(s.compare);let v=[],S=0,C=0,x=g.length;for(let T=0,R=p.length;T<R;T++){let Z=p[T];while(C<x&&g[C].position.isBefore(Z))C++;if(C<x&&g[C].position.equals(Z))v[S++]=g[C];else{let Y=n.bracketPairs.matchBracket(Z,20),Q=zr._DECORATION_OPTIONS_WITH_OVERVIEW_RULER;if(!Y&&this._matchBrackets==="always")Y=n.bracketPairs.findEnclosingBrackets(Z,20),Q=zr._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER;v[S++]=new YI(Z,Y,Q)}}this._lastBracketsData=v,this._lastVersionId=h}}fe(zr.ID,zr,1);O(ZI);O(GI);O(XI);Kn.appendMenuItem(l.MenubarGoMenu,{group:"5_infile_nav",command:{id:"editor.action.jumpToBracket",title:e(856,"Go to &&Bracket")},order:2});Li((u,n)=>{let h=u.getColor(VM);if(h)n.addRule(`.monaco-editor .bracket-match-inline { color: ${h} !important; }`)});var ft=new class{constructor(){this.QuickFix=new zt("quickfix"),this.Refactor=new zt("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 zt("notebook"),this.Source=new zt("source"),this.SourceOrganizeImports=this.Source.append("organizeImports"),this.SourceFixAll=this.Source.append("fixAll"),this.SurroundWith=this.Refactor.append("surround")}},_i;(function(u){u.Refactor="refactor",u.RefactorPreview="refactor preview",u.Lightbulb="lightbulb",u.Default="other (default)",u.SourceAction="source action",u.QuickFix="quick fix action",u.FixAll="fix all",u.OrganizeImports="organize imports",u.AutoFix="auto fix",u.QuickFixHover="quick fix hover window",u.OnSave="save participants",u.ProblemsView="problems view"})(_i||(_i={}));function JI(u,n){if(u.include&&!u.include.intersects(n))return!1;if(u.excludes){if(u.excludes.some((h)=>n0(n,h,u.include)))return!1}if(!u.includeSourceActions&&ft.Source.contains(n))return!1;return!0}function QI(u,n){let h=n.kind?new zt(n.kind):void 0;if(u.include){if(!h||!u.include.contains(h))return!1}if(u.excludes){if(h&&u.excludes.some((g)=>n0(h,g,u.include)))return!1}if(!u.includeSourceActions){if(h&&ft.Source.contains(h))return!1}if(u.onlyIncludePreferredActions){if(!n.isPreferred)return!1}return!0}function n0(u,n,h){if(!n.contains(u))return!1;if(h&&n.contains(h))return!1;return!0}class Jo{static fromUser(u,n){if(!u||typeof u!=="object")return new Jo(n.kind,n.apply,!1);return new Jo(Jo.getKindFromUser(u,n.kind),Jo.getApplyFromUser(u,n.apply),Jo.getPreferredUser(u))}static getApplyFromUser(u,n){switch(typeof u.apply==="string"?u.apply.toLowerCase():""){case"first":return"first";case"never":return"never";case"ifsingle":return"ifSingle";default:return n}}static getKindFromUser(u,n){return typeof u.kind==="string"?new zt(u.kind):n}static getPreferredUser(u){return typeof u.preferred==="boolean"?u.preferred:!1}constructor(u,n,h){this.kind=u,this.apply=n,this.preferred=h}}class ab{constructor(u,n,h){this.action=u,this.provider=n,this.highlightRange=h}async resolve(u){if(this.provider?.resolveCodeAction&&!this.action.edit){let n;try{n=await this.provider.resolveCodeAction(this.action,u)}catch(h){yt(h)}if(n)this.action.edit=n.edit}return this}}var op="editor.action.codeAction",Bs="editor.action.quickFix",oc="editor.action.autoFix",rp="editor.action.refactor",sp="editor.action.sourceAction",Jl="editor.action.organizeImports",Ql="editor.action.fixAll",gT=1000;class Yl extends i{static codeActionsPreferredComparator(u,n){if(u.isPreferred&&!n.isPreferred)return-1;else if(!u.isPreferred&&n.isPreferred)return 1;else return 0}static codeActionsComparator({action:u},{action:n}){if(u.isAI&&!n.isAI)return 1;else if(!u.isAI&&n.isAI)return-1;if(qn(u.diagnostics))return qn(n.diagnostics)?Yl.codeActionsPreferredComparator(u,n):-1;else if(qn(n.diagnostics))return 1;else return Yl.codeActionsPreferredComparator(u,n)}constructor(u,n,h){super();this.documentation=n,this._register(h),this.allActions=[...u].sort(Yl.codeActionsComparator),this.validActions=this.allActions.filter(({action:g})=>!g.disabled)}get hasAutoFix(){return this.validActions.some(({action:u})=>!!u.kind&&ft.QuickFix.contains(new zt(u.kind))&&!!u.isPreferred)}get hasAIFix(){return this.validActions.some(({action:u})=>!!u.isAI)}get allAIFixes(){return this.validActions.every(({action:u})=>!!u.isAI)}}var l0={actions:[],documentation:void 0};async function Vs(u,n,h,g,p,m){let v=g.filter||{},S={...v,excludes:[...v.excludes||[],ft.Notebook]},C={only:v.include?.value,trigger:g.type},x=new xy(n,m),T=g.type===2,R=pT(u,n,T?S:v),Z=new d,Y=R.map(async(te)=>{let oe=setTimeout(()=>p.report(te),1250);try{let ne=await te.provideCodeActions(n,h,C,x.token);if(x.token.isCancellationRequested)return ne?.dispose(),l0;if(ne)Z.add(ne);let he=(ne?.actions||[]).filter((_e)=>_e&&QI(v,_e)),ge=fT(te,he,v.include);return{actions:he.map((_e)=>new ab(_e,te)),documentation:ge}}catch(ne){if(pi(ne))throw ne;return yt(ne),l0}finally{clearTimeout(oe)}}),Q=u.onDidChange(()=>{let te=u.all(n);if(!ot(te,R))x.cancel()});try{let te=await Promise.all(Y),oe=te.map((ge)=>ge.actions).flat(),ne=[...yo(te.map((ge)=>ge.documentation)),...mT(u,n,g,oe)],he=new Yl(oe,ne,Z);return Z.add(he),he}catch(te){throw Z.dispose(),te}finally{Q.dispose(),x.dispose()}}function pT(u,n,h){return u.all(n).filter((g)=>{if(!g.providedCodeActionKinds)return!0;return g.providedCodeActionKinds.some((p)=>JI(h,new zt(p)))})}function*mT(u,n,h,g){if(n&&g.length){for(let p of u.all(n))if(p._getAdditionalMenuItems)yield*p._getAdditionalMenuItems?.({trigger:h.type,only:h.filter?.include?.value},g.map((m)=>m.action))}}function fT(u,n,h){if(!u.documentation)return;let g=u.documentation.map((p)=>({kind:new zt(p.kind),command:p.command}));if(h){let p;for(let m of g)if(m.kind.contains(h)){if(!p)p=m;else if(p.kind.contains(m.kind))p=m}if(p)return p?.command}for(let p of n){if(!p.kind)continue;for(let m of g)if(m.kind.contains(new zt(p.kind)))return m.command}return}var ur;(function(u){u.OnSave="onSave",u.FromProblemsView="fromProblemsView",u.FromCodeActions="fromCodeActions",u.FromAILightbulb="fromAILightbulb",u.FromProblemsHover="fromProblemsHover"})(ur||(ur={}));async function E0(u,n,h,g,p=ye.None){let m=u.get(Ec),v=u.get(Ue),S=u.get(Bn),C=u.get(wt),x=u.get(_s);if(S.publicLog2("codeAction.applyCodeAction",{codeActionTitle:n.action.title,codeActionKind:n.action.kind,codeActionIsPreferred:!!n.action.isPreferred,reason:h}),x.playSignal(nt.codeActionTriggered),await n.resolve(p),p.isCancellationRequested)return;if(n.action.edit?.edits.length){if(!(await m.apply(n.action.edit,{editor:g?.editor,label:n.action.title,quotableLabel:n.action.title,code:"undoredo.codeAction",respectAutoSaveConfig:h!==ur.OnSave,showPreview:g?.preview,reason:Jn.codeAction({kind:n.action.kind,providerId:zv.fromExtensionId(n.provider?.extensionId)})})).isApplied)return}if(n.action.command)try{await v.executeCommand(n.action.command.id,...n.action.command.arguments||[])}catch(T){let R=_T(T);C.error(typeof R==="string"?R:e(881,"An unknown error occurred while applying the code action"))}setTimeout(()=>x.playSignal(nt.codeActionApplied),gT)}function _T(u){if(typeof u==="string")return u;else if(u instanceof Error&&typeof u.message==="string")return u.message;else return}Te.registerCommand("_executeCodeActionProvider",async function(u,n,h,g,p){if(!(n instanceof q))throw wo();let{codeActionProvider:m}=u.get(z),v=u.get(Et).getModel(n);if(!v)throw wo();let S=F.isISelection(h)?F.liftSelection(h):t.isIRange(h)?v.validateRange(h):void 0;if(!S)throw wo();let C=typeof g==="string"?new zt(g):void 0,x=await Vs(m,v,S,{type:1,triggerAction:_i.Default,filter:{includeSourceActions:!0,include:C}},Ua.None,ye.None),T=[],R=Math.min(x.validActions.length,typeof p==="number"?p:0);for(let Z=0;Z<R;Z++)T.push(x.validActions[Z].resolve(ye.None));try{return await Promise.all(T),x.validActions.map((Z)=>Z.action)}finally{setTimeout(()=>x.dispose(),100)}});var bT=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},vT=function(u,n){return function(h,g){n(h,g,u)}},db,ap=class u{static{db=this}static{this.codeActionCommands=[rp,op,sp,Jl,Ql]}constructor(n){this.keybindingService=n}getResolver(){let n=new ei(()=>this.keybindingService.getKeybindings().filter((h)=>db.codeActionCommands.indexOf(h.command)>=0).filter((h)=>h.resolvedKeybinding).map((h)=>{let g=h.commandArgs;if(h.command===Jl)g={kind:ft.SourceOrganizeImports.value};else if(h.command===Ql)g={kind:ft.SourceFixAll.value};return{resolvedKeybinding:h.resolvedKeybinding,...Jo.fromUser(g,{kind:zt.None,apply:"never"})}}));return(h)=>{if(h.kind)return this.bestKeybindingForCodeAction(h,n.value)?.resolvedKeybinding;return}}bestKeybindingForCodeAction(n,h){if(!n.kind)return;let g=new zt(n.kind);return h.filter((p)=>p.kind.contains(g)).filter((p)=>{if(p.preferred)return n.isPreferred;return!0}).reduceRight((p,m)=>{if(!p)return m;return p.kind.contains(m.kind)?m:p},void 0)}};ap=db=bT([vT(0,me)],ap);a("symbolIcon.arrayForeground",Oe,e(1569,"The foreground color for array symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.booleanForeground",Oe,e(1570,"The foreground color for boolean symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.classForeground",{dark:"#EE9D28",light:"#D67E00",hcDark:"#EE9D28",hcLight:"#D67E00"},e(1571,"The foreground color for class symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.colorForeground",Oe,e(1572,"The foreground color for color symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.constantForeground",Oe,e(1573,"The foreground color for constant symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.constructorForeground",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},e(1574,"The foreground color for constructor symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.enumeratorForeground",{dark:"#EE9D28",light:"#D67E00",hcDark:"#EE9D28",hcLight:"#D67E00"},e(1575,"The foreground color for enumerator symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.enumeratorMemberForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},e(1576,"The foreground color for enumerator member symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.eventForeground",{dark:"#EE9D28",light:"#D67E00",hcDark:"#EE9D28",hcLight:"#D67E00"},e(1577,"The foreground color for event symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.fieldForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},e(1578,"The foreground color for field symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.fileForeground",Oe,e(1579,"The foreground color for file symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.folderForeground",Oe,e(1580,"The foreground color for folder symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.functionForeground",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},e(1581,"The foreground color for function symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.interfaceForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},e(1582,"The foreground color for interface symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.keyForeground",Oe,e(1583,"The foreground color for key symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.keywordForeground",Oe,e(1584,"The foreground color for keyword symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.methodForeground",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},e(1585,"The foreground color for method symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.moduleForeground",Oe,e(1586,"The foreground color for module symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.namespaceForeground",Oe,e(1587,"The foreground color for namespace symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.nullForeground",Oe,e(1588,"The foreground color for null symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.numberForeground",Oe,e(1589,"The foreground color for number symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.objectForeground",Oe,e(1590,"The foreground color for object symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.operatorForeground",Oe,e(1591,"The foreground color for operator symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.packageForeground",Oe,e(1592,"The foreground color for package symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.propertyForeground",Oe,e(1593,"The foreground color for property symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.referenceForeground",Oe,e(1594,"The foreground color for reference symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.snippetForeground",Oe,e(1595,"The foreground color for snippet symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.stringForeground",Oe,e(1596,"The foreground color for string symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.structForeground",Oe,e(1597,"The foreground color for struct symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.textForeground",Oe,e(1598,"The foreground color for text symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.typeParameterForeground",Oe,e(1599,"The foreground color for type parameter symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.unitForeground",Oe,e(1600,"The foreground color for unit symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.variableForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},e(1601,"The foreground color for variable symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));var G0=Object.freeze({kind:zt.Empty,title:e(917,"More Actions...")}),wT=Object.freeze([{kind:ft.QuickFix,title:e(918,"Quick Fix")},{kind:ft.RefactorExtract,title:e(919,"Extract"),icon:_.wrench},{kind:ft.RefactorInline,title:e(920,"Inline"),icon:_.wrench},{kind:ft.RefactorRewrite,title:e(921,"Rewrite"),icon:_.wrench},{kind:ft.RefactorMove,title:e(922,"Move"),icon:_.wrench},{kind:ft.SurroundWith,title:e(923,"Surround With"),icon:_.surroundWith},{kind:ft.Source,title:e(924,"Source Action"),icon:_.symbolFile},G0]);function Z0(u,n,h){if(!n)return u.map((m)=>({kind:"action",item:m,group:G0,disabled:!!m.action.disabled,label:m.action.disabled||m.action.title,canPreview:!!m.action.edit?.edits.length}));let g=wT.map((m)=>({group:m,actions:[]}));for(let m of u){let v=m.action.kind?new zt(m.action.kind):zt.None;for(let S of g)if(S.group.kind.contains(v)){S.actions.push(m);break}}let p=[];for(let m of g)if(m.actions.length){p.push({kind:"header",group:m.group});for(let v of m.actions){let S=m.group;p.push({kind:"action",item:v,group:v.action.isAI?{title:S.title,kind:S.kind,icon:_.sparkle}:S,label:v.action.title,disabled:!!v.action.disabled,keybinding:h(v.action)})}}return p}var cb=new M("supportedCodeAction",""),X0="_typescript.applyFixAllCodeAction";class Y0 extends i{constructor(u,n,h,g=250){super();this._editor=u,this._markerService=n,this._signalChange=h,this._delay=g,this._autoTriggerTimer=this._register(new ai),this.ignoreLightbulbOff=!1,this._register(this._markerService.onMarkerChanged((p)=>this._onMarkerChanges(p))),this._register(this._editor.onDidChangeCursorPosition(()=>this._tryAutoTrigger()))}trigger(u){let n=this._getRangeOfSelectionUnlessWhitespaceEnclosed(u);this._signalChange(n?{trigger:u,selection:n}:void 0)}_onMarkerChanges(u){let n=this._editor.getModel();if(n&&u.some((h)=>bs(h,n.uri)))this._tryAutoTrigger()}_tryAutoTrigger(){this._autoTriggerTimer.cancelAndSet(()=>{this.trigger({type:2,triggerAction:_i.Default})},this._delay)}_getRangeOfSelectionUnlessWhitespaceEnclosed(u){if(!this._editor.hasModel())return;let n=this._editor.getSelection();if(u.type===1)return n;let h=this._editor.getOption(73).enabled;if(h===Os.Off&&!this.ignoreLightbulbOff)return;else if(h===Os.Off||h===Os.On)return n;else if(h===Os.OnCode){if(!n.isEmpty())return n;let p=this._editor.getModel(),{lineNumber:m,column:v}=n.getPosition(),S=p.getLineContent(m);if(S.length===0)return;else if(v===1){if(/\s/.test(S[0]))return}else if(v===p.getLineMaxColumn(m)){if(/\s/.test(S[S.length-1]))return}else if(/\s/.test(S[v-2])&&/\s/.test(S[v-1]))return}return n}}var Pa;(function(u){u.Empty={type:0};class n{constructor(h,g,p){this.trigger=h,this.position=g,this._cancellablePromise=p,this.type=1,this.actions=p.catch((m)=>{if(pi(m))return eh;throw m})}cancel(){this._cancellablePromise.cancel()}}u.Triggered=n})(Pa||(Pa={}));var eh=Object.freeze({allActions:[],validActions:[],dispose:()=>{},documentation:[],hasAutoFix:!1,hasAIFix:!1,allAIFixes:!1});class lb extends i{constructor(u,n,h,g,p,m){super();this._editor=u,this._registry=n,this._markerService=h,this._progressService=p,this._configurationService=m,this._codeActionOracle=this._register(new ce),this._state=Pa.Empty,this._onDidChangeState=this._register(new o),this.onDidChangeState=this._onDidChangeState.event,this.codeActionsDisposable=this._register(new ce),this._disposed=!1,this._ignoreLightbulbOff=!1,this._supportedCodeActions=cb.bindTo(g),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((v)=>{if(v.hasChanged(73))this._update()})),this._update()}dispose(){if(this._disposed)return;this._disposed=!0,super.dispose(),this.setState(Pa.Empty,!0)}_settingEnabledNearbyQuickfixes(){let u=this._editor?.getModel();return this._configurationService?this._configurationService.getValue("editor.codeActionWidget.includeNearbyQuickFixes",{resource:u?.uri}):!1}_update(){if(this._disposed)return;this._codeActionOracle.value=void 0,this.setState(Pa.Empty),this.codeActionsDisposable.clear();let u=this._editor.getModel();if(u&&this._registry.has(u)&&!this._editor.getOption(104)){let n=this._registry.all(u).flatMap((g)=>g.providedCodeActionKinds??[]);this._supportedCodeActions.set(n.join(" "));let h=new Y0(this._editor,this._markerService,(g)=>{if(!g){this.setState(Pa.Empty);return}let p=g.selection.getStartPosition(),m=Yt(async(C)=>{if(this._settingEnabledNearbyQuickfixes()&&g.trigger.type===1&&(g.trigger.triggerAction===_i.QuickFix||g.trigger.filter?.include?.contains(ft.QuickFix))){let T=new d,R=!1;try{let Z=T.add(await Vs(this._registry,u,g.selection,g.trigger,Ua.None,C)),Y=[...Z.allActions];if(C.isCancellationRequested)return eh;let Q=Z.validActions?.some((oe)=>oe.action.kind&&ft.QuickFix.contains(new zt(oe.action.kind))&&!oe.action.isAI),te=this._markerService.read({resource:u.uri});if(Q){for(let ne of Z.validActions)if(ne.action.command?.arguments?.some((he)=>typeof he==="string"&&he.includes(X0)))ne.action.diagnostics=[...te.filter((he)=>he.relatedInformation)];let oe=this._setCodeActions({validActions:Z.validActions,allActions:Y,documentation:Z.documentation,hasAutoFix:Z.hasAutoFix,hasAIFix:Z.hasAIFix,allAIFixes:Z.allAIFixes,dispose:()=>T.dispose()});return R=!0,oe}else if(!Q){if(te.length>0){let oe=g.selection.getPosition(),ne=oe,he=Number.MAX_VALUE,ge=[...Z.validActions];for(let ae of te){let{endColumn:pe,endLineNumber:Me,startLineNumber:Ae}=ae;if(Me===oe.lineNumber||Ae===oe.lineNumber){ne=new s(Me,pe);let We={type:g.trigger.type,triggerAction:g.trigger.triggerAction,filter:{include:g.trigger.filter?.include?g.trigger.filter?.include:ft.QuickFix},autoApply:g.trigger.autoApply,context:{notAvailableMessage:g.trigger.context?.notAvailableMessage||"",position:ne}},Ie=new F(ne.lineNumber,ne.column,ne.lineNumber,ne.column),Ve=T.add(await Vs(this._registry,u,Ie,We,Ua.None,C));if(C.isCancellationRequested)return eh;if(Ve.validActions.length!==0){for(let tt of Ve.validActions)if(tt.action.command?.arguments?.some((qe)=>typeof qe==="string"&&qe.includes(X0)))tt.action.diagnostics=[...te.filter((qe)=>qe.relatedInformation)];if(Z.allActions.length===0)Y.push(...Ve.allActions);if(Math.abs(oe.column-pe)<he)ge.unshift(...Ve.validActions);else ge.push(...Ve.validActions)}he=Math.abs(oe.column-pe)}}let _e=ge.filter((ae,pe,Me)=>Me.findIndex((Ae)=>Ae.action.title===ae.action.title)===pe);_e.sort((ae,pe)=>{if(ae.action.isPreferred&&!pe.action.isPreferred)return-1;else if(!ae.action.isPreferred&&pe.action.isPreferred)return 1;else if(ae.action.isAI&&!pe.action.isAI)return 1;else if(!ae.action.isAI&&pe.action.isAI)return-1;else return 0});let Se=this._setCodeActions({validActions:_e,allActions:Y,documentation:Z.documentation,hasAutoFix:Z.hasAutoFix,hasAIFix:Z.hasAIFix,allAIFixes:Z.allAIFixes,dispose:()=>T.dispose()});return R=!0,Se}}}finally{if(!R)T.dispose()}}if(g.trigger.type===1){let T=await Vs(this._registry,u,g.selection,g.trigger,Ua.None,C);if(C.isCancellationRequested)return T.dispose(),eh;return this._setCodeActions(T)}let x=await Vs(this._registry,u,g.selection,g.trigger,Ua.None,C);if(C.isCancellationRequested)return x.dispose(),eh;return this._setCodeActions(x)});if(g.trigger.type===1)this._progressService?.showWhile(m,250);let v=new Pa.Triggered(g.trigger,p,m),S=!1;if(this._state.type===1)S=this._state.trigger.type===1&&v.type===1&&v.trigger.type===2&&this._state.position!==v.position;if(!S)this.setState(v);else setTimeout(()=>{this.setState(v)},500)},void 0);h.ignoreLightbulbOff=this._ignoreLightbulbOff,this._codeActionOracle.value=h,this._codeActionOracle.value.trigger({type:2,triggerAction:_i.Default})}else this._supportedCodeActions.reset()}_setCodeActions(u){return this.codeActionsDisposable.value=u,u}takeCodeActions(u){if(this.codeActionsDisposable.value!==u)return;return this.codeActionsDisposable.clearAndLeak(),u}trigger(u){this._codeActionOracle.value?.trigger(u),this.codeActionsDisposable.clear()}setState(u,n){if(u===this._state)return;if(this._state.type===1)this._state.cancel();if(this._state=u,!n&&!this._disposed)this._onDidChangeState.fire(u)}}var ST=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},CT=function(u,n){return function(h,g){n(h,g,u)}},zs,Q0=Ht("gutter-lightbulb",_.lightBulb,e(925,"Icon which spawns code actions menu from the gutter when there is no space in the editor.")),eL=Ht("gutter-lightbulb-auto-fix",_.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.")),tL=Ht("gutter-lightbulb-sparkle",_.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.")),iL=Ht("gutter-lightbulb-aifix-auto-fix",_.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.")),oL=Ht("gutter-lightbulb-sparkle-filled",_.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.")),Wn;(function(u){u.Hidden={type:0};class n{constructor(h,g,p,m){this.actions=h,this.trigger=g,this.editorPosition=p,this.widgetPosition=m,this.type=1}}u.Showing=n})(Wn||(Wn={}));function hb(u,n,h,g,p=!1){if(u.validActions.length<=0)return;let m,v=!1;if(u.allAIFixes){if(m=p?oL:_.sparkleFilled,u.validActions.length===1)v=!0}else if(u.hasAutoFix)if(u.hasAIFix)m=p?iL:_.lightbulbSparkleAutofix;else m=p?eL:_.lightbulbAutofix;else if(u.hasAIFix)m=p?tL:_.lightbulbSparkle;else m=p?Q0:_.lightBulb;let S;if(v)S=e(930,"Run: {0}",u.validActions[0].action.title);else if(u.hasAutoFix&&h)S=e(931,"Show Code Actions. Preferred Quick Fix Available ({0})",h);else if(!u.hasAutoFix&&g)S=e(932,"Show Code Actions ({0})",g);else S=e(933,"Show Code Actions");return{actions:u,trigger:n,icon:m,autoRun:v,title:S,isGutter:p}}var Aa=class u extends i{static{zs=this}static{this.GUTTER_DECORATION=de.register({description:"codicon-gutter-lightbulb-decoration",glyphMarginClassName:J.asClassName(_.lightBulb),glyphMargin:{position:ts.Left},stickiness:1})}static{this.ID="editor.contrib.lightbulbWidget"}static{this._posPref=[0]}static _computeLightBulbInfo(n,h,g,p){if(n.type!==1)return;return hb(n.actions,n.trigger,g,p,h)}constructor(n,h){super();this._editor=n,this._keybindingService=h,this.onlyWithEmptySelection=!1,this._onClick=this._register(new o),this.onClick=this._onClick.event,this._state=j(this,Wn.Hidden),this._gutterState=j(this,Wn.Hidden),this._combinedInfo=f(this,(g)=>{let p=this._gutterState.read(g);if(p.type===1)return zs._computeLightBulbInfo(p,!0,this._preferredKbLabel.read(g),this._quickFixKbLabel.read(g));let m=this._state.read(g);if(m.type===1)return zs._computeLightBulbInfo(m,!1,this._preferredKbLabel.read(g),this._quickFixKbLabel.read(g));return}),this._iconClasses=[],this.lightbulbClasses=["codicon-"+Q0.id,"codicon-"+iL.id,"codicon-"+eL.id,"codicon-"+tL.id,"codicon-"+oL.id],this._preferredKbLabel=j(this,void 0),this._quickFixKbLabel=j(this,void 0),this.gutterDecoration=zs.GUTTER_DECORATION,this._domNode=w("div.lightBulbWidget"),this._domNode.role="listbox",this._register(jt.ignoreTarget(this._domNode)),this._editor.addContentWidget(this),this._register(this._editor.onDidChangeModelContent((g)=>{let p=this._editor.getModel(),m=this._state.get();if(m.type!==1||!p||m.editorPosition.lineNumber>=p.getLineCount())this.hide();let v=this._gutterState.get();if(v.type!==1||!p||v.editorPosition.lineNumber>=p.getLineCount())this.gutterHide()})),this._register(_M(this._domNode,(g)=>{let p=this._state.get();if(p.type!==1)return;this._editor.focus(),g.preventDefault();let{top:m,height:v}=kt(this._domNode),S=this._editor.getOption(75),C=Math.floor(S/3);if(p.widgetPosition.position!==null&&p.widgetPosition.position.lineNumber<p.editorPosition.lineNumber)C+=S;this._onClick.fire({x:g.posx,y:m+v+C,actions:p.actions,trigger:p.trigger})})),this._register(c(this._domNode,"mouseenter",(g)=>{if((g.buttons&1)!==1)return;this.hide()})),this._register(I.runAndSubscribe(this._keybindingService.onDidUpdateKeybindings,()=>{this._preferredKbLabel.set(this._keybindingService.lookupKeybinding(oc)?.getLabel()??void 0,void 0),this._quickFixKbLabel.set(this._keybindingService.lookupKeybinding(Bs)?.getLabel()??void 0,void 0)})),this._register(W((g)=>{let p=this._combinedInfo.read(g);this._updateLightBulbTitleAndIcon(p),this._updateGutterDecorationOptions(p)})),this._register(this._editor.onMouseDown(async(g)=>{if(!g.target.element||!this.lightbulbClasses.some((x)=>g.target.element&&g.target.element.classList.contains(x)))return;let p=this._gutterState.get();if(p.type!==1)return;this._editor.focus();let{top:m,height:v}=kt(g.target.element),S=this._editor.getOption(75),C=Math.floor(S/3);if(p.widgetPosition.position!==null&&p.widgetPosition.position.lineNumber<p.editorPosition.lineNumber)C+=S;this._onClick.fire({x:g.event.posx,y:m+v+C,actions:p.actions,trigger:p.trigger})}))}dispose(){if(super.dispose(),this._editor.removeContentWidget(this),this._gutterDecorationID)this._removeGutterDecoration(this._gutterDecorationID)}getId(){return"LightBulbWidget"}getDomNode(){return this._domNode}getPosition(){let n=this._state.get();return n.type===1?n.widgetPosition:null}update(n,h,g){if(n.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===Os.Off)return this.gutterHide(),this.hide();let v=this._editor.getModel();if(!v)return this.gutterHide(),this.hide();let{lineNumber:S,column:C}=v.validatePosition(g),x=v.getOptions().tabSize,T=this._editor.getOptions().get(59),R=v.getLineContent(S),Z=wg(R,x),Y=T.spaceWidth*Z>22,Q=(Se)=>Se>2&&this._editor.getTopForLineNumber(Se)===this._editor.getTopForLineNumber(Se-1),te=this._editor.getLineDecorations(S),oe=!1;if(te)for(let Se of te){let ae=Se.options.glyphMarginClassName;if(ae&&!this.lightbulbClasses.some((pe)=>ae.includes(pe))){oe=!0;break}}let ne=S,he=1;if(!Y){let Se=(ae)=>{let pe=v.getLineContent(ae);return/^\s*$|^\s+/.test(pe)||pe.length<=he};if(S>1&&!Q(S-1)){let ae=v.getLineCount(),pe=S===ae,Me=S>1&&Se(S-1),Ae=!pe&&Se(S+1),We=Se(S),Ie=!Ae&&!Me;if(!Ae&&!Me&&!oe)return this._gutterState.set(new Wn.Showing(n,h,g,{position:{lineNumber:ne,column:he},preference:zs._posPref}),void 0),this.renderGutterLightbub(),this.hide();else if(Me||pe||Me&&!We)ne-=1;else if(Ae||Ie&&We)ne+=1}else if(S===1&&(S===v.getLineCount()||!Se(S+1)&&!Se(S)))if(this._gutterState.set(new Wn.Showing(n,h,g,{position:{lineNumber:ne,column:he},preference:zs._posPref}),void 0),oe)this.gutterHide();else return this.renderGutterLightbub(),this.hide();else if(S<v.getLineCount()&&!Q(S+1))ne+=1;else if(C*T.spaceWidth<22)return this.hide();he=/^\S\s*$/.test(v.getLineContent(ne))?2:1}if(this._state.set(new Wn.Showing(n,h,g,{position:{lineNumber:ne,column:he},preference:zs._posPref}),void 0),this._gutterDecorationID)this._removeGutterDecoration(this._gutterDecorationID),this.gutterHide();let ge=n.validActions,_e=n.validActions[0].action.kind;if(ge.length!==1||!_e){this._editor.layoutContentWidget(this);return}this._editor.layoutContentWidget(this)}hide(){if(this._state.get()===Wn.Hidden)return;this._state.set(Wn.Hidden,void 0),this._editor.layoutContentWidget(this)}gutterHide(){if(this._gutterState.get()===Wn.Hidden)return;if(this._gutterDecorationID)this._removeGutterDecoration(this._gutterDecorationID);this._gutterState.set(Wn.Hidden,void 0)}_updateLightBulbTitleAndIcon(n){if(this._domNode.classList.remove(...this._iconClasses),this._iconClasses=[],!n||n.isGutter)return;this._domNode.title=n.title,this._iconClasses=J.asClassNameArray(n.icon),this._domNode.classList.add(...this._iconClasses)}_updateGutterDecorationOptions(n){if(!n||!n.isGutter)return;this.gutterDecoration=de.register({description:"codicon-gutter-lightbulb-decoration",glyphMarginClassName:J.asClassName(n.icon),glyphMargin:{position:ts.Left},stickiness:1})}renderGutterLightbub(){let n=this._editor.getSelection();if(!n)return;if(this._gutterDecorationID===void 0)this._addGutterDecoration(n.startLineNumber);else this._updateGutterDecoration(this._gutterDecorationID,n.startLineNumber)}_addGutterDecoration(n){this._editor.changeDecorations((h)=>{this._gutterDecorationID=h.addDecoration(new t(n,0,n,0),this.gutterDecoration)})}_removeGutterDecoration(n){this._editor.changeDecorations((h)=>{h.removeDecoration(n),this._gutterDecorationID=void 0})}_updateGutterDecoration(n,h){this._editor.changeDecorations((g)=>{g.changeDecoration(n,new t(h,0,h,0)),g.changeDecorationOptions(n,this.gutterDecoration)})}};Aa=zs=ST([CT(1,me)],Aa);var yT=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Vn=function(u,n){return function(h,g){n(h,g,u)}},nc,xT="quickfix-edit-highlight",_r=class u extends i{static{nc=this}static{this.ID="editor.contrib.codeActionController"}static get(n){return n.getContribution(nc.ID)}constructor(n,h,g,p,m,v,S,C,x,T,R,Z){super();this._commandService=S,this._configurationService=C,this._actionWidgetService=x,this._instantiationService=T,this._progressService=R,this._keybindingService=Z,this._activeCodeActions=this._register(new ce),this._showDisabled=!1,this._disposed=!1,this._onlyLightBulbWithEmptySelection=!1,this._lightBulbInfoObs=j(this,void 0),this._preferredKbLabel=j(this,void 0),this._quickFixKbLabel=j(this,void 0),this._editor=n,this._model=this._register(new lb(this._editor,m.codeActionProvider,h,g,v,C)),this._register(this._model.onDidChangeState((Y)=>this.update(Y))),this._register(I.runAndSubscribe(this._keybindingService.onDidUpdateKeybindings,()=>{this._preferredKbLabel.set(this._keybindingService.lookupKeybinding(oc)?.getLabel()??void 0,void 0),this._quickFixKbLabel.set(this._keybindingService.lookupKeybinding(Bs)?.getLabel()??void 0,void 0)})),this._lightBulbWidget=new ei(()=>{let Y=this._editor.getContribution(Aa.ID);if(Y)this._register(Y.onClick((Q)=>this.showCodeActionsFromLightbulb(Q.actions,Q))),Y.onlyWithEmptySelection=this._onlyLightBulbWithEmptySelection;return Y}),this._resolver=p.createInstance(ap),this._register(this._editor.onDidLayoutChange(()=>this._actionWidgetService.hide()))}dispose(){this._disposed=!0,super.dispose()}async showCodeActionsFromLightbulb(n,h){if(n.allAIFixes&&n.validActions.length===1){let g=n.validActions[0],p=g.action.command;if(p&&p.id==="inlineChat.start"){if(p.arguments&&p.arguments.length>=1&&p.arguments[0])p.arguments[0]={...p.arguments[0],autoSend:!1}}await this.applyCodeAction(g,!1,!1,ur.FromAILightbulb);return}await this.showCodeActionList(n,h,{includeDisabledActions:!1,fromLightbulb:!0})}showCodeActions(n,h,g){return this.showCodeActionList(h,g,{includeDisabledActions:!1,fromLightbulb:!1})}manualTriggerAtCurrentPosition(n,h,g,p){if(!this._editor.hasModel())return;ci.get(this._editor)?.closeMessage();let m=this._editor.getPosition();this._trigger({type:1,triggerAction:h,filter:g,autoApply:p,context:{notAvailableMessage:n,position:m}})}_trigger(n){return this._model.trigger(n)}async applyCodeAction(n,h,g,p){let m=this._progressService.show(!0,500);try{await this._instantiationService.invokeFunction(E0,n,p,{preview:g,editor:this._editor})}finally{if(h)this._trigger({type:2,triggerAction:_i.QuickFix,filter:{}});m.done()}}hideLightBulbWidget(){this._lightBulbWidget.rawValue?.hide(),this._lightBulbWidget.rawValue?.gutterHide()}async update(n){if(n.type!==1){this.hideLightBulbWidget(),this._lightBulbInfoObs.set(void 0,void 0);return}let h;try{h=this._model.takeCodeActions(await n.actions)}catch(p){X(p);return}if(!h)return;if(this._disposed){h.dispose();return}if(this._editor.getSelection()?.startLineNumber!==n.position.lineNumber){h.dispose();return}if(this._lightBulbWidget.value?.update(h,n.trigger,n.position),this._lightBulbInfoObs.set(hb(h,n.trigger,this._preferredKbLabel.get(),this._quickFixKbLabel.get()),void 0),n.trigger.type===1){if(n.trigger.filter?.include){let m=this.tryGetValidActionToApply(n.trigger,h);if(m){try{this.hideLightBulbWidget(),await this.applyCodeAction(m,!1,!1,ur.FromCodeActions)}finally{h.dispose()}return}if(n.trigger.context){let v=this.getInvalidActionThatWouldHaveBeenApplied(n.trigger,h);if(v&&v.action.disabled){ci.get(this._editor)?.showMessage(v.action.disabled,n.trigger.context.position),h.dispose();return}}}let p=!!n.trigger.filter?.include;if(n.trigger.context){if(!h.allActions.length||!p&&!h.validActions.length){ci.get(this._editor)?.showMessage(n.trigger.context.notAvailableMessage,n.trigger.context.position),this._activeCodeActions.value=h,h.dispose();return}}this._activeCodeActions.value=h,this.showCodeActionList(h,this.toCoords(n.position),{includeDisabledActions:p,fromLightbulb:!1})}else if(this._actionWidgetService.isVisible)h.dispose();else this._activeCodeActions.value=h}getInvalidActionThatWouldHaveBeenApplied(n,h){if(!h.allActions.length)return;if(n.autoApply==="first"&&h.validActions.length===0||n.autoApply==="ifSingle"&&h.allActions.length===1)return h.allActions.find(({action:g})=>g.disabled);return}tryGetValidActionToApply(n,h){if(!h.validActions.length)return;if(n.autoApply==="first"&&h.validActions.length>0||n.autoApply==="ifSingle"&&h.validActions.length===1)return h.validActions[0];return}static{this.DECORATION=de.register({description:"quickfix-highlight",className:xT})}async showCodeActionList(n,h,g){let p=this._editor.createDecorationsCollection(),m=this._editor.getDomNode();if(!m)return;let v=g.includeDisabledActions&&(this._showDisabled||n.validActions.length===0)?n.allActions:n.validActions;if(!v.length)return;let S=s.isIPosition(h)?this.toCoords(h):h,C={onSelect:async(x,T)=>{this.applyCodeAction(x,!0,!!T,g.fromLightbulb?ur.FromAILightbulb:ur.FromCodeActions),this._actionWidgetService.hide(!1),p.clear()},onHide:(x)=>{this._editor?.focus(),p.clear()},onHover:async(x,T)=>{if(T.isCancellationRequested)return;let R=!1,Z=x.action.kind;if(Z){let Y=new zt(Z);R=[ft.RefactorExtract,ft.RefactorInline,ft.RefactorRewrite,ft.RefactorMove,ft.Source].some((te)=>te.contains(Y))}return{canPreview:R||!!x.action.edit?.edits.length}},onFocus:(x)=>{if(x&&x.action){let T=x.action.ranges,R=x.action.diagnostics;if(p.clear(),T&&T.length>0){let Z=R&&R?.length>1?R.map((Y)=>({range:Y,options:nc.DECORATION})):T.map((Y)=>({range:Y,options:nc.DECORATION}));p.set(Z)}else if(R&&R.length>0){let Z=R.map((Q)=>({range:Q,options:nc.DECORATION}));p.set(Z);let Y=R[0];if(Y.startLineNumber&&Y.startColumn){let Q=this._editor.getModel()?.getWordAtPosition({lineNumber:Y.startLineNumber,column:Y.startColumn})?.word;Ho(e(914,"Context: {0} at line {1} and column {2}.",Q,Y.startLineNumber,Y.startColumn))}}}else p.clear()}};this._actionWidgetService.show("codeActionWidget",!0,Z0(v,this._shouldShowHeaders(),this._resolver.getResolver()),C,S,m,this._getActionBarActions(n,h,g))}toCoords(n){if(!this._editor.hasModel())return{x:0,y:0};this._editor.revealPosition(n,1),this._editor.render();let h=this._editor.getScrolledVisiblePosition(n),g=kt(this._editor.getDomNode()),p=g.left+h.left,m=g.top+h.top+h.height;return{x:p,y:m}}_shouldShowHeaders(){let n=this._editor?.getModel();return this._configurationService.getValue("editor.codeActionWidget.showHeaders",{resource:n?.uri})}_getActionBarActions(n,h,g){if(g.fromLightbulb)return[];let p=n.documentation.map((m)=>({id:m.id,label:m.title,tooltip:m.tooltip??"",class:void 0,enabled:!0,run:()=>this._commandService.executeCommand(m.id,...m.arguments??[])}));if(g.includeDisabledActions&&n.validActions.length>0&&n.allActions.length!==n.validActions.length)p.push(this._showDisabled?{id:"hideMoreActions",label:e(915,"Hide Disabled"),enabled:!0,tooltip:"",class:void 0,run:()=>(this._showDisabled=!1,this.showCodeActionList(n,h,g))}:{id:"showMoreActions",label:e(916,"Show Disabled"),enabled:!0,tooltip:"",class:void 0,run:()=>(this._showDisabled=!0,this.showCodeActionList(n,h,g))});return p}};_r=nc=yT([Vn(1,Br),Vn(2,G),Vn(3,A),Vn(4,z),Vn(5,Hs),Vn(6,Ue),Vn(7,re),Vn(8,co),Vn(9,A),Vn(10,Hs),Vn(11,me)],_r);Li((u,n)=>{((p,m)=>{if(m)n.addRule(`.monaco-editor ${p} { background-color: ${m}; }`)})(".quickfix-edit-highlight",u.getColor(da));let g=u.getColor(bc);if(g)n.addRule(`.monaco-editor .quickfix-edit-highlight { border: 1px ${br(u.type)?"dotted":"solid"} ${g}; box-sizing: border-box; }`)});function th(u){return L.regex(cb.keys()[0],new RegExp("(\\s|^)"+Ui(u.value)+"\\b"))}var ub={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 Va(u,n,h,g,p=_i.Default){if(u.hasModel())_r.get(u)?.manualTriggerAtCurrentPosition(n,p,h,g)}class gb extends gr{constructor(){super({id:Bs,title:b(904,"Quick Fix..."),precondition:L.and(r.writable,r.hasCodeActionsProvider),icon:_.lightBulb,f1:!0,keybinding:{when:r.textInputFocus,primary:2137,weight:100},menu:{id:l.InlineChatEditorAffordance,group:"1_quickfix",order:0,when:L.and(r.writable,r.hasCodeActionsProvider)}})}runEditorCommand(u,n){return Va(n,e(888,"No code actions available"),void 0,void 0,_i.QuickFix)}}class pb extends nn{constructor(){super({id:op,precondition:L.and(r.writable,r.hasCodeActionsProvider),metadata:{description:"Trigger a code action",args:[{name:"args",schema:ub}]}})}runEditorCommand(u,n,h){let g=Jo.fromUser(h,{kind:zt.Empty,apply:"ifSingle"});return Va(n,typeof h?.kind==="string"?g.preferred?e(889,"No preferred code actions for '{0}' available",h.kind):e(890,"No code actions for '{0}' available",h.kind):g.preferred?e(891,"No preferred code actions available"):e(892,"No code actions available"),{include:g.kind,includeSourceActions:!0,onlyIncludePreferredActions:g.preferred},g.apply)}}class mb extends U{constructor(){super({id:rp,label:b(905,"Refactor..."),precondition:L.and(r.writable,r.hasCodeActionsProvider),kbOpts:{kbExpr:r.textInputFocus,primary:3120,mac:{primary:1328},weight:100},contextMenuOpts:{group:"1_modification",order:2,when:L.and(r.writable,th(ft.Refactor))},metadata:{description:"Refactor...",args:[{name:"args",schema:ub}]}})}run(u,n,h){let g=Jo.fromUser(h,{kind:ft.Refactor,apply:"never"});return Va(n,typeof h?.kind==="string"?g.preferred?e(893,"No preferred refactorings for '{0}' available",h.kind):e(894,"No refactorings for '{0}' available",h.kind):g.preferred?e(895,"No preferred refactorings available"):e(896,"No refactorings available"),{include:ft.Refactor.contains(g.kind)?g.kind:zt.None,onlyIncludePreferredActions:g.preferred},g.apply,_i.Refactor)}}class fb extends U{constructor(){super({id:sp,label:b(906,"Source Action..."),precondition:L.and(r.writable,r.hasCodeActionsProvider),contextMenuOpts:{group:"1_modification",order:2.1,when:L.and(r.writable,th(ft.Source))},metadata:{description:"Source Action...",args:[{name:"args",schema:ub}]}})}run(u,n,h){let g=Jo.fromUser(h,{kind:ft.Source,apply:"never"});return Va(n,typeof h?.kind==="string"?g.preferred?e(897,"No preferred source actions for '{0}' available",h.kind):e(898,"No source actions for '{0}' available",h.kind):g.preferred?e(899,"No preferred source actions available"):e(900,"No source actions available"),{include:ft.Source.contains(g.kind)?g.kind:zt.None,includeSourceActions:!0,onlyIncludePreferredActions:g.preferred},g.apply,_i.SourceAction)}}class _b extends U{constructor(){super({id:Jl,label:b(907,"Organize Imports"),precondition:L.and(r.writable,th(ft.SourceOrganizeImports)),kbOpts:{kbExpr:r.textInputFocus,primary:1581,weight:100},metadata:{description:b(908,"Organize imports in the current file. Also called 'Optimize Imports' by some tools")}})}run(u,n){return Va(n,e(901,"No organize imports action available"),{include:ft.SourceOrganizeImports,includeSourceActions:!0},"ifSingle",_i.OrganizeImports)}}class bb extends U{constructor(){super({id:Ql,label:b(909,"Fix All"),precondition:L.and(r.writable,th(ft.SourceFixAll))})}run(u,n){return Va(n,e(902,"No fix all action available"),{include:ft.SourceFixAll,includeSourceActions:!0},"ifSingle",_i.FixAll)}}class vb extends U{constructor(){super({id:oc,label:b(910,"Auto Fix..."),precondition:L.and(r.writable,th(ft.QuickFix)),kbOpts:{kbExpr:r.textInputFocus,primary:1625,mac:{primary:2649},weight:100}})}run(u,n){return Va(n,e(903,"No auto fixes available"),{include:ft.QuickFix,onlyIncludePreferredActions:!0},"ifSingle",_i.AutoFix)}}fe(_r.ID,_r,3);fe(Aa.ID,Aa,4);lt(gb);O(mb);O(fb);O(_b);O(vb);O(bb);K(new pb);ht.as(Or.Configuration).registerConfiguration({...q0,properties:{"editor.codeActionWidget.showHeaders":{type:"boolean",scope:6,description:e(911,"Enable/disable showing group headers in the Code Action menu."),default:!0}}});ht.as(Or.Configuration).registerConfiguration({...q0,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}}});ht.as(Or.Configuration).registerConfiguration({...q0,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 nL=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},ih=function(u,n){return function(h,g){n(h,g,u)}},dp=class u{static{this.ID="editor.contrib.autoFormat"}constructor(n,h,g,p){this._editor=n,this._languageFeaturesService=h,this._workerService=g,this._accessibilitySignalService=p,this._disposables=new d,this._sessionDisposables=new d,this._disposables.add(h.onTypeFormattingEditProvider.onDidChange(this._update,this)),this._disposables.add(n.onDidChangeModel(()=>this._update())),this._disposables.add(n.onDidChangeModelLanguage(()=>this._update())),this._disposables.add(n.onDidChangeConfiguration((m)=>{if(m.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 n=this._editor.getModel(),[h]=this._languageFeaturesService.onTypeFormattingEditProvider.ordered(n);if(!h||!h.autoFormatTriggerCharacters)return;let g=new bf;for(let p of h.autoFormatTriggerCharacters)g.add(p.charCodeAt(0));this._sessionDisposables.add(this._editor.onDidType((p)=>{let m=p.charCodeAt(p.length-1);if(g.has(m))this._trigger(String.fromCharCode(m))}))}_trigger(n){if(!this._editor.hasModel())return;if(this._editor.getSelections().length>1||!this._editor.getSelection().isEmpty())return;let h=this._editor.getModel(),g=this._editor.getPosition(),p=new Ge,m=this._editor.onDidChangeModelContent((v)=>{if(v.isFlush){p.cancel(),m.dispose();return}for(let S=0,C=v.changes.length;S<C;S++)if(v.changes[S].range.endLineNumber<=g.lineNumber){p.cancel(),m.dispose();return}});BI(this._workerService,this._languageFeaturesService,h,g,n,h.getFormattingOptions(),p.token).then((v)=>{if(p.token.isCancellationRequested)return;if(qn(v))this._accessibilitySignalService.playSignal(nt.format,{userGesture:!1}),Ff.execute(this._editor,v,!0)}).finally(()=>{m.dispose()})}};dp=nL([ih(1,z),ih(2,Pi),ih(3,_s)],dp);var cp=class u{static{this.ID="editor.contrib.formatOnPaste"}constructor(n,h,g){this.editor=n,this._languageFeaturesService=h,this._instantiationService=g,this._callOnDispose=new d,this._callOnModel=new d,this._callOnDispose.add(n.onDidChangeConfiguration(()=>this._update())),this._callOnDispose.add(n.onDidChangeModel(()=>this._update())),this._callOnDispose.add(n.onDidChangeModelLanguage(()=>this._update())),this._callOnDispose.add(h.documentRangeFormattingEditProvider.onDidChange(this._update,this))}dispose(){this._callOnDispose.dispose(),this._callOnModel.dispose()}_update(){if(this._callOnModel.clear(),!this.editor.getOption(64))return;if(!this.editor.hasModel())return;if(!this._languageFeaturesService.documentRangeFormattingEditProvider.has(this.editor.getModel()))return;this._callOnModel.add(this.editor.onDidPaste(({range:n})=>this._trigger(n)))}_trigger(n){if(!this.editor.hasModel())return;if(this.editor.getSelections().length>1)return;this._instantiationService.invokeFunction(HI,this.editor,n,2,Ua.None,ye.None,!1).catch(X)}};cp=nL([ih(1,z),ih(2,A)],cp);class rL extends U{constructor(){super({id:"editor.action.formatDocument",label:b(1072,"Format Document"),precondition:L.and(r.notInCompositeEditor,r.writable,r.hasDocumentFormattingProvider),kbOpts:{kbExpr:r.editorTextFocus,primary:1572,linux:{primary:3111},weight:100},contextMenuOpts:{group:"1_modification",order:1.3}})}async run(u,n){if(n.hasModel()){let h=u.get(A);await u.get(Hs).showWhile(h.invokeFunction(a2,n,1,Ua.None,ye.None,!0),250)}}}class sL extends U{constructor(){super({id:"editor.action.formatSelection",label:b(1073,"Format Selection"),precondition:L.and(r.writable,r.hasDocumentSelectionFormattingProvider),kbOpts:{kbExpr:r.editorTextFocus,primary:hn(2089,2084),weight:100},contextMenuOpts:{when:r.hasNonEmptySelection,group:"1_modification",order:1.31}})}async run(u,n){if(!n.hasModel())return;let h=u.get(A),g=n.getModel(),p=n.getSelections().map((v)=>v.isEmpty()?new t(v.startLineNumber,1,v.startLineNumber,g.getLineMaxColumn(v.startLineNumber)):v);await u.get(Hs).showWhile(h.invokeFunction(HI,n,p,1,Ua.None,ye.None,!0),250)}}fe(dp.ID,dp,2);fe(cp.ID,cp,2);O(rL);O(sL);Te.registerCommand("editor.action.format",async(u)=>{let n=u.get(Ee).getFocusedCodeEditor();if(!n||!n.hasModel())return;let h=u.get(Ue);if(n.getSelection().isEmpty())await h.executeCommand("editor.action.formatDocument");else await h.executeCommand("editor.action.formatSelection")});var lp="editor.action.showHover",aL="editor.action.showDefinitionPreviewHover",dL="editor.action.hideHover",cL="editor.action.scrollUpHover",lL="editor.action.scrollDownHover",hL="editor.action.scrollLeftHover",uL="editor.action.scrollRightHover",gL="editor.action.pageUpHover",pL="editor.action.pageDownHover",mL="editor.action.goToTopHover",fL="editor.action.goToBottomHover",$a="editor.action.increaseHoverVerbosityLevel",_L=e(1160,"Increase Hover Verbosity Level"),Za="editor.action.decreaseHoverVerbosityLevel",bL=e(1161,"Decrease Hover Verbosity Level"),oh="editor.action.hideLongLineWarningHover";function wb(u,n){return!!u[n]}class hp{constructor(u,n){if(this.target=u.target,this.isLeftClick=u.event.leftButton,this.isMiddleClick=u.event.middleButton,this.isRightClick=u.event.rightButton,this.mouseMiddleClickAction=n.mouseMiddleClickAction,this.hasTriggerModifier=wb(u.event,n.triggerModifier),this.isMiddleClick&&n.mouseMiddleClickAction==="ctrlLeftClick")this.isMiddleClick=!1,this.isLeftClick=!0,this.hasTriggerModifier=!0;this.hasSideBySideModifier=wb(u.event,n.triggerSideBySideModifier),this.isNoneOrSingleMouseDown=u.event.detail<=1}}class Sb{constructor(u,n){this.keyCodeIsTriggerKey=u.keyCode===n.triggerKey,this.keyCodeIsSideBySideKey=u.keyCode===n.triggerSideBySideKey,this.hasTriggerModifier=wb(u,n.triggerModifier)}}class nh{constructor(u,n,h,g,p){this.mouseMiddleClickAction=p,this.triggerKey=u,this.triggerModifier=n,this.triggerSideBySideKey=h,this.triggerSideBySideModifier=g}equals(u){return this.triggerKey===u.triggerKey&&this.triggerModifier===u.triggerModifier&&this.triggerSideBySideKey===u.triggerSideBySideKey&&this.triggerSideBySideModifier===u.triggerSideBySideModifier&&this.mouseMiddleClickAction===u.mouseMiddleClickAction}}function vL(u,n){if(u==="altKey"){if(ve)return new nh(57,"metaKey",6,"altKey",n);return new nh(5,"ctrlKey",6,"altKey",n)}if(ve)return new nh(6,"altKey",57,"metaKey",n);return new nh(6,"altKey",5,"ctrlKey",n)}class Kr extends i{constructor(u,n){super();this._onMouseMoveOrRelevantKeyDown=this._register(new o),this.onMouseMoveOrRelevantKeyDown=this._onMouseMoveOrRelevantKeyDown.event,this._onExecute=this._register(new o),this.onExecute=this._onExecute.event,this._onCancel=this._register(new o),this.onCancel=this._onCancel.event,this._editor=u,this._extractLineNumberFromMouseEvent=n?.extractLineNumberFromMouseEvent??((h)=>h.target.position?h.target.position.lineNumber:0),this._opts=vL(this._editor.getOption(86),this._editor.getOption(87)),this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._lineNumberOnMouseDown=0,this._register(this._editor.onDidChangeConfiguration((h)=>{if(h.hasChanged(86)||h.hasChanged(87)){let g=vL(this._editor.getOption(86),this._editor.getOption(87));if(this._opts.equals(g))return;this._opts=g,this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._lineNumberOnMouseDown=0,this._onCancel.fire()}})),this._register(this._editor.onMouseMove((h)=>this._onEditorMouseMove(new hp(h,this._opts)))),this._register(this._editor.onMouseDown((h)=>this._onEditorMouseDown(new hp(h,this._opts)))),this._register(this._editor.onMouseUp((h)=>this._onEditorMouseUp(new hp(h,this._opts)))),this._register(this._editor.onKeyDown((h)=>this._onEditorKeyDown(new Sb(h,this._opts)))),this._register(this._editor.onKeyUp((h)=>this._onEditorKeyUp(new Sb(h,this._opts)))),this._register(this._editor.onMouseDrag(()=>this._resetHandler())),this._register(this._editor.onDidChangeCursorSelection((h)=>this._onDidChangeCursorSelection(h))),this._register(this._editor.onDidChangeModel((h)=>this._resetHandler())),this._register(this._editor.onDidChangeModelContent(()=>this._resetHandler())),this._register(this._editor.onDidScrollChange((h)=>{if(h.scrollTopChanged||h.scrollLeftChanged)this._resetHandler()}))}_onDidChangeCursorSelection(u){if(u.selection&&u.selection.startColumn!==u.selection.endColumn)this._resetHandler()}_onEditorMouseMove(u){this._lastMouseMoveEvent=u,this._onMouseMoveOrRelevantKeyDown.fire([u,null])}_onEditorMouseDown(u){this._hasTriggerKeyOnMouseDown=u.hasTriggerModifier,this._lineNumberOnMouseDown=this._extractLineNumberFromMouseEvent(u)}_onEditorMouseUp(u){let n=this._extractLineNumberFromMouseEvent(u);if(!!this._lineNumberOnMouseDown&&this._lineNumberOnMouseDown===n&&(this._hasTriggerKeyOnMouseDown||u.isMiddleClick&&u.mouseMiddleClickAction==="openLink"))this._onExecute.fire(u)}_onEditorKeyDown(u){if(this._lastMouseMoveEvent&&(u.keyCodeIsTriggerKey||u.keyCodeIsSideBySideKey&&u.hasTriggerModifier))this._onMouseMoveOrRelevantKeyDown.fire([this._lastMouseMoveEvent,u]);else if(u.hasTriggerModifier)this._onCancel.fire()}_onEditorKeyUp(u){if(u.keyCodeIsTriggerKey)this._onCancel.fire()}_resetHandler(){this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._onCancel.fire()}}class Vo{constructor(u,n,h,g){this.isProviderFirst=u,this.parent=n,this.link=h,this._rangeCallback=g,this.id=N0.nextId()}get uri(){return this.link.uri}get range(){return this._range??this.link.targetSelectionRange??this.link.range}set range(u){this._range=u,this._rangeCallback(this)}get ariaMessage(){let u=this.parent.getPreview(this)?.preview(this.range);if(!u)return e(1145,"in {0} on line {1} at column {2}",Mi(this.uri),this.range.startLineNumber,this.range.startColumn);else return e(1146,"{0} in {1} on line {2} at column {3}",u.value,Mi(this.uri),this.range.startLineNumber,this.range.startColumn)}}class wL{constructor(u){this._modelReference=u}dispose(){this._modelReference.dispose()}preview(u,n=8){let h=this._modelReference.object.textEditorModel;if(!h)return;let{startLineNumber:g,startColumn:p,endLineNumber:m,endColumn:v}=u,S=h.getWordUntilPosition({lineNumber:g,column:p-n}),C=new t(g,S.startColumn,g,p),x=new t(m,v,m,1073741824),T=h.getValueInRange(C).replace(/^\s+/,""),R=h.getValueInRange(u),Z=h.getValueInRange(x).replace(/\s+$/,"");return{value:T+R+Z,highlight:{start:T.length,end:T.length+R.length}}}}class Ur{constructor(u,n){this.parent=u,this.uri=n,this.children=[],this._previews=new tn}dispose(){He(this._previews.values()),this._previews.clear()}getPreview(u){return this._previews.get(u.uri)}get ariaMessage(){let u=this.children.length;if(u===1)return e(1147,"1 symbol in {0}, full path {1}",Mi(this.uri),this.uri.fsPath);else return e(1148,"{0} symbols in {1}, full path {2}",u,Mi(this.uri),this.uri.fsPath)}async resolve(u){if(this._previews.size!==0)return this;for(let n of this.children){if(this._previews.has(n.uri))continue;try{let h=await u.createModelReference(n.uri);this._previews.set(n.uri,new wL(h))}catch(h){X(h)}}return this}}class xi{constructor(u,n){this.groups=[],this.references=[],this._onDidChangeReferenceRange=new o,this.onDidChangeReferenceRange=this._onDidChangeReferenceRange.event,this._links=u,this._title=n;let[h]=u;u.sort(xi._compareReferences);let g;for(let p of u){if(!g||!An.isEqual(g.uri,p.uri,!0))g=new Ur(this,p.uri),this.groups.push(g);if(g.children.length===0||xi._compareReferences(p,g.children[g.children.length-1])!==0){let m=new Vo(h===p,g,p,(v)=>this._onDidChangeReferenceRange.fire(v));this.references.push(m),g.children.push(m)}}}dispose(){He(this.groups),this._onDidChangeReferenceRange.dispose(),this.groups.length=0}clone(){return new xi(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(u,n){let{parent:h}=u,g=h.children.indexOf(u),p=h.children.length,m=h.parent.groups.length;if(m===1||n&&g+1<p||!n&&g>0){if(n)g=(g+1)%p;else g=(g+p-1)%p;return h.children[g]}if(g=h.parent.groups.indexOf(h),n)return g=(g+1)%m,h.parent.groups[g].children[0];else return g=(g+m-1)%m,h.parent.groups[g].children[h.parent.groups[g].children.length-1]}nearestReference(u,n){let h=this.references.map((g,p)=>({idx:p,prefixLen:Ao(g.uri.toString(),u.toString()),offsetDist:Math.abs(g.range.startLineNumber-n.lineNumber)*100+Math.abs(g.range.startColumn-n.column)})).sort((g,p)=>{if(g.prefixLen>p.prefixLen)return-1;else if(g.prefixLen<p.prefixLen)return 1;else if(g.offsetDist<p.offsetDist)return-1;else if(g.offsetDist>p.offsetDist)return 1;else return 0})[0];if(h)return this.references[h.idx];return}referenceAt(u,n){for(let h of this.references)if(h.uri.toString()===u.toString()){if(t.containsPosition(h.range,n))return h}return}firstReference(){for(let u of this.references)if(u.isProviderFirst)return u;return this.references[0]}static _compareReferences(u,n){return An.compare(u.uri,n.uri)||t.compareRangesUsingStarts(u.range,n.range)}}var pp=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},mp=function(u,n){return function(h,g){n(h,g,u)}},Cb,up=class u{constructor(n){this._resolverService=n}hasChildren(n){if(n instanceof xi)return!0;if(n instanceof Ur)return!0;return!1}getChildren(n){if(n instanceof xi)return n.groups;if(n instanceof Ur)return n.resolve(this._resolverService).then((h)=>h.children);throw Error("bad tree")}};up=pp([mp(0,Dn)],up);class xb{getHeight(){return 23}getTemplateId(u){if(u instanceof Ur)return rh.id;else return sh.id}}var gp=class u{constructor(n){this._keybindingService=n}getKeyboardNavigationLabel(n){if(n instanceof Vo){let h=n.parent.getPreview(n)?.preview(n.range);if(h)return h.value}return Mi(n.uri)}};gp=pp([mp(0,me)],gp);class Ib{getId(u){return u instanceof Vo?u.id:u.uri}}var yb=class u extends i{constructor(n,h){super();this._labelService=h;let g=document.createElement("div");g.classList.add("reference-file"),this.file=this._register(new yu(g,{supportHighlights:!0})),this.badge=this._register(new vy(k(g,w(".count")),{},j1)),n.appendChild(g)}set(n,h){let g=ff(n.uri);this.file.setLabel(this._labelService.getUriBasenameLabel(n.uri),this._labelService.getUriLabel(g,{relative:!0}),{title:this._labelService.getUriLabel(n.uri),matches:h});let p=n.children.length;if(this.badge.setCount(p),p>1)this.badge.setTitleFormat(e(1139,"{0} references",p));else this.badge.setTitleFormat(e(1140,"{0} reference",p))}};yb=pp([mp(1,Cc)],yb);var rh=class u{static{Cb=this}static{this.id="FileReferencesRenderer"}constructor(n){this._instantiationService=n,this.templateId=Cb.id}renderTemplate(n){return this._instantiationService.createInstance(yb,n)}renderElement(n,h,g){g.set(n.element,Zh(n.filterData))}disposeTemplate(n){n.dispose()}};rh=Cb=pp([mp(0,A)],rh);class SL extends i{constructor(u){super();this.label=this._register(new vu(u))}set(u,n){let h=u.parent.getPreview(u)?.preview(u.range);if(!h||!h.value)this.label.set(`${Mi(u.uri)}:${u.range.startLineNumber+1}:${u.range.startColumn+1}`);else{let{value:g,highlight:p}=h;if(n&&!is.isDefault(n))this.label.element.classList.toggle("referenceMatch",!1),this.label.set(g,Zh(n));else this.label.element.classList.toggle("referenceMatch",!0),this.label.set(g,[p])}}}class sh{constructor(){this.templateId=sh.id}static{this.id="OneReferenceRenderer"}renderTemplate(u){return new SL(u)}renderElement(u,n,h){h.set(u.element,u.filterData)}disposeTemplate(u){u.dispose()}}class Lb{getWidgetAriaLabel(){return e(1141,"References")}getAriaLabel(u){return u.ariaMessage}}var CL=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Xa=function(u,n){return function(h,g){n(h,g,u)}};class Eb{static{this.DecorationOptions=de.register({description:"reference-decoration",stickiness:1,className:"reference-decoration"})}constructor(u,n){this._editor=u,this._model=n,this._decorations=new Map,this._decorationIgnoreSet=new Set,this._callOnDispose=new d,this._callOnModelChange=new d,this._callOnDispose.add(this._editor.onDidChangeModel(()=>this._onModelChanged())),this._onModelChanged()}dispose(){this._callOnModelChange.dispose(),this._callOnDispose.dispose(),this.removeDecorations()}_onModelChanged(){this._callOnModelChange.clear();let u=this._editor.getModel();if(!u)return;for(let n of this._model.references)if(n.uri.toString()===u.uri.toString()){this._addDecorations(n.parent);return}}_addDecorations(u){if(!this._editor.hasModel())return;this._callOnModelChange.add(this._editor.getModel().onDidChangeDecorations(()=>this._onDecorationChanged()));let n=[],h=[];for(let g=0,p=u.children.length;g<p;g++){let m=u.children[g];if(this._decorationIgnoreSet.has(m.id))continue;if(m.uri.toString()!==this._editor.getModel().uri.toString())continue;n.push({range:m.range,options:Eb.DecorationOptions}),h.push(g)}this._editor.changeDecorations((g)=>{let p=g.deltaDecorations([],n);for(let m=0;m<p.length;m++)this._decorations.set(p[m],u.children[h[m]])})}_onDecorationChanged(){let u=[],n=this._editor.getModel();if(!n)return;for(let[h,g]of this._decorations){let p=n.getDecorationRange(h);if(!p)continue;let m=!1;if(t.equalsRange(p,g.range))continue;if(t.spansMultipleLines(p))m=!0;else{let v=g.range.endColumn-g.range.startColumn,S=p.endColumn-p.startColumn;if(v!==S)m=!0}if(m)this._decorationIgnoreSet.add(g.id),u.push(h);else g.range=p}for(let h=0,g=u.length;h<g;h++)this._decorations.delete(u[h]);this._editor.removeDecorations(u)}removeDecorations(){this._editor.removeDecorations([...this._decorations.keys()]),this._decorations.clear()}}class Db{constructor(){this.ratio=0.7,this.heightInLines=18}static fromJSON(u){let n,h;try{let g=JSON.parse(u);n=g.ratio,h=g.heightInLines}catch{}return{ratio:n||0.7,heightInLines:h||18}}}class yL extends U1{}var kb=class u{constructor(n){this.labelService=n,this.disposables=new d}getDragURI(n){if(n instanceof Ur)return n.uri.toString();else if(n instanceof Vo)return e2(n.uri,n.range).toString();return null}getDragLabel(n){if(n.length===0)return;return n.map((g)=>this.labelService.getUriBasenameLabel(g.uri)).join(", ")}onDragStart(n,h){if(!h.dataTransfer)return;let p=n.elements.map((m)=>this.getDragURI(m)).filter(Boolean);if(p.length)h.dataTransfer.setData(gd.RESOURCES,JSON.stringify(p)),h.dataTransfer.setData(gd.TEXT,p.join(`
|
|
31
|
+
`))}onDragOver(){return!1}drop(){}dispose(){this.disposables.dispose()}};kb=CL([Xa(0,Cc)],kb);var fp=class u extends Qd{constructor(n,h,g,p,m,v,S,C,x){super(n,{showFrame:!1,showArrow:!0,isResizeable:!0,isAccessible:!0,supportOnTitleClick:!0},v);this._defaultTreeKeyboardSupport=h,this.layoutData=g,this._textModelResolverService=m,this._instantiationService=v,this._peekViewService=S,this._uriLabel=C,this._keybindingService=x,this._disposeOnNewModel=new d,this._callOnDispose=new d,this._onDidSelectReference=this._callOnDispose.add(new o),this.onDidSelectReference=this._onDidSelectReference.event,this._dim=new at(0,0),this._isClosing=!1,this._applyTheme(p.getColorTheme()),this._callOnDispose.add(p.onDidColorThemeChange(this._applyTheme.bind(this))),this._peekViewService.addExclusiveWidget(n,this),this.create()}get isClosing(){return this._isClosing}dispose(){this._isClosing=!0,this.setModel(void 0),this._callOnDispose.dispose(),this._disposeOnNewModel.dispose(),He(this._preview),He(this._previewNotAvailableMessage),He(this._tree),He(this._previewModelReference),this._splitView.dispose(),super.dispose()}_applyTheme(n){let h=n.getColor(fI)||y.transparent;this.style({arrowColor:h,frameColor:h,headerBackgroundColor:n.getColor(pI)||y.transparent,primaryHeadingColor:n.getColor(Zg),secondaryHeadingColor:n.getColor(Xg)})}show(n){super.show(n,this.layoutData.heightInLines||18)}focusOnReferenceTree(){this._tree.domFocus()}focusOnPreviewEditor(){this._preview.focus()}isPreviewEditorFocused(){return this._preview.hasTextFocus()}_onTitleClick(n){if(this._preview&&this._preview.getModel())this._onDidSelectReference.fire({element:this._getFocusedReference(),kind:n.ctrlKey||n.metaKey||n.altKey?"side":"open",source:"title"})}_fillBody(n){this.setCssClass("reference-zone-widget"),this._messageContainer=k(n,w("div.messages")),fo(this._messageContainer),this._splitView=new j0(n,{orientation:1}),this._previewContainer=k(n,w("div.preview.inline"));let h={scrollBeyondLastLine:!1,scrollbar:{verticalScrollbarSize:14,horizontal:"auto",useShadows:!0,verticalHasArrows:!1,horizontalHasArrows:!1,alwaysConsumeMouseWheel:!0},overviewRulerLanes:2,fixedOverflowWidgets:!0,minimap:{enabled:!1}};this._preview=this._instantiationService.createInstance(Ni,this._previewContainer,h,{},this.editor),fo(this._previewContainer),this._previewNotAvailableMessage=this._instantiationService.createInstance(mu,e(1142,"no preview available"),lo,mu.DEFAULT_CREATION_OPTIONS,null),this._treeContainer=k(n,w("div.ref-tree.inline"));let g={keyboardSupport:this._defaultTreeKeyboardSupport,accessibilityProvider:new Lb,keyboardNavigationLabelProvider:this._instantiationService.createInstance(gp),identityProvider:new Ib,openOnSingleClick:!0,selectionNavigation:!0,overrideStyles:{listBackground:WI},dnd:this._instantiationService.createInstance(kb)};if(this._defaultTreeKeyboardSupport)this._callOnDispose.add(Ct(this._treeContainer,"keydown",(m)=>{if(m.equals(9))this._keybindingService.dispatchEvent(m,m.target),m.stopPropagation()},!0));this._tree=this._instantiationService.createInstance(yL,"ReferencesWidget",this._treeContainer,new xb,[this._instantiationService.createInstance(rh),this._instantiationService.createInstance(sh)],this._instantiationService.createInstance(up),g),this._splitView.addView({onDidChange:I.None,element:this._previewContainer,minimumSize:200,maximumSize:Number.MAX_VALUE,layout:(m)=>{this._preview.layout({height:this._dim.height,width:m})}},F0.Distribute),this._splitView.addView({onDidChange:I.None,element:this._treeContainer,minimumSize:100,maximumSize:Number.MAX_VALUE,layout:(m)=>{this._treeContainer.style.height=`${this._dim.height}px`,this._treeContainer.style.width=`${m}px`,this._tree.layout(this._dim.height,m)}},F0.Distribute),this._disposables.add(this._splitView.onDidSashChange(()=>{if(this._dim.width)this.layoutData.ratio=this._splitView.getViewSize(0)/this._dim.width},void 0));let p=(m,v)=>{if(m instanceof Vo){if(v==="show")this._revealReference(m,!1);this._onDidSelectReference.fire({element:m,kind:v,source:"tree"})}};this._disposables.add(this._tree.onDidOpen((m)=>{if(m.sideBySide)p(m.element,"side");else if(m.editorOptions.pinned)p(m.element,"goto");else p(m.element,"show")})),fo(this._treeContainer)}_onWidth(n){if(this._dim)this._doLayoutBody(this._dim.height,n)}_doLayoutBody(n,h){super._doLayoutBody(n,h),this._dim=new at(h,n),this.layoutData.heightInLines=this._viewZone?this._viewZone.heightInLines:this.layoutData.heightInLines,this._splitView.layout(h),this._splitView.resizeView(0,h*this.layoutData.ratio)}setSelection(n){return this._revealReference(n,!0).then(()=>{if(!this._model)return;this._tree.setSelection([n]),this._tree.setFocus([n])})}setModel(n){if(this._disposeOnNewModel.clear(),this._model=n,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"),Mo(this._messageContainer),Promise.resolve(void 0);return fo(this._messageContainer),this._decorationsManager=new Eb(this._preview,this._model),this._disposeOnNewModel.add(this._decorationsManager),this._disposeOnNewModel.add(this._model.onDidChangeReferenceRange((n)=>this._tree.rerender(n))),this._disposeOnNewModel.add(this._preview.onMouseDown((n)=>{let{event:h,target:g}=n;if(h.detail!==2)return;let p=this._getFocusedReference();if(!p)return;this._onDidSelectReference.fire({element:{uri:p.uri,range:g.range},kind:h.ctrlKey||h.metaKey||h.altKey?"side":"open",source:"editor"})})),this.container.classList.add("results-loaded"),Mo(this._treeContainer),Mo(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[n]=this._tree.getFocus();if(n instanceof Vo)return n;else if(n instanceof Ur){if(n.children.length>0)return n.children[0]}return}async revealReference(n){await this._revealReference(n,!1),this._onDidSelectReference.fire({element:n,kind:"goto",source:"tree"})}async _revealReference(n,h){if(this._revealedReference===n)return;if(this._revealedReference=n,n.uri.scheme!==se.inMemory)this.setTitle(EM(n.uri),this._uriLabel.getUriLabel(ff(n.uri)));else this.setTitle(e(1144,"References"));let g=this._textModelResolverService.createModelReference(n.uri);if(this._tree.getInput()===n.parent)this._tree.reveal(n);else{if(h)this._tree.reveal(n.parent);await this._tree.expand(n.parent),this._tree.reveal(n)}let p=await g;if(!this._model){p.dispose();return}He(this._previewModelReference);let m=p.object;if(m){let v=this._preview.getModel()===m.textEditorModel?0:1,S=t.lift(n.range).collapseToStart();this._previewModelReference=p,this._preview.setModel(m.textEditorModel),this._preview.setSelection(S),this._preview.revealRangeInCenter(S,v)}else this._preview.setModel(this._previewNotAvailableMessage),p.dispose()}};fp=CL([Xa(3,Be),Xa(4,Dn),Xa(5,A),Xa(6,ib),Xa(7,Cc),Xa(8,me)],fp);var IT=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},rc=function(u,n){return function(h,g){n(h,g,u)}},_p,Ya=new M("referenceSearchVisible",!1,e(1136,"Whether reference peek is visible, like 'Peek References' or 'Peek Definition'")),Dh=class u{static{_p=this}static{this.ID="editor.contrib.referencesController"}static get(n){return n.getContribution(_p.ID)}constructor(n,h,g,p,m,v,S,C){this._defaultTreeKeyboardSupport=n,this._editor=h,this._editorService=p,this._notificationService=m,this._instantiationService=v,this._storageService=S,this._configurationService=C,this._disposables=new d,this._requestIdPool=0,this._ignoreModelChangeEvent=!1,this._referenceSearchVisible=Ya.bindTo(g)}dispose(){this._referenceSearchVisible.reset(),this._disposables.dispose(),this._widget?.dispose(),this._model?.dispose(),this._widget=void 0,this._model=void 0}toggleWidget(n,h,g){let p;if(this._widget)p=this._widget.position;if(this.closeWidget(),!!p&&n.containsPosition(p))return;this._peekMode=g,this._referenceSearchVisible.set(!0),this._disposables.add(this._editor.onDidChangeModelLanguage(()=>{this.closeWidget()})),this._disposables.add(this._editor.onDidChangeModel(()=>{if(!this._ignoreModelChangeEvent)this.closeWidget()}));let m="peekViewLayout",v=Db.fromJSON(this._storageService.get(m,0,"{}"));this._widget=this._instantiationService.createInstance(fp,this._editor,this._defaultTreeKeyboardSupport,v),this._widget.setTitle(e(1137,"Loading...")),this._widget.show(n),this._disposables.add(this._widget.onDidClose(()=>{if(h.cancel(),this._widget){if(this._storageService.store(m,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((C)=>{let{element:x,kind:T}=C;if(!x)return;switch(T){case"open":if(C.source!=="editor"||!this._configurationService.getValue("editor.stablePeek"))this.openReference(x,!1,!1);break;case"side":this.openReference(x,!0,!1);break;case"goto":if(g)this._gotoReference(x,!0);else this.openReference(x,!1,!0);break}}));let S=++this._requestIdPool;h.then((C)=>{if(S!==this._requestIdPool||!this._widget){C.dispose();return}return this._model?.dispose(),this._model=C,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 x=this._editor.getModel().uri,T=new s(n.startLineNumber,n.startColumn),R=this._model.nearestReference(x,T);if(R)return this._widget.setSelection(R).then(()=>{if(this._widget&&this._editor.getOption(99)==="editor")this._widget.focusOnPreviewEditor()})}return})},(C)=>{this._notificationService.error(C)})}changeFocusBetweenPreviewAndReferences(){if(!this._widget)return;if(this._widget.isPreviewEditorFocused())this._widget.focusOnReferenceTree();else this._widget.focusOnPreviewEditor()}async goToNextOrPreviousReference(n){if(!this._editor.hasModel()||!this._model||!this._widget)return;let h=this._widget.position;if(!h)return;let g=this._model.nearestReference(this._editor.getModel().uri,h);if(!g)return;let p=this._model.nextOrPreviousReference(g,n),m=this._editor.hasTextFocus(),v=this._widget.isPreviewEditorFocused();if(await this._widget.setSelection(p),await this._gotoReference(p,!1),m)this._editor.focus();else if(this._widget&&v)this._widget.focusOnPreviewEditor()}async revealReference(n){if(!this._editor.hasModel()||!this._model||!this._widget)return;await this._widget.revealReference(n)}closeWidget(n=!0){if(this._widget?.dispose(),this._model?.dispose(),this._referenceSearchVisible.reset(),this._disposables.clear(),this._widget=void 0,this._model=void 0,n)this._editor.focus();this._requestIdPool+=1}_gotoReference(n,h){this._widget?.hide(),this._ignoreModelChangeEvent=!0;let g=t.lift(n.range).collapseToStart();return this._editorService.openCodeEditor({resource:n.uri,options:{selection:g,selectionSource:"code.jump",pinned:h}},this._editor).then((p)=>{if(this._ignoreModelChangeEvent=!1,!p||!this._widget){this.closeWidget();return}if(this._editor===p)this._widget.show(g),this._widget.focusOnReferenceTree();else{let m=_p.get(p),v=this._model.clone();this.closeWidget(),p.focus(),m?.toggleWidget(g,Yt((S)=>Promise.resolve(v)),this._peekMode??!1)}},(p)=>{this._ignoreModelChangeEvent=!1,X(p)})}openReference(n,h,g){if(!h)this.closeWidget();let{uri:p,range:m}=n;this._editorService.openCodeEditor({resource:p,options:{selection:m,selectionSource:"code.jump",pinned:g}},this._editor,h)}};Dh=_p=IT([rc(2,G),rc(3,Ee),rc(4,wt),rc(5,A),rc(6,Pn),rc(7,re)],Dh);function Ja(u,n){let h=$g(u);if(!h)return;let g=Dh.get(h);if(g)n(g)}Nn.registerCommandAndKeybindingRule({id:"togglePeekWidgetFocus",weight:100,primary:hn(2089,60),when:L.or(Ya,ui.inPeekEditor),handler(u){Ja(u,(n)=>{n.changeFocusBetweenPreviewAndReferences()})}});Nn.registerCommandAndKeybindingRule({id:"goToNextReference",weight:90,primary:62,secondary:[70],when:L.or(Ya,ui.inPeekEditor),handler(u){Ja(u,(n)=>{n.goToNextOrPreviousReference(!0)})}});Nn.registerCommandAndKeybindingRule({id:"goToPreviousReference",weight:90,primary:1086,secondary:[1094],when:L.or(Ya,ui.inPeekEditor),handler(u){Ja(u,(n)=>{n.goToNextOrPreviousReference(!1)})}});Te.registerCommandAlias("goToNextReferenceFromEmbeddedEditor","goToNextReference");Te.registerCommandAlias("goToPreviousReferenceFromEmbeddedEditor","goToPreviousReference");Te.registerCommandAlias("closeReferenceSearchEditor","closeReferenceSearch");Te.registerCommand("closeReferenceSearch",(u)=>Ja(u,(n)=>n.closeWidget()));Nn.registerKeybindingRule({id:"closeReferenceSearch",weight:-1,primary:9,secondary:[1033],when:L.and(ui.inPeekEditor,L.not("config.editor.stablePeek"))});Nn.registerKeybindingRule({id:"closeReferenceSearch",weight:250,primary:9,secondary:[1033],when:L.and(Ya,L.not("config.editor.stablePeek"),L.or(r.editorTextFocus,Eg.negate()))});Nn.registerCommandAndKeybindingRule({id:"revealReference",weight:200,primary:3,mac:{primary:3,secondary:[2066]},when:L.and(Ya,PI,W1.negate(),V1.negate()),handler(u){let h=u.get(fa).lastFocusedList?.getFocus();if(Array.isArray(h)&&h[0]instanceof Vo)Ja(u,(g)=>g.revealReference(h[0]))}});Nn.registerCommandAndKeybindingRule({id:"openReferenceToSide",weight:100,primary:2051,mac:{primary:259},when:L.and(Ya,PI,W1.negate(),V1.negate()),handler(u){let h=u.get(fa).lastFocusedList?.getFocus();if(Array.isArray(h)&&h[0]instanceof Vo)Ja(u,(g)=>g.openReference(h[0],!0,!0))}});Te.registerCommand("openReference",(u)=>{let h=u.get(fa).lastFocusedList?.getFocus();if(Array.isArray(h)&&h[0]instanceof Vo)Ja(u,(g)=>g.openReference(h[0],!1,!0))});var xL=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},ah=function(u,n){return function(h,g){n(h,g,u)}},Nb=new M("hasSymbols",!1,e(1153,"Whether there are symbol locations that can be navigated via keyboard-only.")),dh=ie("ISymbolNavigationService"),Tb=class u{constructor(n,h,g,p){this._editorService=h,this._notificationService=g,this._keybindingService=p,this._currentModel=void 0,this._currentIdx=-1,this._ignoreEditorChange=!1,this._ctxHasSymbols=Nb.bindTo(n)}reset(){this._ctxHasSymbols.reset(),this._currentState?.dispose(),this._currentMessage?.close(),this._currentModel=void 0,this._currentIdx=-1}put(n){let h=n.parent.parent;if(h.references.length<=1){this.reset();return}this._currentModel=h,this._currentIdx=h.references.indexOf(n),this._ctxHasSymbols.set(!0),this._showMessage();let g=new Rb(this._editorService),p=g.onDidChange((m)=>{if(this._ignoreEditorChange)return;let v=this._editorService.getActiveCodeEditor();if(!v)return;let S=v.getModel(),C=v.getPosition();if(!S||!C)return;let x=!1,T=!1;for(let R of h.references)if(bs(R.uri,S.uri))x=!0,T=T||t.containsPosition(R.range,C);else if(x)break;if(!x||!T)this.reset()});this._currentState=Dr(g,p)}revealNext(n){if(!this._currentModel)return Promise.resolve();this._currentIdx+=1,this._currentIdx%=this._currentModel.references.length;let h=this._currentModel.references[this._currentIdx];return this._showMessage(),this._ignoreEditorChange=!0,this._editorService.openCodeEditor({resource:h.uri,options:{selection:t.collapseToStart(h.range),selectionRevealType:3}},n).finally(()=>{this._ignoreEditorChange=!1})}_showMessage(){this._currentMessage?.close();let n=this._keybindingService.lookupKeybinding("editor.gotoNextSymbolFromResult"),h=n?e(1154,"Symbol {0} of {1}, {2} for next",this._currentIdx+1,this._currentModel.references.length,n.getLabel()):e(1155,"Symbol {0} of {1}",this._currentIdx+1,this._currentModel.references.length);this._currentMessage=this._notificationService.status(h)}};Tb=xL([ah(0,G),ah(1,Ee),ah(2,wt),ah(3,me)],Tb);xe(dh,Tb,1);K(new class extends nn{constructor(){super({id:"editor.gotoNextSymbolFromResult",precondition:Nb,kbOpts:{weight:100,primary:70}})}runEditorCommand(u,n){return u.get(dh).revealNext(n)}});Nn.registerCommandAndKeybindingRule({id:"editor.gotoNextSymbolFromResult.cancel",weight:100,when:Nb,primary:9,handler(u){u.get(dh).reset()}});var Rb=class u{constructor(n){this._listener=new Map,this._disposables=new d,this._onDidChange=new o,this.onDidChange=this._onDidChange.event,this._disposables.add(n.onCodeEditorRemove(this._onDidRemoveEditor,this)),this._disposables.add(n.onCodeEditorAdd(this._onDidAddEditor,this)),n.listCodeEditors().forEach(this._onDidAddEditor,this)}dispose(){this._disposables.dispose(),this._onDidChange.dispose(),He(this._listener.values())}_onDidAddEditor(n){this._listener.set(n,Dr(n.onDidChangeCursorPosition((h)=>this._onDidChange.fire({editor:n})),n.onDidChangeModelContent((h)=>this._onDidChange.fire({editor:n}))))}_onDidRemoveEditor(n){this._listener.get(n)?.dispose(),this._listener.delete(n)}};Rb=xL([ah(0,Ee)],Rb);function Mb(u,n){if(n.uri.scheme===u.uri.scheme)return!0;if(ng(n.uri,se.walkThroughSnippet,se.vscodeChatCodeBlock,se.vscodeChatCodeCompareBlock))return!1;return!0}async function ch(u,n,h,g,p){let v=h.ordered(u,g).map((C)=>Promise.resolve(p(C,u,n)).then(void 0,(x)=>{yt(x);return})),S=await Promise.all(v);return yo(S.flat()).filter((C)=>Mb(u,C))}function Ks(u,n,h,g,p){return ch(n,h,u,g,(m,v,S)=>m.provideDefinition(v,S,p))}function bp(u,n,h,g,p){return ch(n,h,u,g,(m,v,S)=>m.provideDeclaration(v,S,p))}function vp(u,n,h,g,p){return ch(n,h,u,g,(m,v,S)=>m.provideImplementation(v,S,p))}function wp(u,n,h,g,p){return ch(n,h,u,g,(m,v,S)=>m.provideTypeDefinition(v,S,p))}function lc(u,n,h,g,p,m){return ch(n,h,u,p,async(v,S,C)=>{let x=(await v.provideReferences(S,C,{includeDeclaration:!0},m))?.filter((R)=>Mb(S,R));if(!g||!x||x.length!==2)return x;let T=(await v.provideReferences(S,C,{includeDeclaration:!1},m))?.filter((R)=>Mb(S,R));if(T&&T.length===1)return T;return x})}async function wr(u){let n=await u(),h=new xi(n,""),g=h.references.map((p)=>p.link);return h.dispose(),g}Po("_executeDefinitionProvider",(u,n,h)=>{let g=u.get(z),p=Ks(g.definitionProvider,n,h,!1,ye.None);return wr(()=>p)});Po("_executeDefinitionProvider_recursive",(u,n,h)=>{let g=u.get(z),p=Ks(g.definitionProvider,n,h,!0,ye.None);return wr(()=>p)});Po("_executeTypeDefinitionProvider",(u,n,h)=>{let g=u.get(z),p=wp(g.typeDefinitionProvider,n,h,!1,ye.None);return wr(()=>p)});Po("_executeTypeDefinitionProvider_recursive",(u,n,h)=>{let g=u.get(z),p=wp(g.typeDefinitionProvider,n,h,!0,ye.None);return wr(()=>p)});Po("_executeDeclarationProvider",(u,n,h)=>{let g=u.get(z),p=bp(g.declarationProvider,n,h,!1,ye.None);return wr(()=>p)});Po("_executeDeclarationProvider_recursive",(u,n,h)=>{let g=u.get(z),p=bp(g.declarationProvider,n,h,!0,ye.None);return wr(()=>p)});Po("_executeReferenceProvider",(u,n,h)=>{let g=u.get(z),p=lc(g.referenceProvider,n,h,!1,!1,ye.None);return wr(()=>p)});Po("_executeReferenceProvider_recursive",(u,n,h)=>{let g=u.get(z),p=lc(g.referenceProvider,n,h,!1,!0,ye.None);return wr(()=>p)});Po("_executeImplementationProvider",(u,n,h)=>{let g=u.get(z),p=vp(g.implementationProvider,n,h,!1,ye.None);return wr(()=>p)});Po("_executeImplementationProvider_recursive",(u,n,h)=>{let g=u.get(z),p=vp(g.implementationProvider,n,h,!0,ye.None);return wr(()=>p)});Kn.appendMenuItem(l.EditorContext,{submenu:l.EditorContextPeek,title:e(1096,"Peek"),group:"navigation",order:100});class Qa{static is(u){if(!u||typeof u!=="object")return!1;if(u instanceof Qa)return!0;if(s.isIPosition(u.position)&&u.model)return!0;return!1}constructor(u,n){this.model=u,this.position=n}}class Hi extends gr{static{this._allSymbolNavigationCommands=new Map}static{this._activeAlternativeCommands=new Set}static all(){return Hi._allSymbolNavigationCommands.values()}static _patchConfig(u){let n={...u,f1:!0};if(n.menu){for(let h of De.wrap(n.menu))if(h.id===l.EditorContext||h.id===l.EditorContextPeek)h.when=L.and(u.precondition,h.when)}return n}constructor(u,n){super(Hi._patchConfig(n));this.configuration=u,Hi._allSymbolNavigationCommands.set(n.id,this)}runEditorCommand(u,n,h,g){if(!n.hasModel())return Promise.resolve(void 0);let p=u.get(wt),m=u.get(Ee),v=u.get(Hs),S=u.get(dh),C=u.get(z),x=u.get(A),T=n.getModel(),R=n.getPosition(),Z=Qa.is(h)?h:new Qa(T,R),Y=new Cs(n,5),Q=uc(this._getLocationModel(C,Z.model,Z.position,Y.token),Y.token).then(async(te)=>{if(!te||Y.token.isCancellationRequested)return;zn(te.ariaMessage);let oe;if(te.referenceAt(T.uri,R)){let he=this._getAlternativeCommand(n);if(he!==void 0&&!Hi._activeAlternativeCommands.has(he)&&Hi._allSymbolNavigationCommands.has(he))oe=Hi._allSymbolNavigationCommands.get(he)}let ne=te.references.length;if(ne===0){if(!this.configuration.muteMessage){let he=T.getWordAtPosition(R);ci.get(n)?.showMessage(this._getNoResultFoundMessage(he),R)}}else if(ne===1&&oe)Hi._activeAlternativeCommands.add(this.desc.id),x.invokeFunction((he)=>oe.runEditorCommand(he,n,h,g).finally(()=>{Hi._activeAlternativeCommands.delete(this.desc.id)}));else return this._onResult(m,S,n,te,g)},(te)=>{p.error(te)}).finally(()=>{Y.dispose()});return v.showWhile(Q,250),Q}async _onResult(u,n,h,g,p){let m=this._getGoToPreference(h);if(!(h instanceof Ni)&&(this.configuration.openInPeek||m==="peek"&&g.references.length>1))this._openInPeek(h,g,p);else{let v=g.firstReference(),S=g.references.length>1&&m==="gotoAndPeek",C=await this._openReference(h,u,v,this.configuration.openToSide,!S);if(S&&C)this._openInPeek(C,g,p);else g.dispose();if(m==="goto")n.put(v)}}async _openReference(u,n,h,g,p){let m=void 0;if(hM(h))m=h.targetSelectionRange;if(!m)m=h.range;if(!m)return;let v=await n.openCodeEditor({resource:h.uri,options:{selection:t.collapseToStart(m),selectionRevealType:3,selectionSource:"code.jump"}},u,g);if(!v)return;if(p){let S=v.getModel(),C=v.createDecorationsCollection([{range:m,options:{description:"symbol-navigate-action-highlight",className:"symbolHighlight"}}]);setTimeout(()=>{if(v.getModel()===S)C.clear()},350)}return v}_openInPeek(u,n,h){let g=Dh.get(u);if(g&&u.hasModel())g.toggleWidget(h??u.getSelection(),Yt((p)=>Promise.resolve(n)),this.configuration.openInPeek);else n.dispose()}}class Us extends Hi{async _getLocationModel(u,n,h,g){return new xi(await Ks(u.definitionProvider,n,h,!1,g),e(1097,"Definitions"))}_getNoResultFoundMessage(u){return u&&u.word?e(1098,"No definition found for '{0}'",u.word):e(1099,"No definition found")}_getAlternativeCommand(u){return u.getOption(67).alternativeDefinitionCommand}_getGoToPreference(u){return u.getOption(67).multipleDefinitions}}lt(class u extends Us{static{this.id="editor.action.revealDefinition"}constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:u.id,title:{...b(1123,"Go to Definition"),mnemonicTitle:e(1100,"Go to &&Definition")},precondition:r.hasDefinitionProvider,keybinding:[{when:r.editorTextFocus,primary:70,weight:100},{when:L.and(r.editorTextFocus,MI),primary:2118,weight:100}],menu:[{id:l.EditorContext,group:"navigation",order:1.1},{id:l.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:2}]});Te.registerCommandAlias("editor.action.goToDeclaration",u.id)}});lt(class u extends Us{static{this.id="editor.action.revealDefinitionAside"}constructor(){super({openToSide:!0,openInPeek:!1,muteMessage:!1},{id:u.id,title:b(1124,"Open Definition to the Side"),precondition:L.and(r.hasDefinitionProvider,r.isInEmbeddedEditor.toNegated()),keybinding:[{when:r.editorTextFocus,primary:hn(2089,70),weight:100},{when:L.and(r.editorTextFocus,MI),primary:hn(2089,2118),weight:100}]});Te.registerCommandAlias("editor.action.openDeclarationToTheSide",u.id)}});lt(class u extends Us{static{this.id="editor.action.peekDefinition"}constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:u.id,title:b(1125,"Peek Definition"),precondition:L.and(r.hasDefinitionProvider,ui.notInPeekEditor,r.isInEmbeddedEditor.toNegated()),keybinding:{when:r.editorTextFocus,primary:582,linux:{primary:3140},weight:100},menu:{id:l.EditorContextPeek,group:"peek",order:2}});Te.registerCommandAlias("editor.action.previewDeclaration",u.id)}});class Ob extends Hi{async _getLocationModel(u,n,h,g){return new xi(await bp(u.declarationProvider,n,h,!1,g),e(1101,"Declarations"))}_getNoResultFoundMessage(u){return u&&u.word?e(1102,"No declaration found for '{0}'",u.word):e(1103,"No declaration found")}_getAlternativeCommand(u){return u.getOption(67).alternativeDeclarationCommand}_getGoToPreference(u){return u.getOption(67).multipleDeclarations}}lt(class u extends Ob{static{this.id="editor.action.revealDeclaration"}constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:u.id,title:{...b(1126,"Go to Declaration"),mnemonicTitle:e(1104,"Go to &&Declaration")},precondition:L.and(r.hasDeclarationProvider,r.isInEmbeddedEditor.toNegated()),menu:[{id:l.EditorContext,group:"navigation",order:1.3},{id:l.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:3}]})}_getNoResultFoundMessage(n){return n&&n.word?e(1105,"No declaration found for '{0}'",n.word):e(1106,"No declaration found")}});lt(class u extends Ob{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:"editor.action.peekDeclaration",title:b(1127,"Peek Declaration"),precondition:L.and(r.hasDeclarationProvider,ui.notInPeekEditor,r.isInEmbeddedEditor.toNegated()),menu:{id:l.EditorContextPeek,group:"peek",order:3}})}});class Pb extends Hi{async _getLocationModel(u,n,h,g){return new xi(await wp(u.typeDefinitionProvider,n,h,!1,g),e(1107,"Type Definitions"))}_getNoResultFoundMessage(u){return u&&u.word?e(1108,"No type definition found for '{0}'",u.word):e(1109,"No type definition found")}_getAlternativeCommand(u){return u.getOption(67).alternativeTypeDefinitionCommand}_getGoToPreference(u){return u.getOption(67).multipleTypeDefinitions}}lt(class u extends Pb{static{this.ID="editor.action.goToTypeDefinition"}constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:u.ID,title:{...b(1128,"Go to Type Definition"),mnemonicTitle:e(1110,"Go to &&Type Definition")},precondition:r.hasTypeDefinitionProvider,keybinding:{when:r.editorTextFocus,primary:0,weight:100},menu:[{id:l.EditorContext,group:"navigation",order:1.4},{id:l.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:3}]})}});lt(class u extends Pb{static{this.ID="editor.action.peekTypeDefinition"}constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:u.ID,title:b(1129,"Peek Type Definition"),precondition:L.and(r.hasTypeDefinitionProvider,ui.notInPeekEditor,r.isInEmbeddedEditor.toNegated()),menu:{id:l.EditorContextPeek,group:"peek",order:4}})}});class Ab extends Hi{async _getLocationModel(u,n,h,g){return new xi(await vp(u.implementationProvider,n,h,!1,g),e(1111,"Implementations"))}_getNoResultFoundMessage(u){return u&&u.word?e(1112,"No implementation found for '{0}'",u.word):e(1113,"No implementation found")}_getAlternativeCommand(u){return u.getOption(67).alternativeImplementationCommand}_getGoToPreference(u){return u.getOption(67).multipleImplementations}}lt(class u extends Ab{static{this.ID="editor.action.goToImplementation"}constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:u.ID,title:{...b(1130,"Go to Implementations"),mnemonicTitle:e(1114,"Go to &&Implementations")},precondition:r.hasImplementationProvider,keybinding:{when:r.editorTextFocus,primary:2118,weight:100},menu:[{id:l.EditorContext,group:"navigation",order:1.45},{id:l.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:4}]})}});lt(class u extends Ab{static{this.ID="editor.action.peekImplementation"}constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:u.ID,title:b(1131,"Peek Implementations"),precondition:L.and(r.hasImplementationProvider,ui.notInPeekEditor,r.isInEmbeddedEditor.toNegated()),keybinding:{when:r.editorTextFocus,primary:3142,weight:100},menu:{id:l.EditorContextPeek,group:"peek",order:5}})}});class Fb extends Hi{_getNoResultFoundMessage(u){return u?e(1115,"No references found for '{0}'",u.word):e(1116,"No references found")}_getAlternativeCommand(u){return u.getOption(67).alternativeReferenceCommand}_getGoToPreference(u){return u.getOption(67).multipleReferences}}lt(class u extends Fb{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:"editor.action.goToReferences",title:{...b(1132,"Go to References"),mnemonicTitle:e(1117,"Go to &&References")},precondition:L.and(r.hasReferenceProvider,ui.notInPeekEditor,r.isInEmbeddedEditor.toNegated()),keybinding:{when:r.editorTextFocus,primary:1094,weight:100},menu:[{id:l.EditorContext,group:"navigation",order:1.45},{id:l.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:5}]})}async _getLocationModel(n,h,g,p){return new xi(await lc(n.referenceProvider,h,g,!0,!1,p),e(1118,"References"))}});lt(class u extends Fb{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:"editor.action.referenceSearch.trigger",title:b(1133,"Peek References"),precondition:L.and(r.hasReferenceProvider,ui.notInPeekEditor,r.isInEmbeddedEditor.toNegated()),menu:{id:l.EditorContextPeek,group:"peek",order:6}})}async _getLocationModel(n,h,g,p){return new xi(await lc(n.referenceProvider,h,g,!1,!1,p),e(1119,"References"))}});class IL extends Hi{constructor(u,n,h){super(u,{id:"editor.action.goToLocation",title:b(1134,"Go to Any Symbol"),precondition:L.and(ui.notInPeekEditor,r.isInEmbeddedEditor.toNegated())});this._references=n,this._gotoMultipleBehaviour=h}async _getLocationModel(u,n,h,g){return new xi(this._references,e(1120,"Locations"))}_getNoResultFoundMessage(u){return u&&e(1121,"No results for '{0}'",u.word)||""}_getGoToPreference(u){return this._gotoMultipleBehaviour??u.getOption(67).multipleReferences}_getAlternativeCommand(){return}}Te.registerCommand({id:"editor.action.goToLocations",metadata:{description:"Go to locations from a position in a file",args:[{name:"uri",description:"The text document in which to start",constraint:q},{name:"position",description:"The position at which to start",constraint:s.isIPosition},{name:"locations",description:"An array of locations.",constraint:Array},{name:"multiple",description:"Define what to do when having multiple results, either `peek`, `gotoAndPeek`, or `goto`"},{name:"noResultsMessage",description:"Human readable message that shows when locations is empty."}]},handler:async(u,n,h,g,p,m,v)=>{Fe(q.isUri(n)),Fe(s.isIPosition(h)),Fe(Array.isArray(g)),Fe(typeof p>"u"||typeof p==="string"),Fe(typeof v>"u"||typeof v==="boolean");let S=u.get(Ee),C=await S.openCodeEditor({resource:n},S.getFocusedCodeEditor());if(Ka(C))return C.setPosition(h),C.revealPositionInCenterIfOutsideViewport(h,0),C.invokeWithinContext((x)=>{let T=new class extends IL{_getNoResultFoundMessage(R){return m||super._getNoResultFoundMessage(R)}}({muteMessage:!Boolean(m),openInPeek:Boolean(v),openToSide:!1},g,p);x.get(A).invokeFunction(T.run.bind(T),C)})}});Te.registerCommand({id:"editor.action.peekLocations",metadata:{description:"Peek locations from a position in a file",args:[{name:"uri",description:"The text document in which to start",constraint:q},{name:"position",description:"The position at which to start",constraint:s.isIPosition},{name:"locations",description:"An array of locations.",constraint:Array},{name:"multiple",description:"Define what to do when having multiple results, either `peek`, `gotoAndPeek`, or `goto`"}]},handler:async(u,n,h,g,p)=>{u.get(Ue).executeCommand("editor.action.goToLocations",n,h,g,p,void 0,!0)}});Te.registerCommand({id:"editor.action.findReferences",handler:(u,n,h)=>{Fe(q.isUri(n)),Fe(s.isIPosition(h));let g=u.get(z),p=u.get(Ee);return p.openCodeEditor({resource:n},p.getFocusedCodeEditor()).then((m)=>{if(!Ka(m)||!m.hasModel())return;let v=Dh.get(m);if(!v)return;let S=Yt((x)=>lc(g.referenceProvider,m.getModel(),s.lift(h),!1,!1,x).then((T)=>new xi(T,e(1122,"References")))),C=new t(h.lineNumber,h.column,h.lineNumber,h.column);return Promise.resolve(v.toggleWidget(C,S,!1))})}});Te.registerCommandAlias("editor.action.showReferences","editor.action.peekLocations");var LT=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Hb=function(u,n){return function(h,g){n(h,g,u)}},lh,hc=class u{static{lh=this}static{this.ID="editor.contrib.gotodefinitionatposition"}static{this.MAX_SOURCE_PREVIEW_LINES=8}constructor(n,h,g,p){this.textModelResolverService=h,this.languageService=g,this.languageFeaturesService=p,this.toUnhook=new d,this.toUnhookForKeyboard=new d,this.currentWordAtPosition=null,this.previousPromise=null,this.editor=n,this.linkDecorations=this.editor.createDecorationsCollection();let m=new Kr(n);this.toUnhook.add(m),this.toUnhook.add(m.onMouseMoveOrRelevantKeyDown(([v,S])=>{this.startFindDefinitionFromMouse(v,S??void 0)})),this.toUnhook.add(m.onExecute((v)=>{if(this.isEnabled(v))this.gotoDefinition(v.target.position,v.hasSideBySideModifier).catch((S)=>{X(S)}).finally(()=>{this.removeLinkDecorations()})})),this.toUnhook.add(m.onCancel(()=>{this.removeLinkDecorations(),this.currentWordAtPosition=null}))}static get(n){return n.getContribution(lh.ID)}async startFindDefinitionFromCursor(n){await this.startFindDefinition(n),this.toUnhookForKeyboard.add(this.editor.onDidChangeCursorPosition(()=>{this.currentWordAtPosition=null,this.removeLinkDecorations(),this.toUnhookForKeyboard.clear()})),this.toUnhookForKeyboard.add(this.editor.onKeyDown((h)=>{if(h)this.currentWordAtPosition=null,this.removeLinkDecorations(),this.toUnhookForKeyboard.clear()}))}startFindDefinitionFromMouse(n,h){if(n.target.type===9&&this.linkDecorations.length>0)return;if(!this.editor.hasModel()||!this.isEnabled(n,h)){this.currentWordAtPosition=null,this.removeLinkDecorations();return}let g=n.target.position;this.startFindDefinition(g)}async startFindDefinition(n){this.toUnhookForKeyboard.clear();let h=n?this.editor.getModel()?.getWordAtPosition(n):null;if(!h){this.currentWordAtPosition=null,this.removeLinkDecorations();return}if(this.currentWordAtPosition&&this.currentWordAtPosition.startColumn===h.startColumn&&this.currentWordAtPosition.endColumn===h.endColumn&&this.currentWordAtPosition.word===h.word)return;this.currentWordAtPosition=h;let g=new Pf(this.editor,15);if(this.previousPromise)this.previousPromise.cancel(),this.previousPromise=null;this.previousPromise=Yt((v)=>this.findDefinition(n,v));let p;try{p=await this.previousPromise}catch(v){X(v);return}if(!p||!p.length||!g.validate(this.editor)){this.removeLinkDecorations();return}let m=p[0].originSelectionRange?t.lift(p[0].originSelectionRange):new t(n.lineNumber,h.startColumn,n.lineNumber,h.endColumn);if(p.length>1){let v=m;for(let{originSelectionRange:S}of p)if(S)v=t.plusRange(v,S);this.addDecoration(v,new Mn().appendText(e(1135,"Click to show {0} definitions.",p.length)))}else{let v=p[0];if(!v.uri)return;return this.textModelResolverService.createModelReference(v.uri).then((S)=>{if(!S.object||!S.object.textEditorModel){S.dispose();return}let{object:{textEditorModel:C}}=S,{startLineNumber:x}=v.range;if(x<1||x>C.getLineCount()){S.dispose();return}let T=this.getPreviewValue(C,x,v),R=this.languageService.guessLanguageIdByFilepathOrFirstLine(C.uri);this.addDecoration(m,T?new Mn().appendCodeblock(R?R:"",T):void 0),S.dispose()})}}getPreviewValue(n,h,g){let p=g.range;if(p.endLineNumber-p.startLineNumber>=lh.MAX_SOURCE_PREVIEW_LINES)p=this.getPreviewRangeBasedOnIndentation(n,h);return p=n.validateRange(p),this.stripIndentationFromPreviewRange(n,h,p)}stripIndentationFromPreviewRange(n,h,g){let m=n.getLineFirstNonWhitespaceColumn(h);for(let S=h+1;S<g.endLineNumber;S++){let C=n.getLineFirstNonWhitespaceColumn(S);m=Math.min(m,C)}return n.getValueInRange(g).replace(new RegExp(`^\\s{${m-1}}`,"gm"),"").trim()}getPreviewRangeBasedOnIndentation(n,h){let g=n.getLineFirstNonWhitespaceColumn(h),p=Math.min(n.getLineCount(),h+lh.MAX_SOURCE_PREVIEW_LINES),m=h+1;for(;m<p;m++){let v=n.getLineFirstNonWhitespaceColumn(m);if(g===v)break}return new t(h,1,m+1,1)}addDecoration(n,h){let g={range:n,options:{description:"goto-definition-link",inlineClassName:"goto-definition-link",hoverMessage:h}};this.linkDecorations.set([g])}removeLinkDecorations(){this.linkDecorations.clear()}isEnabled(n,h){return this.editor.hasModel()&&n.isLeftClick&&n.isNoneOrSingleMouseDown&&n.target.type===6&&!(n.target.detail.injectedText?.options instanceof bd)&&(n.hasTriggerModifier||(h?h.keyCodeIsTriggerKey:!1))&&this.languageFeaturesService.definitionProvider.has(this.editor.getModel())}findDefinition(n,h){let g=this.editor.getModel();if(!g)return Promise.resolve(null);return Ks(this.languageFeaturesService.definitionProvider,g,n,!1,h)}async gotoDefinition(n,h){return this.editor.setPosition(n),this.editor.invokeWithinContext((g)=>{let p=!h&&this.editor.getOption(101)&&!this.isInPeekEditor(g);return new Us({openToSide:h,openInPeek:p,muteMessage:!0},{title:{value:"",original:""},id:"",precondition:void 0}).run(g)})}isInPeekEditor(n){let h=n.get(G);return ui.inPeekEditor.getValue(h)}dispose(){this.toUnhook.dispose(),this.toUnhookForKeyboard.dispose()}};hc=lh=LT([Hb(1,Dn),Hb(2,xt),Hb(3,z)],hc);fe(hc.ID,hc,2);var Un="editor.action.inlineSuggest.commit",ed="editor.action.inlineSuggest.commitAlternativeAction",Sp="editor.action.inlineSuggest.showPrevious",Cp="editor.action.inlineSuggest.showNext",yc="editor.action.inlineSuggest.jump",yp="editor.action.inlineSuggest.hide",hh="editor.action.inlineSuggest.toggleShowCollapsed",Wb="editor.action.inlineSuggest.renameSymbol";var Vb=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},on=function(u,n){return function(h,g){n(h,g,u)}},xp,Ip=class u extends i{constructor(n,h,g){super();this.editor=n,this.model=h,this.instantiationService=g,this.alwaysShowToolbar=Pe(this,this.editor.onDidChangeConfiguration,()=>this.editor.getOption(71).showToolbar==="always"),this.sessionPosition=void 0,this.position=f(this,(p)=>{let m=this.model.read(p)?.primaryGhostText.read(p);if(!this.alwaysShowToolbar.read(p)||!m||m.parts.length===0)return this.sessionPosition=void 0,null;let v=m.parts[0].column;if(this.sessionPosition&&this.sessionPosition.lineNumber!==m.lineNumber)this.sessionPosition=void 0;let S=new s(m.lineNumber,Math.min(v,this.sessionPosition?.column??Number.MAX_SAFE_INTEGER));return this.sessionPosition=S,S}),this._register(ni((p,m)=>{let v=this.model.read(p);if(!v||!this.alwaysShowToolbar.read(p))return;let S=f((x)=>{let T=x.store.add(this.instantiationService.createInstance(qr.hot.read(x),this.editor,!0,this.position,v.selectedInlineCompletionIndex,v.inlineCompletionsCount,v.activeCommands,v.warning,()=>{}));return n.addContentWidget(T),x.store.add(N(()=>n.removeContentWidget(T))),x.store.add(W((R)=>{if(!this.position.read(R))return;if(v.lastTriggerKind.read(R)!==hr.Explicit)v.triggerExplicitly()})),T}),C=mr(this,(x,T)=>!!this.position.read(x)||!!T);m.add(W((x)=>{if(C.read(x))S.read(x)}))}))}};Ip=Vb([on(2,A)],Ip);var kT=Ht("inline-suggestion-hints-next",_.chevronRight,e(1270,"Icon for show next parameter hint.")),ET=Ht("inline-suggestion-hints-previous",_.chevronLeft,e(1271,"Icon for show previous parameter hint.")),qr=class u extends i{static{xp=this}static{this.hot=yy(this)}static{this._dropDownVisible=!1}static get dropDownVisible(){return this._dropDownVisible}static{this.id=0}createCommandAction(n,h,g){let p=new xo(n,h,g,!0,()=>this._commandService.executeCommand(n));return p.tooltip=this.keybindingService.appendKeybinding(h,n,this._contextKeyService),p}constructor(n,h,g,p,m,v,S,C,x,T,R,Z,Y){super();this.editor=n,this.withBorder=h,this._position=g,this._currentSuggestionIdx=p,this._suggestionCount=m,this._extraCommands=v,this._warning=S,this._relayout=C,this._commandService=x,this.keybindingService=R,this._contextKeyService=Z,this._menuService=Y,this.id=`InlineSuggestionHintsContentWidget${xp.id++}`,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._warningMessageContentNode=f((Q)=>{let te=this._warning.read(Q);if(!te)return;if(typeof te.message==="string")return te.message;return Q.store.add(Ll(te.message)).element}),this._warningMessageNode=ue.div({class:"warningMessage",style:{maxWidth:400,margin:4,marginBottom:4,display:f((Q)=>this._warning.read(Q)?"block":"none")}},[this._warningMessageContentNode]).keepUpdated(this._store),this.nodes=Re("div.inlineSuggestionsHints",{className:this.withBorder?"monaco-hover monaco-hover-content":""},[this._warningMessageNode.element,Re("div@toolBar")]),this.previousAction=this._register(this.createCommandAction(Sp,e(1272,"Previous"),J.asClassName(ET))),this.availableSuggestionCountAction=this._register(new xo("inlineSuggestionHints.availableSuggestionCount","",void 0,!1)),this.nextAction=this._register(this.createCommandAction(Cp,e(1273,"Next"),J.asClassName(kT))),this.inlineCompletionsActionsMenus=this._register(this._menuService.createMenu(l.InlineCompletionsActions,this._contextKeyService)),this.clearAvailableSuggestionCountLabelDebounced=this._register(new Ce(()=>{this.availableSuggestionCountAction.label=""},100)),this.disableButtonsDebounced=this._register(new Ce(()=>{this.previousAction.enabled=this.nextAction.enabled=!1},100)),this._register(W((Q)=>{this._warningMessageContentNode.read(Q),this._warningMessageNode.readEffect(Q),this._relayout()})),this.toolBar=this._register(T.createInstance(Bb,this.nodes.toolBar,l.InlineSuggestionToolbar,{menuOptions:{renderShortTitle:!0},toolbarOptions:{primaryGroup:(Q)=>Q.startsWith("primary")},actionViewItemProvider:(Q,te)=>{if(Q instanceof Ki)return T.createInstance(kL,Q,void 0);if(Q===this.availableSuggestionCountAction){let oe=new LL(void 0,Q,{label:!0,icon:!1});return oe.setClass("availableSuggestionCount"),oe}return},telemetrySource:"InlineSuggestionToolbar"})),this.toolBar.setPrependedPrimaryActions([this.previousAction,this.availableSuggestionCountAction,this.nextAction]),this._register(this.toolBar.onDidChangeDropdownVisibility((Q)=>{xp._dropDownVisible=Q})),this._register(W((Q)=>{this._position.read(Q),this.editor.layoutContentWidget(this)})),this._register(W((Q)=>{let te=this._suggestionCount.read(Q),oe=this._currentSuggestionIdx.read(Q);if(te!==void 0)this.clearAvailableSuggestionCountLabelDebounced.cancel(),this.availableSuggestionCountAction.label=`${oe+1}/${te}`;else this.clearAvailableSuggestionCountLabelDebounced.schedule();if(te!==void 0&&te>1)this.disableButtonsDebounced.cancel(),this.previousAction.enabled=this.nextAction.enabled=!0;else this.disableButtonsDebounced.schedule()})),this._register(W((Q)=>{let oe=this._extraCommands.read(Q).map((ne)=>({class:void 0,id:ne.command.id,enabled:!0,tooltip:ne.command.tooltip||"",label:ne.command.title,run:()=>this._commandService.executeCommand(ne.command.id,...ne.command.arguments??[])}));for(let[ne,he]of this.inlineCompletionsActionsMenus.getActions())for(let ge of he)if(ge instanceof Ki)oe.push(ge);if(oe.length>0)oe.unshift(new dt);this.toolBar.setAdditionalSecondaryActions(oe)}))}getId(){return this.id}getDomNode(){return this.nodes.root}getPosition(){return{position:this._position.get(),preference:[1,2],positionAffinity:3}}};qr=xp=Vb([on(8,Ue),on(9,A),on(10,me),on(11,G),on(12,Oi)],qr);class LL extends Sc{constructor(){super(...arguments);this._className=void 0}setClass(u){this._className=u}render(u){if(super.render(u),this._className)u.classList.add(this._className)}updateTooltip(){}}class kL extends $l{updateLabel(){let u=this._keybindingService.lookupKeybinding(this._action.id,this._contextKeyService,!0);if(!u)return super.updateLabel();if(this.label){let n=Re("div.keybinding").root;this._register(new qa(n,Ai,{disableTitle:!0,...ek})).set(u),this.label.textContent=this._action.label,this.label.appendChild(n),this.label.classList.add("inlineSuggestionStatusBarItemLabel")}}updateTooltip(){}}var Bb=class u extends J0{constructor(n,h,g,p,m,v,S,C,x){super(n,{resetMenu:h,...g},p,m,v,S,C,x);this.menuId=h,this.options2=g,this.menuService=p,this.contextKeyService=m,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:n,secondary:h}=Tg(this.menu.getActions(this.options2?.menuOptions),this.options2?.toolbarOptions?.primaryGroup,this.options2?.toolbarOptions?.shouldInlineSubmenu,this.options2?.toolbarOptions?.useSeparatorsInPrimaryActions);h.push(...this.additionalActions),n.unshift(...this.prependedPrimaryActions),n.push(...this.additionalPrimaryActions),this.setActions(n,h)}setPrependedPrimaryActions(n){if(ot(this.prependedPrimaryActions,n,(h,g)=>h===g))return;this.prependedPrimaryActions=n,this.updateToolbar()}setAdditionalSecondaryActions(n){if(ot(this.additionalActions,n,(h,g)=>h===g))return;this.additionalActions=n,this.updateToolbar()}};Bb=Vb([on(3,Oi),on(4,G),on(5,Yn),on(6,me),on(7,Ue),on(8,Bn)],Bb);function qs(u,n,h){let g=kt(u);if(n<g.left+3||n>g.left+g.width-3||h<g.top+3||h>g.top+g.height-3)return!1;return!0}function Lp(u,n,h){if(u==="on")return!0;if(u==="off")return!1;return uh(n,h.event)}function uh(u,n){if(u==="altKey")return n.ctrlKey||n.metaKey;return n.altKey}class EL{constructor(u,n,h,g){this.value=u,this.isComplete=n,this.hasLoadingMessage=h,this.options=g}}class gh extends i{constructor(u,n){super();this._editor=u,this._computer=n,this._onResult=this._register(new o),this.onResult=this._onResult.event,this._asyncComputationScheduler=this._register(new kp((h)=>this._triggerAsyncComputation(h),0)),this._syncComputationScheduler=this._register(new kp((h)=>this._triggerSyncComputation(h),0)),this._loadingMessageScheduler=this._register(new kp((h)=>this._triggerLoadingMessage(h),0)),this._state=0,this._asyncIterable=null,this._asyncIterableDone=!1,this._result=[]}dispose(){if(this._asyncIterable)this._asyncIterable.cancel(),this._asyncIterable=null;this._options=void 0,super.dispose()}get _hoverTime(){return this._editor.getOption(69).delay}get _firstWaitTime(){return this._hoverTime/2}get _secondWaitTime(){return this._hoverTime-this._firstWaitTime}get _loadingMessageTime(){return 3*this._hoverTime}_setState(u,n){this._options=n,this._state=u,this._fireResult(n)}_triggerAsyncComputation(u){if(this._setState(2,u),this._syncComputationScheduler.schedule(u,this._secondWaitTime),this._computer.computeAsync)this._asyncIterableDone=!1,this._asyncIterable=vM((n)=>this._computer.computeAsync(u,n)),(async()=>{try{for await(let n of this._asyncIterable)if(n)this._result.push(n),this._fireResult(u);if(this._asyncIterableDone=!0,this._state===3||this._state===4)this._setState(0,u)}catch(n){X(n)}})();else this._asyncIterableDone=!0}_triggerSyncComputation(u){if(this._computer.computeSync)this._result=this._result.concat(this._computer.computeSync(u));this._setState(this._asyncIterableDone?0:3,u)}_triggerLoadingMessage(u){if(this._state===3)this._setState(4,u)}_fireResult(u){if(this._state===1||this._state===2)return;let n=this._state===0,h=this._state===4;this._onResult.fire(new EL(this._result.slice(0),n,h,u))}start(u,n){if(u===0){if(this._state===0)this._setState(1,n),this._asyncComputationScheduler.schedule(n,this._firstWaitTime),this._loadingMessageScheduler.schedule(n,this._loadingMessageTime)}else switch(this._state){case 0:this._triggerAsyncComputation(n),this._syncComputationScheduler.cancel(),this._triggerSyncComputation(n);break;case 2:this._syncComputationScheduler.cancel(),this._triggerSyncComputation(n);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 kp extends i{constructor(u,n){super();this._scheduler=this._register(new Ce(()=>u(this._options),n))}schedule(u,n){this._options=u,this._scheduler.schedule(n)}cancel(){this._scheduler.cancel()}}class ph{constructor(u,n,h,g){this.priority=u,this.range=n,this.initialMousePosX=h,this.initialMousePosY=g,this.type=1}equals(u){return u.type===1&&this.range.equalsRange(u.range)}canAdoptVisibleHover(u,n){return u.type===1&&n.lineNumber===this.range.startLineNumber}}class $s{constructor(u,n,h,g,p,m){this.priority=u,this.owner=n,this.range=h,this.initialMousePosX=g,this.initialMousePosY=p,this.supportsMarkerHover=m,this.type=2}equals(u){return u.type===2&&this.owner===u.owner}canAdoptVisibleHover(u,n){return u.type===2&&this.owner===u.owner}}class Ko{constructor(u,n){this.renderedHoverParts=u,this.disposables=n}dispose(){for(let u of this.renderedHoverParts)u.dispose();this.disposables?.dispose()}}var fl=new class u{constructor(){this._participants=[]}register(n){this._participants.push(n)}getAll(){return this._participants}};class td{get onDidWillResize(){return this._onDidWillResize.event}get onDidResize(){return this._onDidResize.event}constructor(){this._onDidWillResize=new o,this._onDidResize=new o,this._sashListener=new d,this._size=new at(0,0),this._minSize=new at(0,0),this._maxSize=new at(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER),this.domNode=document.createElement("div"),this._eastSash=new go(this.domNode,{getVerticalSashLeft:()=>this._size.width},{orientation:0}),this._westSash=new go(this.domNode,{getVerticalSashLeft:()=>0},{orientation:0}),this._northSash=new go(this.domNode,{getHorizontalSashTop:()=>0},{orientation:1,orthogonalEdge:P0.North}),this._southSash=new go(this.domNode,{getHorizontalSashTop:()=>this._size.height},{orientation:1,orthogonalEdge:P0.South}),this._northSash.orthogonalStartSash=this._westSash,this._northSash.orthogonalEndSash=this._eastSash,this._southSash.orthogonalStartSash=this._westSash,this._southSash.orthogonalEndSash=this._eastSash;let u,n=0,h=0;this._sashListener.add(I.any(this._northSash.onDidStart,this._eastSash.onDidStart,this._southSash.onDidStart,this._westSash.onDidStart)(()=>{if(u===void 0)this._onDidWillResize.fire(),u=this._size,n=0,h=0})),this._sashListener.add(I.any(this._northSash.onDidEnd,this._eastSash.onDidEnd,this._southSash.onDidEnd,this._westSash.onDidEnd)(()=>{if(u!==void 0)u=void 0,n=0,h=0,this._onDidResize.fire({dimension:this._size,done:!0})})),this._sashListener.add(this._eastSash.onDidChange((g)=>{if(u)h=g.currentX-g.startX,this.layout(u.height+n,u.width+h),this._onDidResize.fire({dimension:this._size,done:!1,east:!0})})),this._sashListener.add(this._westSash.onDidChange((g)=>{if(u)h=-(g.currentX-g.startX),this.layout(u.height+n,u.width+h),this._onDidResize.fire({dimension:this._size,done:!1,west:!0})})),this._sashListener.add(this._northSash.onDidChange((g)=>{if(u)n=-(g.currentY-g.startY),this.layout(u.height+n,u.width+h),this._onDidResize.fire({dimension:this._size,done:!1,north:!0})})),this._sashListener.add(this._southSash.onDidChange((g)=>{if(u)n=g.currentY-g.startY,this.layout(u.height+n,u.width+h),this._onDidResize.fire({dimension:this._size,done:!1,south:!0})})),this._sashListener.add(I.any(this._eastSash.onDidReset,this._westSash.onDidReset)((g)=>{if(this._preferredSize)this.layout(this._size.height,this._preferredSize.width),this._onDidResize.fire({dimension:this._size,done:!0})})),this._sashListener.add(I.any(this._northSash.onDidReset,this._southSash.onDidReset)((g)=>{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(u,n,h,g){this._northSash.state=u?3:0,this._eastSash.state=n?3:0,this._southSash.state=h?3:0,this._westSash.state=g?3:0}layout(u=this.size.height,n=this.size.width){let{height:h,width:g}=this._minSize,{height:p,width:m}=this._maxSize;u=Math.max(h,Math.min(p,u)),n=Math.max(g,Math.min(m,n));let v=new at(n,u);if(!at.equals(v,this._size))this.domNode.style.height=u+"px",this.domNode.style.width=n+"px",this._size=v,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(u){this._maxSize=u}get maxSize(){return this._maxSize}set minSize(u){this._minSize=u}get minSize(){return this._minSize}set preferredSize(u){this._preferredSize=u}get preferredSize(){return this._preferredSize}}var DT=30,TT=24;class zb extends i{constructor(u,n=new at(10,10)){super();this._editor=u,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._resizableNode=this._register(new td),this._contentPosition=null,this._isResizing=!1,this._resizableNode.domNode.style.position="absolute",this._resizableNode.minSize=at.lift(n),this._resizableNode.layout(n.height,n.width),this._resizableNode.enableSashes(!0,!0,!0,!0),this._register(this._resizableNode.onDidResize((h)=>{if(this._resize(new at(h.dimension.width,h.dimension.height)),h.done)this._isResizing=!1})),this._register(this._resizableNode.onDidWillResize(()=>{this._isResizing=!0}))}get isResizing(){return this._isResizing}getDomNode(){return this._resizableNode.domNode}getPosition(){return this._contentPosition}get position(){return this._contentPosition?.position?s.lift(this._contentPosition.position):void 0}_availableVerticalSpaceAbove(u){let n=this._editor.getDomNode(),h=this._editor.getScrolledVisiblePosition(u);if(!n||!h)return;return kt(n).top+h.top-DT}_availableVerticalSpaceBelow(u){let n=this._editor.getDomNode(),h=this._editor.getScrolledVisiblePosition(u);if(!n||!h)return;let g=kt(n),p=la(n.ownerDocument.body),m=g.top+h.top+h.height;return p.height-m-TT}_findPositionPreference(u,n){let h=Math.min(this._availableVerticalSpaceBelow(n)??1/0,u),g=Math.min(this._availableVerticalSpaceAbove(n)??1/0,u),p=Math.min(Math.max(g,h),u),m=Math.min(u,p),v;if(this._editor.getOption(69).above)v=m<=g?1:2;else v=m<=h?2:1;if(v===1)this._resizableNode.enableSashes(!0,!0,!1,!1);else this._resizableNode.enableSashes(!1,!0,!0,!1);return v}_resize(u){this._resizableNode.layout(u.height,u.width)}}var RT=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Ep=function(u,n){return function(h,g){n(h,g,u)}},cn,DL=30,Dp=class u extends zb{static{cn=this}static{this.ID="editor.contrib.resizableContentHoverWidget"}static{this._lastDimensions=new at(0,0)}get isVisibleFromKeyboard(){return this._renderedHover?.source===2}get isVisible(){return this._hoverVisibleKey.get()??!1}get isFocused(){return this._hoverFocusedKey.get()??!1}constructor(n,h,g,p,m){let v=n.getOption(75)+8,S=150,C=new at(150,v);super(n,C);this._configurationService=g,this._accessibilityService=p,this._keybindingService=m,this._hover=this._register(new _g(!0)),this._onDidResize=this._register(new o),this.onDidResize=this._onDidResize.event,this._onDidScroll=this._register(new o),this.onDidScroll=this._onDidScroll.event,this._onContentsChanged=this._register(new o),this.onContentsChanged=this._onContentsChanged.event,this._minimumSize=C,this._hoverVisibleKey=r.hoverVisible.bindTo(h),this._hoverFocusedKey=r.hoverFocused.bindTo(h),k(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((T)=>{if(T.hasChanged(59))this._updateFont()}));let x=this._register(gi(this._resizableNode.domNode));this._register(x.onDidFocus(()=>{this._hoverFocusedKey.set(!0)})),this._register(x.onDidBlur(()=>{this._hoverFocusedKey.set(!1)})),this._register(this._hover.scrollbar.onScroll((T)=>{this._onDidScroll.fire(T)})),this._setRenderedHover(void 0),this._editor.addContentWidget(this)}dispose(){super.dispose(),this._renderedHover?.dispose(),this._editor.removeContentWidget(this)}getId(){return cn.ID}static _applyDimensions(n,h,g){let p=typeof h==="number"?`${h}px`:h,m=typeof g==="number"?`${g}px`:g;n.style.width=p,n.style.height=m}_setContentsDomNodeDimensions(n,h){let g=this._hover.contentsDomNode;return cn._applyDimensions(g,n,h)}_setContainerDomNodeDimensions(n,h){let g=this._hover.containerDomNode;return cn._applyDimensions(g,n,h)}_setScrollableElementDimensions(n,h){let g=this._hover.scrollbar.getDomNode();return cn._applyDimensions(g,n,h)}_setHoverWidgetDimensions(n,h){this._setContainerDomNodeDimensions(n,h),this._setScrollableElementDimensions(n,h),this._setContentsDomNodeDimensions(n,h),this._layoutContentWidget()}static _applyMaxDimensions(n,h,g){let p=typeof h==="number"?`${h}px`:h,m=typeof g==="number"?`${g}px`:g;n.style.maxWidth=p,n.style.maxHeight=m}_setHoverWidgetMaxDimensions(n,h){cn._applyMaxDimensions(this._hover.contentsDomNode,n,h),cn._applyMaxDimensions(this._hover.scrollbar.getDomNode(),n,h),cn._applyMaxDimensions(this._hover.containerDomNode,n,h),this._hover.containerDomNode.style.setProperty("--vscode-hover-maxWidth",typeof n==="number"?`${n}px`:n),this._layoutContentWidget()}_setAdjustedHoverWidgetDimensions(n){this._setHoverWidgetMaxDimensions("none","none"),this._setHoverWidgetDimensions(n.width,n.height)}_updateResizableNodeMaxDimensions(){let n=this._findMaximumRenderingWidth()??1/0,h=this._findMaximumRenderingHeight()??1/0;this._resizableNode.maxSize=new at(n,h),this._setHoverWidgetMaxDimensions(n,h)}_resize(n){cn._lastDimensions=new at(n.width,n.height),this._setAdjustedHoverWidgetDimensions(n),this._resizableNode.layout(n.height,n.width),this._updateResizableNodeMaxDimensions(),this._hover.scrollbar.scanDomNode(),this._editor.layoutContentWidget(this),this._onDidResize.fire()}_findAvailableSpaceVertically(){let n=this._renderedHover?.showAtPosition;if(!n)return;return this._positionPreference===1?this._availableVerticalSpaceAbove(n):this._availableVerticalSpaceBelow(n)}_findMaximumRenderingHeight(){let n=this._findAvailableSpaceVertically();if(!n)return;let g=this._hover.contentsDomNode.children.length-1;return Array.from(this._hover.contentsDomNode.children).forEach((p)=>{g+=p.clientHeight}),Math.min(n,g)}_isHoverTextOverflowing(){this._hover.containerDomNode.style.setProperty("--vscode-hover-whiteSpace","nowrap"),this._hover.containerDomNode.style.setProperty("--vscode-hover-sourceWhiteSpace","nowrap");let n=Array.from(this._hover.contentsDomNode.children).some((h)=>h.scrollWidth>h.clientWidth);return this._hover.containerDomNode.style.removeProperty("--vscode-hover-whiteSpace"),this._hover.containerDomNode.style.removeProperty("--vscode-hover-sourceWhiteSpace"),n}_findMaximumRenderingWidth(){if(!this._editor||!this._editor.hasModel())return;let n=this._isHoverTextOverflowing(),h=typeof this._contentWidth>"u"?0:this._contentWidth;if(n||this._hover.containerDomNode.clientWidth<h){let g=la(this._hover.containerDomNode.ownerDocument.body).width,p=14;return g-14}else return this._hover.containerDomNode.clientWidth}isMouseGettingCloser(n,h){if(!this._renderedHover)return!1;if(this._renderedHover.initialMousePosX===void 0||this._renderedHover.initialMousePosY===void 0)return this._renderedHover.initialMousePosX=n,this._renderedHover.initialMousePosY=h,!1;let g=kt(this.getDomNode());if(this._renderedHover.closestMouseDistance===void 0)this._renderedHover.closestMouseDistance=TL(this._renderedHover.initialMousePosX,this._renderedHover.initialMousePosY,g.left,g.top,g.width,g.height);let p=TL(n,h,g.left,g.top,g.width,g.height);if(p>this._renderedHover.closestMouseDistance+4)return!1;return this._renderedHover.closestMouseDistance=Math.min(this._renderedHover.closestMouseDistance,p),!0}_setRenderedHover(n){this._renderedHover?.dispose(),this._renderedHover=n,this._hoverVisibleKey.set(!!n),this._hover.containerDomNode.classList.toggle("hidden",!n)}_updateFont(){let{fontSize:n,lineHeight:h}=this._editor.getOption(59),g=this._hover.contentsDomNode;g.style.fontSize=`${n}px`,g.style.lineHeight=`${h/n}`,Array.prototype.slice.call(this._hover.contentsDomNode.getElementsByClassName("code")).forEach((m)=>this._editor.applyFontInfo(m))}_updateContent(n){let h=this._hover.contentsDomNode;h.style.paddingBottom="",h.textContent="",h.appendChild(n)}_layoutContentWidget(){this._editor.layoutContentWidget(this),this._hover.onContentsChanged()}_updateMaxDimensions(){let n=Math.max(this._editor.getLayoutInfo().height/4,250,cn._lastDimensions.height),h=Math.max(this._editor.getLayoutInfo().width*0.66,750,cn._lastDimensions.width);this._resizableNode.maxSize=new at(h,n),this._setHoverWidgetMaxDimensions(h,n)}_render(n){this._setRenderedHover(n),this._updateFont(),this._updateContent(n.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(n){if(!this._editor||!this._editor.hasModel())return;this._render(n);let h=wl(this._hover.containerDomNode),g=n.showAtPosition;if(this._positionPreference=this._findPositionPreference(h,g)??1,this.handleContentsChanged(),n.shouldFocus)this._hover.containerDomNode.focus();this._onDidResize.fire();let m=this._hover.containerDomNode.ownerDocument.activeElement===this._hover.containerDomNode&&R1(this._configurationService.getValue("accessibility.verbosity.hover")===!0&&this._accessibilityService.isScreenReaderOptimized(),this._keybindingService.lookupKeybinding("editor.action.accessibleView")?.getAriaLabel()??"");if(m)this._hover.contentsDomNode.ariaLabel=this._hover.contentsDomNode.textContent+", "+m}hide(){if(!this._renderedHover)return;let n=this._renderedHover.shouldFocus||this._hoverFocusedKey.get();if(this._setRenderedHover(void 0),this._resizableNode.maxSize=new at(1/0,1/0),this._resizableNode.clearSashHoverState(),this._hoverFocusedKey.set(!1),this._editor.layoutContentWidget(this),n)this._editor.focus()}_removeConstraintsRenderNormally(){let n=this._editor.getLayoutInfo();this._resizableNode.layout(n.height,n.width),this._setHoverWidgetDimensions("auto","auto"),this._updateMaxDimensions()}setMinimumDimensions(n){this._minimumSize=new at(Math.max(this._minimumSize.width,n.width),Math.max(this._minimumSize.height,n.height)),this._updateMinimumWidth()}_updateMinimumWidth(){let n=typeof this._contentWidth>"u"?this._minimumSize.width:Math.min(this._contentWidth,this._minimumSize.width);this._resizableNode.minSize=new at(n,this._minimumSize.height)}handleContentsChanged(){this._removeConstraintsRenderNormally();let n=this._hover.contentsDomNode,h=wl(n),g=Oo(n)+2;if(this._resizableNode.layout(h,g),this._setHoverWidgetDimensions(g,h),h=wl(n),g=Oo(n),this._contentWidth=g,this._updateMinimumWidth(),this._resizableNode.layout(h,g),this._renderedHover?.showAtPosition){let p=wl(this._hover.containerDomNode);this._positionPreference=this._findPositionPreference(p,this._renderedHover.showAtPosition)}this._layoutContentWidget(),this._onContentsChanged.fire()}focus(){this._hover.containerDomNode.focus()}scrollUp(){let n=this._hover.scrollbar.getScrollPosition().scrollTop,h=this._editor.getOption(59);this._hover.scrollbar.setScrollPosition({scrollTop:n-h.lineHeight})}scrollDown(){let n=this._hover.scrollbar.getScrollPosition().scrollTop,h=this._editor.getOption(59);this._hover.scrollbar.setScrollPosition({scrollTop:n+h.lineHeight})}scrollLeft(){let n=this._hover.scrollbar.getScrollPosition().scrollLeft;this._hover.scrollbar.setScrollPosition({scrollLeft:n-DL})}scrollRight(){let n=this._hover.scrollbar.getScrollPosition().scrollLeft;this._hover.scrollbar.setScrollPosition({scrollLeft:n+DL})}pageUp(){let n=this._hover.scrollbar.getScrollPosition().scrollTop,h=this._hover.scrollbar.getScrollDimensions().height;this._hover.scrollbar.setScrollPosition({scrollTop:n-h})}pageDown(){let n=this._hover.scrollbar.getScrollPosition().scrollTop,h=this._hover.scrollbar.getScrollDimensions().height;this._hover.scrollbar.setScrollPosition({scrollTop:n+h})}goToTop(){this._hover.scrollbar.setScrollPosition({scrollTop:0})}goToBottom(){this._hover.scrollbar.setScrollPosition({scrollTop:this._hover.scrollbar.getScrollDimensions().scrollHeight})}};Dp=cn=RT([Ep(1,G),Ep(2,re),Ep(3,sn),Ep(4,me)],Dp);function TL(u,n,h,g,p,m){let v=h+p/2,S=g+m/2,C=Math.max(Math.abs(u-v)-p/2,0),x=Math.max(Math.abs(n-S)-m/2,0);return Math.sqrt(C*C+x*x)}class mh{constructor(u,n){this._editor=u,this._participants=n}static _getLineDecorations(u,n){if(n.type!==1&&!n.supportsMarkerHover)return[];let h=u.getModel(),g=n.range.startLineNumber;if(g>h.getLineCount())return[];let p=h.getLineMaxColumn(g);return u.getLineDecorations(g).filter((m)=>{if(m.options.isWholeLine)return!0;let v=m.range.startLineNumber===g?m.range.startColumn:1,S=m.range.endLineNumber===g?m.range.endColumn:p;if(m.options.showIfCollapsed){if(v>n.range.startColumn+1||n.range.endColumn-1>S)return!1}else if(v>n.range.startColumn||n.range.endColumn>S)return!1;return!0})}computeAsync(u,n){let h=u.anchor;if(!this._editor.hasModel()||!h)return ti.EMPTY;let g=mh._getLineDecorations(this._editor,h);return ti.merge(this._participants.map((p)=>{if(!p.computeAsync)return ti.EMPTY;return p.computeAsync(h,g,u.source,n)}))}computeSync(u){if(!this._editor.hasModel())return[];let n=u.anchor,h=mh._getLineDecorations(this._editor,n),g=[];for(let p of this._participants)g=g.concat(p.computeSync(n,h,u.source));return yo(g)}}class Tp{constructor(u,n,h){this.hoverParts=u,this.isComplete=n,this.options=h}filter(u){let n=this.hoverParts.filter((h)=>h.isValidForHoverAnchor(u));if(n.length===this.hoverParts.length)return this;return new RL(this,n,this.isComplete,this.options)}}class RL extends Tp{constructor(u,n,h,g){super(n,h,g);this.original=u}filter(u){return this.original.filter(u)}}var NT=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},NL=function(u,n){return function(h,g){n(h,g,u)}},ML=w,Nv=class u extends i{get hasContent(){return this._hasContent}constructor(n,h){super();this._keybindingService=n,this._hoverService=h,this.actions=[],this._hasContent=!1,this.hoverElement=ML("div.hover-row.status-bar"),this.hoverElement.tabIndex=0,this.actionsElement=k(this.hoverElement,ML("div.actions"))}addAction(n){let h=this._keybindingService.lookupKeybinding(n.commandId),g=h?h.getLabel():null;this._hasContent=!0;let p=this._register(If.render(this.actionsElement,n,g));return this._register(this._hoverService.setupManagedHover(vr("element"),p.actionContainer,p.actionRenderedLabel)),this.actions.push(p),p}append(n){let h=k(this.actionsElement,n);return this._hasContent=!0,h}};Nv=NT([NL(0,me),NL(1,On)],Nv);var MT=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},OL=function(u,n){return function(h,g){n(h,g,u)}},Rp=class u extends i{constructor(n,h,g,p){super();this._container=n,this._getContent=h,this._clipboardService=g,this._hoverService=p,this._container.classList.add("hover-row-with-copy"),this._button=this._register(new Er({label:e(1186,"Copy"),icon:_.copy,onTrigger:()=>this._copyContent(),className:"hover-copy-button"},this._hoverService)),this._container.appendChild(this._button.domNode)}async _copyContent(){let n=this._getContent();if(n)await this._clipboardService.writeText(n),Ho(e(1187,"Copied to clipboard"))}};Rp=MT([OL(2,bi),OL(3,On)],Rp);class PL{constructor(u,n,h){this.provider=u,this.hover=n,this.ordinal=h}}async function OT(u,n,h,g,p){let m=await Promise.resolve(u.provideHover(h,g,p)).catch(yt);if(!m||!PT(m))return;return new PL(u,m,n)}function fh(u,n,h,g,p=!1){let v=u.ordered(n,p).map((S,C)=>OT(S,C,n,h,g));return ti.fromPromisesResolveOrder(v).coalesce()}async function AL(u,n,h,g,p=!1){let m=[];for await(let v of fh(u,n,h,g,p))m.push(v.hover);return m}Po("_executeHoverProvider",(u,n,h)=>{let g=u.get(z);return AL(g.hoverProvider,n,h,ye.None)});Po("_executeHoverProvider_recursive",(u,n,h)=>{let g=u.get(z);return AL(g.hoverProvider,n,h,ye.None,!0)});function PT(u){let n=typeof u.range<"u",h=typeof u.contents<"u"&&u.contents&&u.contents.length>0;return n&&h}var AT=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Ic=function(u,n){return function(h,g){n(h,g,u)}},id=w,FT=Ht("hover-increase-verbosity",_.addSmall,e(1188,"Icon for increaseing hover verbosity.")),HT=Ht("hover-decrease-verbosity",_.removeSmall,e(1189,"Icon for decreasing hover verbosity."));class eo{constructor(u,n,h,g,p,m=void 0){this.owner=u,this.range=n,this.contents=h,this.isBeforeContent=g,this.ordinal=p,this.source=m}isValidForHoverAnchor(u){return u.type===1&&this.range.startColumn<=u.range.startColumn&&this.range.endColumn>=u.range.endColumn}}class Kb{constructor(u,n,h){this.hover=u,this.hoverProvider=n,this.hoverPosition=h}supportsVerbosityAction(u){switch(u){case fs.Increase:return this.hover.canIncreaseVerbosity??!1;case fs.Decrease:return this.hover.canDecreaseVerbosity??!1}}}var Gs=class u{constructor(n,h,g,p,m,v,S){this._editor=n,this._markdownRendererService=h,this._configurationService=g,this._languageFeaturesService=p,this._keybindingService=m,this._hoverService=v,this._commandService=S,this.hoverOrdinal=3}createLoadingMessage(n){return new eo(this,n.range,[new Mn().appendText(e(1190,"Loading..."))],!1,2000)}computeSync(n,h){if(!this._editor.hasModel()||n.type!==1)return[];let g=this._editor.getModel(),p=n.range.startLineNumber,m=g.getLineMaxColumn(p),v=[],S=1000,C=g.getLineLength(p),x=g.getLanguageIdAtPosition(n.range.startLineNumber,n.range.startColumn),T=this._editor.getOption(133),R=this._configurationService.getValue("editor.maxTokenizationLineLength",{overrideIdentifier:x}),Z=this._editor.getOption(69).showLongLineWarning,Y=!1;if(T>=0&&C>T&&n.range.startColumn>=T){if(Y=!0,Z)v.push(new eo(this,n.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})",oh),isTrusted:!0}],!1,S++))}if(!Y&&typeof R==="number"&&C>=R){if(Z)v.push(new eo(this,n.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})",oh),isTrusted:!0}],!1,S++))}let Q=!1;for(let te of h){let oe=te.range.startLineNumber===p?te.range.startColumn:1,ne=te.range.endLineNumber===p?te.range.endColumn:m,he=te.options.hoverMessage;if(!he||Xh(he))continue;if(te.options.beforeContentClassName)Q=!0;let ge=new t(n.range.startLineNumber,oe,n.range.startLineNumber,ne);v.push(new eo(this,ge,Pv(he),Q,S++))}return v}computeAsync(n,h,g,p){if(!this._editor.hasModel()||n.type!==1)return ti.EMPTY;let m=this._editor.getModel(),v=this._languageFeaturesService.hoverProvider;if(!v.has(m))return ti.EMPTY;return this._getMarkdownHovers(v,m,n,p)}async*_getMarkdownHovers(n,h,g,p){let m=g.range.getStartPosition(),v=fh(n,h,m,p);for await(let S of v)if(!Xh(S.hover.contents)){let C=S.hover.range?t.lift(S.hover.range):g.range,x=new Kb(S.hover,S.provider,m);yield new eo(this,C,S.hover.contents,!1,S.ordinal,x)}}renderHoverParts(n,h){return this._renderedHoverParts=new FL(h,n.fragment,this,this._editor,this._commandService,this._keybindingService,this._hoverService,this._configurationService,this._markdownRendererService,n.onContentsChanged),this._renderedHoverParts}handleScroll(n){this._renderedHoverParts?.handleScroll(n)}getAccessibleContent(n){return this._renderedHoverParts?.getAccessibleContent(n)??""}updateMarkdownHoverVerbosityLevel(n,h){return Promise.resolve(this._renderedHoverParts?.updateMarkdownHoverPartVerbosityLevel(n,h))}};Gs=AT([Ic(1,zo),Ic(2,re),Ic(3,z),Ic(4,me),Ic(5,On),Ic(6,Ue)],Gs);class _h{constructor(u,n,h,g){this.hoverPart=u,this.hoverElement=n,this.disposables=h,this.actionsContainer=g}dispose(){this.disposables.dispose()}}class FL{constructor(u,n,h,g,p,m,v,S,C,x){this._hoverParticipant=h,this._editor=g,this._commandService=p,this._keybindingService=m,this._hoverService=v,this._configurationService=S,this._markdownRendererService=C,this._onFinishedRendering=x,this._ongoingHoverOperations=new Map,this._disposables=new d,this.renderedHoverParts=this._renderHoverParts(u,n,this._onFinishedRendering),this._disposables.add(N(()=>{this.renderedHoverParts.forEach((T)=>{T.dispose()}),this._ongoingHoverOperations.forEach((T)=>{T.tokenSource.dispose(!0)})}))}_renderHoverParts(u,n,h){return u.sort(jn((g)=>g.ordinal,Vi)),u.map((g)=>{let p=this._renderHoverPart(g,h);return n.appendChild(p.hoverElement),p})}_renderHoverPart(u,n){let h=this._renderMarkdownHover(u,n),g=h.hoverElement,p=u.source,m=new d;if(m.add(h),!p)return new _h(u,g,m);let v=p.supportsVerbosityAction(fs.Increase),S=p.supportsVerbosityAction(fs.Decrease);if(!v&&!S)return new _h(u,g,m);let C=id("div.verbosity-actions");g.prepend(C);let x=id("div.verbosity-actions-inner");return C.append(x),m.add(this._renderHoverExpansionAction(x,fs.Increase,v)),m.add(this._renderHoverExpansionAction(x,fs.Decrease,S)),new _h(u,g,m,x)}_renderMarkdownHover(u,n){return WL(this._editor,u,this._markdownRendererService,n)}_renderHoverExpansionAction(u,n,h){let g=new d,p=n===fs.Increase,m=k(u,id(J.asCSSSelector(p?FT:HT)));m.tabIndex=0;let v=g.add(new gu("mouse",void 0,{target:u,position:{hoverPosition:0}},this._configurationService,this._hoverService));if(g.add(this._hoverService.setupManagedHover(v,m,WT(this._keybindingService,n))),!h)return m.classList.add("disabled"),g;m.classList.add("enabled");let S=()=>this._commandService.executeCommand(n===fs.Increase?$a:Za,{focus:!0});return g.add(new D1(m,S)),g.add(new N1(m,S,[3,10])),g}handleScroll(u){this.renderedHoverParts.forEach((n)=>{let h=n.actionsContainer;if(!h)return;let g=n.hoverElement,m=u.scrollTop+u.height,{offsetTop:v,clientHeight:S}=g,C=v+S,x=22,T;if(C<=m||v>=m)T=S-x;else T=m-v-x;h.style.top=`${T}px`})}async updateMarkdownHoverPartVerbosityLevel(u,n){let h=this._editor.getModel();if(!h)return;let g=this._getRenderedHoverPartAtIndex(n),p=g?.hoverPart.source;if(!g||!p?.supportsVerbosityAction(u))return;let m=await this._fetchHover(p,h,u);if(!m)return;let v=new Kb(m,p.hoverProvider,p.hoverPosition),S=g.hoverPart,C=new eo(this._hoverParticipant,S.range,m.contents,S.isBeforeContent,S.ordinal,v),x=this._updateRenderedHoverPart(n,C);if(!x)return;return{hoverPart:C,hoverElement:x.hoverElement}}getAccessibleContent(u){let n=this.renderedHoverParts.findIndex((m)=>m.hoverPart===u);if(n===-1)return;let h=this._getRenderedHoverPartAtIndex(n);if(!h)return;return h.hoverElement.innerText.replace(/[^\S\n\r]+/gu," ")}async _fetchHover(u,n,h){let g=h===fs.Increase?1:-1,p=u.hoverProvider,m=this._ongoingHoverOperations.get(p);if(m)m.tokenSource.cancel(),g+=m.verbosityDelta;let v=new Ge;this._ongoingHoverOperations.set(p,{verbosityDelta:g,tokenSource:v});let S={verbosityRequest:{verbosityDelta:g,previousHover:u.hover}},C;try{C=await Promise.resolve(p.provideHover(n,u.hoverPosition,v.token,S))}catch(x){yt(x)}return v.dispose(),this._ongoingHoverOperations.delete(p),C}_updateRenderedHoverPart(u,n){if(u>=this.renderedHoverParts.length||u<0)return;let h=this._renderHoverPart(n,this._onFinishedRendering),g=this.renderedHoverParts[u],p=g.hoverElement,m=h.hoverElement,v=Array.from(m.children);p.replaceChildren(...v);let S=new _h(n,p,h.disposables,h.actionsContainer);return g.dispose(),this.renderedHoverParts[u]=S,S}_getRenderedHoverPartAtIndex(u){return this.renderedHoverParts[u]}dispose(){this._disposables.dispose()}}function HL(u,n,h,g){n.sort(jn((m)=>m.ordinal,Vi));let p=[];for(let m of n){let v=WL(h,m,g,u.onContentsChanged);u.fragment.appendChild(v.hoverElement),p.push(v)}return new Ko(p)}function WL(u,n,h,g){let p=new d,m=id("div.hover-row"),v=id("div.hover-row-contents");m.appendChild(v);let S=n.contents;for(let x of S){if(Xh(x))continue;let T=id("div.markdown-hover"),R=k(T,id("div.hover-contents")),Z=p.add(h.render(x,{context:u,asyncRenderCallback:()=>{R.className="hover-contents code-hover-contents",g()}}));R.appendChild(Z.element),v.appendChild(T)}return{hoverPart:n,hoverElement:m,dispose(){p.dispose()}}}function WT(u,n){switch(n){case fs.Increase:return u.appendKeybinding(e(1193,"Increase Hover Verbosity"),$a);case fs.Decrease:return u.appendKeybinding(e(1194,"Decrease Hover Verbosity"),Za)}}var BL=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Ub=function(u,n){return function(h,g){n(h,g,u)}},Km=class u{constructor(n){this._editorWorkerService=n}async provideDocumentColors(n,h){return this._editorWorkerService.computeDefaultDocumentColors(n.uri)}provideColorPresentations(n,h,g){let{range:p,color:m}=h,v=new y(new D(Math.round(255*m.red),Math.round(255*m.green),Math.round(255*m.blue),m.alpha)),S=y.Format.CSS.formatRGB(v),C=y.Format.CSS.formatHSL(v),x=y.Format.CSS.formatHexA(v,!0),T=[];return T.push({label:S,textEdit:{range:p,text:S}}),T.push({label:C,textEdit:{range:p,text:C}}),T.push({label:x,textEdit:{range:p,text:x}}),T}};Km=BL([Ub(0,Pi)],Km);var KC=class u extends i{constructor(n,h){super();this._register(n.colorProvider.register("*",new Km(h)))}};KC=BL([Ub(0,z),Ub(1,Pi)],KC);async function JC(u,n,h,g="auto"){return YC(new VL,u,n,h,g)}function qb(u,n,h,g){return Promise.resolve(h.provideColorPresentations(u,n,g))}class VL{constructor(){}async compute(u,n,h,g){let p=await u.provideDocumentColors(n,h);if(Array.isArray(p))for(let m of p)g.push({colorInfo:m,provider:u});return Array.isArray(p)}}class gI{constructor(){}async compute(u,n,h,g){let p=await u.provideDocumentColors(n,h);if(Array.isArray(p))for(let m of p)g.push({range:m.range,color:[m.color.red,m.color.green,m.color.blue,m.color.alpha]});return Array.isArray(p)}}class bI{constructor(u){this.colorInfo=u}async compute(u,n,h,g){let p=await u.provideColorPresentations(n,this.colorInfo,ye.None);if(Array.isArray(p))g.push(...p);return Array.isArray(p)}}async function YC(u,n,h,g,p){let m=!1,v,S=[],C=n.ordered(h);for(let x=C.length-1;x>=0;x--){let T=C[x];if(p!=="always"&&T instanceof Km)v=T;else try{if(await u.compute(T,h,g,S))m=!0}catch(R){yt(R)}}if(m)return S;if(v&&p!=="never")return await u.compute(v,h,g,S),S;return[]}function vI(u,n){let{colorProvider:h}=u.get(z),g=u.get(Et).getModel(n);if(!g)throw wo();let p=u.get(re).getValue("editor.defaultColorDecorators",{resource:n});return{model:g,colorProviderRegistry:h,defaultColorDecoratorsEnablement:p}}var BT=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},jb=function(u,n){return function(h,g){n(h,g,u)}},od,$b=Object.create({}),Nh=class u extends i{static{od=this}static{this.ID="editor.contrib.colorDetector"}static{this.RECOMPUTE_TIME=1000}static{this.colorDecoratorInnerWidthInEm=0.8}static{this.colorDecoratorMarginInEm=0.2}constructor(n,h,g,p){super();this._editor=n,this._configurationService=h,this._languageFeaturesService=g,this._localToDispose=this._register(new d),this._decorationsIds=[],this._colorDatas=new Map,this._decoratorLimitReporter=this._register(new zL),this._colorDecorationClassRefs=this._register(new d),this._colorDecoratorIds=this._editor.createDecorationsCollection(),this._ruleFactory=this._register(new oy(this._editor));let m=this._editor.getContainerDomNode();m.style.setProperty("--vscode-colorPicker-colorDecoratorWidth",`${od.colorDecoratorInnerWidthInEm}em`),m.style.setProperty("--vscode-colorPicker-colorDecoratorMargin",`${od.colorDecoratorMarginInEm}em`),this._register(N(()=>{m.style.removeProperty("--vscode-colorPicker-colorDecoratorWidth"),m.style.removeProperty("--vscode-colorPicker-colorDecoratorMargin")})),this._debounceInformation=p.for(g.colorProvider,"Document Colors",{min:od.RECOMPUTE_TIME}),this._register(n.onDidChangeModel(()=>{this._isColorDecoratorsEnabled=this.isEnabled(),this.updateColors()})),this._register(n.onDidChangeModelLanguage(()=>this.updateColors())),this._register(g.colorProvider.onDidChange(()=>this.updateColors())),this._register(n.onDidChangeConfiguration((v)=>{let S=this._isColorDecoratorsEnabled;this._isColorDecoratorsEnabled=this.isEnabled(),this._defaultColorDecoratorsEnablement=this._editor.getOption(168);let C=S!==this._isColorDecoratorsEnabled||v.hasChanged(27),x=v.hasChanged(168);if(C||x)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 n=this._editor.getModel();if(!n)return!1;let h=n.getLanguageId(),g=this._configurationService.getValue(h);if(g&&typeof g==="object"){let p=g.colorDecorators;if(p&&p.enable!==void 0&&!p.enable)return p.enable}return this._editor.getOption(26)}static get(n){return n.getContribution(this.ID)}dispose(){this.stop(),this.removeAllDecorations(),super.dispose()}updateColors(){if(this.stop(),!this._isColorDecoratorsEnabled){this.removeAllDecorations();return}let n=this._editor.getModel();if(!n||!this._languageFeaturesService.colorProvider.has(n))return;this._localToDispose.add(this._editor.onDidChangeModelContent(()=>{if(!this._timeoutTimer)this._timeoutTimer=new ai,this._timeoutTimer.cancelAndSet(()=>{this._timeoutTimer=null,this.beginCompute()},this._debounceInformation.get(n))})),this.beginCompute()}async beginCompute(){this._computePromise=Yt(async(n)=>{let h=this._editor.getModel();if(!h)return[];let g=new un(!1),p=await JC(this._languageFeaturesService.colorProvider,h,n,this._defaultColorDecoratorsEnablement);return this._debounceInformation.update(h,g.elapsed()),p});try{let n=await this._computePromise;this.updateDecorations(n),this.updateColorDecorators(n),this._computePromise=null}catch(n){X(n)}}stop(){if(this._timeoutTimer)this._timeoutTimer.cancel(),this._timeoutTimer=null;if(this._computePromise)this._computePromise.cancel(),this._computePromise=null;this._localToDispose.clear()}updateDecorations(n){let h=n.map((g)=>({range:{startLineNumber:g.colorInfo.range.startLineNumber,startColumn:g.colorInfo.range.startColumn,endLineNumber:g.colorInfo.range.endLineNumber,endColumn:g.colorInfo.range.endColumn},options:de.EMPTY}));this._editor.changeDecorations((g)=>{this._decorationsIds=g.deltaDecorations(this._decorationsIds,h),this._colorDatas=new Map,this._decorationsIds.forEach((p,m)=>this._colorDatas.set(p,n[m]))})}updateColorDecorators(n){this._colorDecorationClassRefs.clear();let h=[],g=od.colorDecoratorInnerWidthInEm+2*od.colorDecoratorMarginInEm,p=this._editor.getOption(27);for(let v=0;v<n.length&&h.length<p;v++){let{red:S,green:C,blue:x,alpha:T}=n[v].colorInfo.color,R=new D(Math.round(S*255),Math.round(C*255),Math.round(x*255),T),Z=`rgba(${R.r}, ${R.g}, ${R.b}, ${R.a})`,Y=this._colorDecorationClassRefs.add(this._ruleFactory.createClassNameRef({backgroundColor:Z}));h.push({range:{startLineNumber:n[v].colorInfo.range.startLineNumber,startColumn:n[v].colorInfo.range.startColumn,endLineNumber:n[v].colorInfo.range.endLineNumber,endColumn:n[v].colorInfo.range.endColumn},options:{description:"colorDetector",before:{content:a1,inlineClassName:`${Y.className} colorpicker-color-decoration`,inlineClassNameAffectsLetterSpacing:!0,attachedData:$b,widthInEm:g}}})}let m=p<n.length?p:!1;this._decoratorLimitReporter.update(n.length,m),this._colorDecoratorIds.set(h)}removeAllDecorations(){this._editor.removeDecorations(this._decorationsIds),this._decorationsIds=[],this._colorDecoratorIds.clear(),this._colorDecorationClassRefs.clear()}getColorData(n){let h=this._editor.getModel();if(!h)return null;let g=h.getDecorationsInRange(t.fromPositions(n,n)).filter((p)=>this._colorDatas.has(p.id));if(g.length===0)return null;return this._colorDatas.get(g[0].id)}isColorDecoration(n){return this._colorDecoratorIds.has(n)}};Nh=od=BT([jb(1,re),jb(2,z),jb(3,uo)],Nh);class zL extends i{constructor(){super(...arguments);this._onDidChange=this._register(new o),this._computed=0,this._limited=!1}update(u,n){if(u!==this._computed||n!==this._limited)this._computed=u,this._limited=n,this._onDidChange.fire()}}var KL=w;class Gb extends i{constructor(u,n,h){super();this.model=n,this.pixelRatio=h,this._onDidChange=this._register(new o),this.onDidChange=this._onDidChange.event,this._onColorFlushed=this._register(new o),this.onColorFlushed=this._onColorFlushed.event,this._domNode=KL(".saturation-wrap"),k(u,this._domNode),this._canvas=document.createElement("canvas"),this._canvas.className="saturation-box",k(this._domNode,this._canvas),this.selection=KL(".saturation-selection"),k(this._domNode,this.selection),this.layout(),this._register(c(this._domNode,E.POINTER_DOWN,(g)=>this.onPointerDown(g))),this._register(this.model.onDidChangeColor(this.onDidChangeColor,this)),this.monitor=null}get domNode(){return this._domNode}onPointerDown(u){if(!u.target||!(u.target instanceof Element))return;this.monitor=this._register(new Cl);let n=kt(this._domNode);if(u.target!==this.selection)this.onDidChangePosition(u.offsetX,u.offsetY);this.monitor.startMonitoring(u.target,u.pointerId,u.buttons,(g)=>this.onDidChangePosition(g.pageX-n.left,g.pageY-n.top),()=>null);let h=c(u.target.ownerDocument,E.POINTER_UP,()=>{if(this._onColorFlushed.fire(),h.dispose(),this.monitor)this.monitor.stopMonitoring(!0),this.monitor=null},!0)}onDidChangePosition(u,n){let h=Math.max(0,Math.min(1,u/this.width)),g=Math.max(0,Math.min(1,1-n/this.height));this.paintSelection(h,g),this._onDidChange.fire({s:h,v:g})}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 u=this.model.color.hsva;this.paintSelection(u.s,u.v)}paint(){let u=this.model.color.hsva,n=new y(new gc(u.h,1,1,1)),h=this._canvas.getContext("2d"),g=h.createLinearGradient(0,0,this._canvas.width,0);g.addColorStop(0,"rgba(255, 255, 255, 1)"),g.addColorStop(0.5,"rgba(255, 255, 255, 0.5)"),g.addColorStop(1,"rgba(255, 255, 255, 0)");let p=h.createLinearGradient(0,0,0,this._canvas.height);p.addColorStop(0,"rgba(0, 0, 0, 0)"),p.addColorStop(1,"rgba(0, 0, 0, 1)"),h.rect(0,0,this._canvas.width,this._canvas.height),h.fillStyle=y.Format.CSS.format(n),h.fill(),h.fillStyle=g,h.fill(),h.fillStyle=p,h.fill()}paintSelection(u,n){this.selection.style.left=`${u*this.width}px`,this.selection.style.top=`${this.height-n*this.height}px`}onDidChangeColor(u){if(this.monitor&&this.monitor.isMonitoring())return;this.paint();let n=u.hsva;this.paintSelection(n.s,n.v)}}class Zb extends i{constructor(u){super();this._onClicked=this._register(new o),this.onClicked=this._onClicked.event,this._button=k(u,document.createElement("button")),this._button.classList.add("insert-button"),this._button.textContent="Insert",this._register(c(this._button,E.CLICK,()=>{this._onClicked.fire()}))}get button(){return this._button}}var bh=w;class Xb extends i{constructor(u,n,h){super();if(this.model=n,this._onDidChange=this._register(new o),this.onDidChange=this._onDidChange.event,this._onColorFlushed=this._register(new o),this.onColorFlushed=this._onColorFlushed.event,h==="standalone")this.domNode=k(u,bh(".standalone-strip")),this.overlay=k(this.domNode,bh(".standalone-overlay"));else this.domNode=k(u,bh(".strip")),this.overlay=k(this.domNode,bh(".overlay"));this.slider=k(this.domNode,bh(".slider")),this.slider.style.top="0px",this._register(c(this.domNode,E.POINTER_DOWN,(g)=>this.onPointerDown(g))),this._register(n.onDidChangeColor(this.onDidChangeColor,this)),this.layout()}layout(){this.height=this.domNode.offsetHeight-this.slider.offsetHeight;let u=this.getValue(this.model.color);this.updateSliderPosition(u)}onDidChangeColor(u){let n=this.getValue(u);this.updateSliderPosition(n)}onPointerDown(u){if(!u.target||!(u.target instanceof Element))return;let n=this._register(new Cl),h=kt(this.domNode);if(this.domNode.classList.add("grabbing"),u.target!==this.slider)this.onDidChangeTop(u.offsetY);n.startMonitoring(u.target,u.pointerId,u.buttons,(p)=>this.onDidChangeTop(p.pageY-h.top),()=>null);let g=c(u.target.ownerDocument,E.POINTER_UP,()=>{this._onColorFlushed.fire(),g.dispose(),n.stopMonitoring(!0),this.domNode.classList.remove("grabbing")},!0)}onDidChangeTop(u){let n=Math.max(0,Math.min(1,1-u/this.height));this.updateSliderPosition(n),this._onDidChange.fire(n)}updateSliderPosition(u){this.slider.style.top=`${(1-u)*this.height}px`}}class Yb extends Xb{constructor(u,n,h){super(u,n,h);this.domNode.classList.add("opacity-strip"),this.onDidChangeColor(this.model.color)}onDidChangeColor(u){super.onDidChangeColor(u);let{r:n,g:h,b:g}=u.rgba,p=new y(new D(n,h,g,1)),m=new y(new D(n,h,g,0));this.overlay.style.background=`linear-gradient(to bottom, ${p} 0%, ${m} 100%)`}getValue(u){return u.hsva.a}}class Jb extends Xb{constructor(u,n,h){super(u,n,h);this.domNode.classList.add("hue-strip")}getValue(u){return 1-u.hsva.h/360}}var VT=w;class Qb extends i{constructor(u,n,h,g){super();if(this.model=n,this.pixelRatio=h,this._insertButton=null,this._domNode=VT(".colorpicker-body"),k(u,this._domNode),this._saturationBox=new Gb(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 Yb(this._domNode,this.model,g),this._register(this._opacityStrip),this._register(this._opacityStrip.onDidChange(this.onDidOpacityChange,this)),this._register(this._opacityStrip.onColorFlushed(this.flushColor,this)),this._hueStrip=new Jb(this._domNode,this.model,g),this._register(this._hueStrip),this._register(this._hueStrip.onDidChange(this.onDidHueChange,this)),this._register(this._hueStrip.onColorFlushed(this.flushColor,this)),g==="standalone")this._insertButton=this._register(new Zb(this._domNode)),this._domNode.classList.add("standalone-colorpicker")}flushColor(){this.model.flushColor()}onDidSaturationValueChange({s:u,v:n}){let h=this.model.color.hsva;this.model.color=new y(new gc(h.h,u,n,h.a))}onDidOpacityChange(u){let n=this.model.color.hsva;this.model.color=new y(new gc(n.h,n.s,n.v,u))}onDidHueChange(u){let n=this.model.color.hsva,h=(1-u)*360;this.model.color=new y(new gc(h===360?0:h,n.s,n.v,n.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 zT=w;class ev extends i{constructor(u){super();this._onClicked=this._register(new o),this.onClicked=this._onClicked.event,this._button=document.createElement("div"),this._button.classList.add("close-button"),k(u,this._button);let n=document.createElement("div");n.classList.add("close-button-inner-div"),k(this._button,n),k(n,zT(".button"+J.asCSSSelector(Ht("color-picker-close",_.close,e(936,"Icon to close the color picker"))))).classList.add("close-icon"),this._register(c(this._button,E.CLICK,()=>{this._onClicked.fire()}))}}var Np=w;class tv extends i{constructor(u,n,h,g){super();this.model=n,this.type=g,this._closeButton=null,this._domNode=Np(".colorpicker-header"),k(u,this._domNode),this._pickedColorNode=k(this._domNode,Np(".picked-color")),k(this._pickedColorNode,Np("span.codicon.codicon-color-mode")),this._pickedColorPresentation=k(this._pickedColorNode,document.createElement("span")),this._pickedColorPresentation.classList.add("picked-color-presentation");let p=e(937,"Click to toggle color options (rgb/hsl/hex)");if(this._pickedColorNode.setAttribute("title",p),this._originalColorNode=k(this._domNode,Np(".original-color")),this._originalColorNode.style.backgroundColor=y.Format.CSS.format(this.model.originalColor)||"",this.backgroundColor=h.getColorTheme().getColor(pg)||y.white,this._register(h.onDidColorThemeChange((m)=>{this.backgroundColor=m.getColor(pg)||y.white})),this._register(c(this._pickedColorNode,E.CLICK,()=>this.model.selectNextColorPresentation())),this._register(c(this._originalColorNode,E.CLICK,()=>{this.model.color=this.model.originalColor,this.model.flushColor()})),this._register(n.onDidChangeColor(this.onDidChangeColor,this)),this._register(n.onDidChangePresentation(this.onDidChangePresentation,this)),this._pickedColorNode.style.backgroundColor=y.Format.CSS.format(n.color)||"",this._pickedColorNode.classList.toggle("light",n.color.rgba.a<0.5?this.backgroundColor.isLighter():n.color.isLighter()),this.onDidChangeColor(this.model.color),this.type==="standalone")this._domNode.classList.add("standalone-colorpicker"),this._closeButton=this._register(new ev(this._domNode))}get closeButton(){return this._closeButton}get pickedColorNode(){return this._pickedColorNode}get originalColorNode(){return this._originalColorNode}onDidChangeColor(u){this._pickedColorNode.style.backgroundColor=y.Format.CSS.format(u)||"",this._pickedColorNode.classList.toggle("light",u.rgba.a<0.5?this.backgroundColor.isLighter():u.isLighter()),this.onDidChangePresentation()}onDidChangePresentation(){this._pickedColorPresentation.textContent=this.model.presentation?this.model.presentation.label:""}}var KT=w;class t0 extends Ei{constructor(u,n,h,g,p){super();this.model=n,this.pixelRatio=h,this._register(hf.getInstance(B(u)).onDidChange(()=>this.layout())),this._domNode=KT(".colorpicker-widget"),u.appendChild(this._domNode),this.header=this._register(new tv(this._domNode,this.model,g,p)),this.body=this._register(new Qb(this._domNode,this.model,this.pixelRatio,p))}layout(){this.body.layout()}get domNode(){return this._domNode}}class iv extends i{get color(){return this._color}set color(u){if(this._color.equals(u))return;this._color=u,this._onDidChangeColor.fire(u)}get presentation(){return this.colorPresentations[this.presentationIndex]}get colorPresentations(){return this._colorPresentations}set colorPresentations(u){if(this._colorPresentations=u,this.presentationIndex>u.length-1)this.presentationIndex=0;this._onDidChangePresentation.fire(this.presentation)}constructor(u,n,h){super();this.presentationIndex=h,this._onColorFlushed=this._register(new o),this.onColorFlushed=this._onColorFlushed.event,this._onDidChangeColor=this._register(new o),this.onDidChangeColor=this._onDidChangeColor.event,this._onDidChangePresentation=this._register(new o),this.onDidChangePresentation=this._onDidChangePresentation.event,this.originalColor=u,this._color=u,this._colorPresentations=n}selectNextColorPresentation(){this.presentationIndex=(this.presentationIndex+1)%this.colorPresentations.length,this.flushColor(),this._onDidChangePresentation.fire(this.presentation)}guessColorPresentation(u,n){let h=-1;for(let g=0;g<this.colorPresentations.length;g++)if(n.toLowerCase()===this.colorPresentations[g].label){h=g;break}if(h===-1){let g=n.split("(")[0].toLowerCase();for(let p=0;p<this.colorPresentations.length;p++)if(this.colorPresentations[p].label.toLowerCase().startsWith(g)){h=p;break}}if(h!==-1&&h!==this.presentationIndex)this.presentationIndex=h,this._onDidChangePresentation.fire(this.presentation)}flushColor(){this._onColorFlushed.fire(this._color)}}async function ZC(u,n,h){let g=u.getValueInRange(n.range),{red:p,green:m,blue:v,alpha:S}=n.color,C=new D(Math.round(p*255),Math.round(m*255),Math.round(v*255),S),x=new y(C),T=await qb(u,n,h,ye.None),R=new iv(x,[],0);return R.colorPresentations=T||[],R.guessColorPresentation(x,g),{range:t.lift(n.range),model:R,provider:h}}function XC(u,n,h,g){let p=[],m=h.presentation.textEdit??{range:n,text:h.presentation.label,forceMoveMarkers:!1};if(h.presentation.additionalTextEdits)p.push(...h.presentation.additionalTextEdits);let v=t.lift(m.range),S=u.getModel()._setTrackedRange(null,v,3);if(g)p.push(...g.map((C)=>({range:C,text:m.text,forceMoveMarkers:!1})));else p.push(m);return u.executeEdits("colorpicker",p),u.pushUndoStop(),u.getModel()._getTrackedRange(S)??v}async function Jm(u,n,h,g,p){let m=await qb(u,{range:g,color:{red:h.rgba.r/255,green:h.rgba.g/255,blue:h.rgba.b/255,alpha:h.rgba.a}},p.provider,ye.None);n.colorPresentations=m||[]}var UT=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},qT=function(u,n){return function(h,g){n(h,g,u)}};class Lc{constructor(u,n,h,g){this.owner=u,this.range=n,this.model=h,this.provider=g,this.forceShowAtRange=!0}isValidForHoverAnchor(u){return u.type===1&&this.range.startColumn<=u.range.startColumn&&this.range.endColumn>=u.range.endColumn}static fromBaseColor(u,n){return new Lc(u,n.range,n.model,n.provider)}}var Av=class u{constructor(n,h){this._editor=n,this._themeService=h,this.hoverOrdinal=2}computeSync(n,h,g){return[]}computeAsync(n,h,g,p){return ti.fromPromise(this._computeAsync(n,h,g))}async _computeAsync(n,h,g){if(!this._editor.hasModel())return[];if(!this._isValidRequest(g))return[];let p=Nh.get(this._editor);if(!p)return[];for(let m of h){if(!p.isColorDecoration(m))continue;let v=p.getColorData(m.range.getStartPosition());if(v)return[Lc.fromBaseColor(this,await ZC(this._editor.getModel(),v.colorInfo,v.provider))]}return[]}_isValidRequest(n){let h=this._editor.getOption(169);switch(n){case 0:return h==="hover"||h==="clickAndHover";case 1:return h==="click"||h==="clickAndHover";case 2:return!0}}renderHoverParts(n,h){let g=this._editor;if(h.length===0||!g.hasModel())return new Ko([]);let p=g.getOption(75)+8;n.setMinimumDimensions(new at(302,p));let m=new d,v=h[0],S=g.getModel(),C=v.model;this._colorPicker=m.add(new t0(n.fragment,C,g.getOption(164),this._themeService,"hover"));let x=!1,T=new t(v.range.startLineNumber,v.range.startColumn,v.range.endLineNumber,v.range.endColumn);m.add(C.onColorFlushed(async(Z)=>{await Jm(S,C,Z,T,v),x=!0,T=XC(g,T,C)})),m.add(C.onDidChangeColor((Z)=>{Jm(S,C,Z,T,v)})),m.add(g.onDidChangeModelContent((Z)=>{if(x)x=!1;else n.hide(),g.focus()}));let R={hoverPart:Lc.fromBaseColor(this,v),hoverElement:this._colorPicker.domNode,dispose(){m.dispose()}};return new Ko([R])}getAccessibleContent(n){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}};Av=UT([qT(1,Be)],Av);class Mp{constructor(u,n){this.range=u,this.direction=n}}class ov{constructor(u,n,h){this.hint=u,this.anchor=n,this.provider=h,this._isResolved=!1}with(u){let n=new ov(this.hint,u.anchor,this.provider);return n._isResolved=this._isResolved,n._currentResolve=this._currentResolve,n}async resolve(u){if(typeof this.provider.resolveInlayHint!=="function")return;if(this._currentResolve){if(await this._currentResolve,u.isCancellationRequested)return;return this.resolve(u)}if(!this._isResolved)this._currentResolve=this._doResolve(u).finally(()=>this._currentResolve=void 0);await this._currentResolve}async _doResolve(u){try{let n=await Promise.resolve(this.provider.resolveInlayHint(this.hint,u));this.hint.tooltip=n?.tooltip??this.hint.tooltip,this.hint.label=n?.label??this.hint.label,this.hint.textEdits=n?.textEdits??this.hint.textEdits,this._isResolved=!0}catch(n){yt(n),this._isResolved=!1}}}class nd{static{this._emptyInlayHintList=Object.freeze({dispose(){},hints:[]})}static async create(u,n,h,g){let p=[],m=u.ordered(n).reverse().map((v)=>h.map(async(S)=>{try{let C=await v.provideInlayHints(n,S,g);if(C?.hints.length||v.onDidChangeInlayHints)p.push([C??nd._emptyInlayHintList,v])}catch(C){yt(C)}}));if(await Promise.all(m.flat()),g.isCancellationRequested||n.isDisposed())throw new Rr;return new nd(h,p,n)}constructor(u,n,h){this._disposables=new d,this.ranges=u,this.provider=new Set;let g=[];for(let[p,m]of n){this._disposables.add(p),this.provider.add(m);for(let v of p.hints){let S=h.validatePosition(v.position),C="before",x=nd._getRangeAtPosition(h,S),T;if(x.getStartPosition().isBefore(S))T=t.fromPositions(x.getStartPosition(),S),C="after";else T=t.fromPositions(S,x.getEndPosition()),C="before";g.push(new ov(v,new Mp(T,C),m))}}this.items=g.sort((p,m)=>s.compare(p.hint.position,m.hint.position))}dispose(){this._disposables.dispose()}static _getRangeAtPosition(u,n){let h=n.lineNumber,g=u.getWordAtPosition(n);if(g)return new t(h,g.startColumn,h,g.endColumn);u.tokenization.tokenizeIfCheap(h);let p=u.tokenization.getLineTokens(h),m=n.column-1,v=p.findTokenIndexAtOffset(m),S=p.getStartOffset(v),C=p.getEndOffset(v);if(C-S===1){if(S===m&&v>1)S=p.getStartOffset(v-1),C=p.getEndOffset(v-1);else if(C===m&&v<p.getCount()-1)S=p.getStartOffset(v+1),C=p.getEndOffset(v+1)}return new t(h,S+1,h,C+1)}}function UL(u){return O1(u.id,...u.arguments??[]).toString()}async function qL(u,n,h,g){let p=u.get(Dn),m=u.get(Yn),v=u.get(Ue),S=u.get(A),C=u.get(wt);if(await g.item.resolve(ye.None),!g.part.location)return;let x=g.part.location,T=[],R=new Set(Kn.getMenuItems(l.EditorContext).map((Y)=>pf(Y)?Y.command.id:Tl()));for(let Y of Hi.all())if(R.has(Y.desc.id))T.push(new xo(Y.desc.id,Ki.label(Y.desc,{renderShortTitle:!0}),void 0,!0,async()=>{let Q=await p.createModelReference(x.uri);try{let te=new Qa(Q.object.textEditorModel,t.getStartPosition(x.range)),oe=g.item.anchor.range;await S.invokeFunction(Y.runEditorCommand.bind(Y),n,te,oe)}finally{Q.dispose()}}));if(g.part.command){let{command:Y}=g.part;T.push(new dt),T.push(new xo(Y.id,Y.title,void 0,!0,async()=>{try{await v.executeCommand(Y.id,...Y.arguments??[])}catch(Q){C.notify({severity:wc.Error,source:g.item.provider.displayName,message:Q})}}))}let Z=n.getOption(144);m.showContextMenu({domForShadowRoot:Z?n.getDomNode()??void 0:void 0,getAnchor:()=>{let Y=kt(h);return{x:Y.left,y:Y.top+Y.height+8}},getActions:()=>T,onHide:()=>{n.focus()},autoSelectFirstItem:!0})}async function Op(u,n,h,g){let m=await u.get(Dn).createModelReference(g.uri);await h.invokeWithinContext(async(v)=>{let S=n.hasSideBySideModifier,C=v.get(G),x=ui.inPeekEditor.getValue(C),T=!S&&h.getOption(101)&&!x;return new Us({openToSide:S,openInPeek:T,muteMessage:!0},{title:{value:"",original:""},id:"",precondition:void 0}).run(v,new Qa(m.object.textEditorModel,t.getStartPosition(g.range)),t.lift(g.range))}),m.dispose()}var jT=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Dc=function(u,n){return function(h,g){n(h,g,u)}},Rc;class Pp{constructor(){this._entries=new Ji(50)}get(u){let n=Pp._key(u);return this._entries.get(n)}set(u,n){let h=Pp._key(u);this._entries.set(h,n)}static _key(u){return`${u.uri.toString()}/${u.getVersionId()}`}}var jL=ie("IInlayHintsCache");xe(jL,Pp,1);class vh{constructor(u,n){this.item=u,this.index=n}get part(){let u=this.item.hint.label;if(typeof u==="string")return{label:u};else return u[this.index]}}class $L{constructor(u,n){this.part=u,this.hasTriggerModifier=n}}class GL{constructor(){this._store=new ce,this._tokenSource=new Ge}dispose(){this._store.dispose(),this._tokenSource.dispose(!0)}reset(){return this._tokenSource.dispose(!0),this._tokenSource=new Ge,this._store.value=new d,{store:this._store.value,token:this._tokenSource.token}}}var Ym=class u{static{Rc=this}static{this.ID="editor.contrib.InlayHints"}static{this._MAX_DECORATORS=1500}static{this._whitespaceData={}}static get(n){return n.getContribution(Rc.ID)??void 0}constructor(n,h,g,p,m,v,S){this._editor=n,this._languageFeaturesService=h,this._inlayHintsCache=p,this._commandService=m,this._notificationService=v,this._instaService=S,this._disposables=new d,this._sessionDisposables=new d,this._decorationsMetadata=new Map,this._activeRenderMode=0,this._ruleFactory=this._disposables.add(new oy(this._editor)),this._debounceInfo=g.for(h.inlayHintsProvider,"InlayHint",{min:25}),this._disposables.add(h.inlayHintsProvider.onDidChange(()=>this._update())),this._disposables.add(n.onDidChangeModel(()=>this._update())),this._disposables.add(n.onDidChangeModelLanguage(()=>this._update())),this._disposables.add(n.onDidChangeConfiguration((C)=>{if(C.hasChanged(159))this._update()})),this._update()}dispose(){this._sessionDisposables.dispose(),this._removeAllDecorations(),this._disposables.dispose()}_update(){this._sessionDisposables.clear(),this._removeAllDecorations();let n=this._editor.getOption(159);if(n.enabled==="off")return;let h=this._editor.getModel();if(!h||!this._languageFeaturesService.inlayHintsProvider.has(h))return;if(n.enabled==="on")this._activeRenderMode=0;else{let x,T;if(n.enabled==="onUnlessPressed")x=0,T=1;else x=1,T=0;this._activeRenderMode=x,this._sessionDisposables.add(Ba.getInstance().event((R)=>{if(!this._editor.hasModel())return;let Z=R.altKey&&R.ctrlKey&&!(R.shiftKey||R.metaKey)?T:x;if(Z!==this._activeRenderMode){this._activeRenderMode=Z;let Y=this._editor.getModel(),Q=this._copyInlayHintsWithCurrentAnchor(Y);this._updateHintsDecorators([Y.getFullModelRange()],Q),S.schedule(0)}}))}let g=this._inlayHintsCache.get(h);if(g)this._updateHintsDecorators([h.getFullModelRange()],g);this._sessionDisposables.add(N(()=>{if(!h.isDisposed())this._cacheHintsForFastRestore(h)}));let p,m=new Set;this._sessionDisposables.add(h.onWillDispose(()=>p?.cancel()));let v=this._sessionDisposables.add(new GL),S=new Ce(async()=>{let x=Date.now(),{store:T,token:R}=v.reset();try{let Z=await nd.create(this._languageFeaturesService.inlayHintsProvider,h,this._getHintsRanges(),R);if(S.delay=this._debounceInfo.update(h,Date.now()-x),R.isCancellationRequested){Z.dispose();return}for(let Y of Z.provider)if(typeof Y.onDidChangeInlayHints==="function"&&!m.has(Y))m.add(Y),T.add(Y.onDidChangeInlayHints(()=>{if(!S.isScheduled())S.schedule()}));T.add(Z),T.add(N(()=>m.clear())),this._updateHintsDecorators(Z.ranges,Z.items),this._cacheHintsForFastRestore(h)}catch(Z){X(Z)}},this._debounceInfo.get(h));this._sessionDisposables.add(S),S.schedule(0),this._sessionDisposables.add(this._editor.onDidScrollChange((x)=>{if(x.scrollTopChanged||!S.isScheduled())S.schedule()}));let C=this._sessionDisposables.add(new ce);this._sessionDisposables.add(this._editor.onDidChangeModelContent((x)=>{let T=Math.max(S.delay,800);this._cursorInfo={position:this._editor.getPosition(),notEarlierThan:Date.now()+T},C.value=fi(()=>S.schedule(0),T),S.schedule()})),this._sessionDisposables.add(this._editor.onDidChangeConfiguration((x)=>{if(x.hasChanged(159))S.schedule()})),this._sessionDisposables.add(this._installDblClickGesture(()=>S.schedule(0))),this._sessionDisposables.add(this._installLinkGesture()),this._sessionDisposables.add(this._installContextMenu())}_installLinkGesture(){let n=new d,h=n.add(new Kr(this._editor)),g=new d;return n.add(g),n.add(h.onMouseMoveOrRelevantKeyDown((p)=>{let[m]=p,v=this._getInlayHintLabelPart(m),S=this._editor.getModel();if(!v||!S){g.clear();return}let C=new Ge;g.add(N(()=>C.dispose(!0))),v.item.resolve(C.token),this._activeInlayHintPart=v.part.command||v.part.location?new $L(v,m.hasTriggerModifier):void 0;let x=S.validatePosition(v.item.hint.position).lineNumber,T=new t(x,1,x,S.getLineMaxColumn(x)),R=this._getInlineHintsForRange(T);this._updateHintsDecorators([T],R),g.add(N(()=>{this._activeInlayHintPart=void 0,this._updateHintsDecorators([T],R)}))})),n.add(h.onCancel(()=>g.clear())),n.add(h.onExecute(async(p)=>{let m=this._getInlayHintLabelPart(p);if(m){let v=m.part;if(v.location)this._instaService.invokeFunction(Op,p,this._editor,v.location);else if(Wv.is(v.command))await this._invokeCommand(v.command,m.item)}})),n}_getInlineHintsForRange(n){let h=new Set;for(let g of this._decorationsMetadata.values())if(n.containsRange(g.item.anchor.range))h.add(g.item);return Array.from(h)}_installDblClickGesture(n){return this._editor.onMouseUp(async(h)=>{if(h.event.detail!==2)return;let g=this._getInlayHintLabelPart(h);if(!g)return;if(h.event.preventDefault(),await g.item.resolve(ye.None),qn(g.item.hint.textEdits)){let p=g.item.hint.textEdits.map((m)=>Kt.replace(t.lift(m.range),m.text));this._editor.executeEdits("inlayHint.default",p),n()}})}_installContextMenu(){return this._editor.onContextMenu(async(n)=>{if(!Le(n.event.target))return;let h=this._getInlayHintLabelPart(n);if(h)await this._instaService.invokeFunction(qL,this._editor,n.event.target,h)})}_getInlayHintLabelPart(n){if(n.target.type!==6)return;let h=n.target.detail.injectedText?.options;if(h instanceof bd&&h?.attachedData instanceof vh)return h.attachedData;return}async _invokeCommand(n,h){try{await this._commandService.executeCommand(n.id,...n.arguments??[])}catch(g){this._notificationService.notify({severity:wc.Error,source:h.provider.displayName,message:g})}}_cacheHintsForFastRestore(n){let h=this._copyInlayHintsWithCurrentAnchor(n);this._inlayHintsCache.set(n,h)}_copyInlayHintsWithCurrentAnchor(n){let h=new Map;for(let[g,p]of this._decorationsMetadata){if(h.has(p.item))continue;let m=n.getDecorationRange(g);if(m){let v=new Mp(m,p.item.anchor.direction),S=p.item.with({anchor:v});h.set(p.item,S)}}return Array.from(h.values())}_getHintsRanges(){let h=this._editor.getModel(),g=this._editor.getVisibleRangesPlusViewportAboveBelow(),p=[];for(let m of g.sort(t.compareRangesUsingStarts)){let v=h.validateRange(new t(m.startLineNumber-30,m.startColumn,m.endLineNumber+30,m.endColumn));if(p.length===0||!t.areIntersectingOrTouching(p[p.length-1],v))p.push(v);else p[p.length-1]=t.plusRange(p[p.length-1],v)}return p}_updateHintsDecorators(n,h){let g=new Map;if(this._cursorInfo&&this._cursorInfo.notEarlierThan>Date.now()&&n.some((ne)=>ne.containsPosition(this._cursorInfo.position))){let{position:ne}=this._cursorInfo;this._cursorInfo=void 0;let he=new Map;for(let ae of this._editor.getLineDecorations(ne.lineNumber)??[]){let pe=this._decorationsMetadata.get(ae.id);if(ae.range.startColumn>ne.column)continue;let Me=pe?.decoration.options[pe.item.anchor.direction];if(Me&&Me.attachedData!==Rc._whitespaceData){let Ae=he.get(pe.item)??0;he.set(pe.item,Ae+Me.content.length)}}let ge=h.filter((ae)=>ae.anchor.range.startLineNumber===ne.lineNumber&&ae.anchor.range.endColumn<=ne.column),_e=Array.from(he.values()),Se;while(!0){let ae=ge.shift(),pe=_e.shift();if(!pe&&!ae)break;if(ae)g.set(ae,pe??0),Se=ae;else if(Se&&pe){let Me=g.get(Se);Me+=pe,Me+=_e.reduce((Ae,We)=>Ae+We,0),_e.length=0;break}}}let{fontSize:p,fontFamily:m,padding:v,isUniform:S}=this._getLayoutInfo(),C=this._editor.getOption(61),x=[],T=(ne,he,ge,_e,Se,ae)=>{let pe={content:ge,inlineClassNameAffectsLetterSpacing:!0,inlineClassName:he.className,cursorStops:_e,attachedData:Se,widthInEm:ae};x.push({item:ne,classNameRef:he,decoration:{range:ne.anchor.range,options:{description:"InlayHint",showIfCollapsed:ne.anchor.range.isEmpty(),collapseOnReplaceEdit:!ne.anchor.range.isEmpty(),stickiness:0,[ne.anchor.direction]:this._activeRenderMode===0?pe:void 0}}})},R=(ne,he)=>{let ge=p/3|0,_e=ge/C,Se=this._ruleFactory.createClassNameRef({width:`${ge}px`,display:"inline-block"});T(ne,Se,"",he?ys.Right:ys.None,Rc._whitespaceData,_e)},Z=this._editor.getOption(159).maximumLength,Y="--code-editorInlayHintsFontFamily";this._editor.getContainerDomNode().style.setProperty(Y,m);let Q={line:0,totalLen:0};for(let ne=0;ne<h.length;ne++){let he=h[ne];if(Q.line!==he.anchor.range.startLineNumber)Q={line:he.anchor.range.startLineNumber,totalLen:0};if(Z&&Q.totalLen>Z)continue;if(he.hint.paddingLeft)R(he,!1);let ge=typeof he.hint.label==="string"?[{label:he.hint.label}]:he.hint.label,_e=g.get(he),Se=0;for(let ae=0;ae<ge.length;ae++){let pe=ge[ae],Me=ae===0,Ae=ae===ge.length-1,We={fontSize:`${p}px`,fontFamily:`var(${Y}), ${No.fontFamily}`,verticalAlign:S?"baseline":"middle",unicodeBidi:"isolate"};if(qn(he.hint.textEdits))We.cursor="default";if(this._fillInColors(We,he.hint),(pe.command||pe.location)&&this._activeInlayHintPart?.part.item===he&&this._activeInlayHintPart.part.index===ae){if(We.textDecoration="underline",this._activeInlayHintPart.hasTriggerModifier)We.color=bn(AM),We.cursor="pointer"}let Ie=pe.label;Q.totalLen+=Ie.length;let Ve=!1,tt=Z!==0?Q.totalLen-Z:0;if(tt>0)Ie=Ie.slice(0,-tt)+"…",Ve=!0;if(Se+=Ie.length,_e!==void 0){let qe=Se-_e;if(qe>=0)Se-=qe,Ie=Ie.slice(0,-(1+qe))+"…",Ve=!0}if(v)if(Me&&(Ae||Ve))We.padding=`1px ${Math.max(1,p/4)|0}px`,We.borderRadius=`${p/4|0}px`;else if(Me)We.padding=`1px 0 1px ${Math.max(1,p/4)|0}px`,We.borderRadius=`${p/4|0}px 0 0 ${p/4|0}px`;else if(Ae||Ve)We.padding=`1px ${Math.max(1,p/4)|0}px 1px 0`,We.borderRadius=`0 ${p/4|0}px ${p/4|0}px 0`;else We.padding="1px 0 1px 0";if(T(he,this._ruleFactory.createClassNameRef(We),$T(Ie),Ae&&!he.hint.paddingRight?ys.Right:ys.None,new vh(he,ae)),Ve)break}if(_e!==void 0&&Se<_e){let ae=_e-Se;T(he,this._ruleFactory.createClassNameRef({})," ".repeat(ae),ys.None)}if(he.hint.paddingRight)R(he,!0);if(x.length>Rc._MAX_DECORATORS)break}let te=[];for(let[ne,he]of this._decorationsMetadata){let ge=this._editor.getModel()?.getDecorationRange(ne);if(ge&&n.some((_e)=>_e.containsRange(ge)))te.push(ne),he.classNameRef.dispose(),this._decorationsMetadata.delete(ne)}let oe=os.capture(this._editor);this._editor.changeDecorations((ne)=>{let he=ne.deltaDecorations(te,x.map((ge)=>ge.decoration));for(let ge=0;ge<he.length;ge++){let _e=x[ge];this._decorationsMetadata.set(he[ge],_e)}}),oe.restore(this._editor)}_fillInColors(n,h){if(h.kind===s0.Parameter)n.backgroundColor=bn(BM),n.color=bn(HM);else if(h.kind===s0.Type)n.backgroundColor=bn(jM),n.color=bn(FM);else n.backgroundColor=bn(y1),n.color=bn(v1)}_getLayoutInfo(){let n=this._editor.getOption(159),h=n.padding,g=this._editor.getOption(61),p=this._editor.getOption(58),m=n.fontSize;if(!m||m<5||m>g)m=g;let v=n.fontFamily||p;return{fontSize:m,fontFamily:v,padding:h,isUniform:!h&&v===p&&m===g}}_removeAllDecorations(){this._editor.removeDecorations(Array.from(this._decorationsMetadata.keys()));for(let n of this._decorationsMetadata.values())n.classNameRef.dispose();this._decorationsMetadata.clear()}};Ym=Rc=jT([Dc(1,z),Dc(2,uo),Dc(3,jL),Dc(4,Ue),Dc(5,wt),Dc(6,A)],Ym);function $T(u){return u.replace(/[ \t]/g," ")}Te.registerCommand("_executeInlayHintProvider",async(u,...n)=>{let[h,g]=n;Fe(q.isUri(h)),Fe(t.isIRange(g));let{inlayHintsProvider:p}=u.get(z),m=await u.get(Dn).createModelReference(h);try{let v=await nd.create(p,m.object.textEditorModel,[t.lift(g)],ye.None),S=v.items.map((C)=>C.hint);return setTimeout(()=>v.dispose(),0),S}finally{m.dispose()}});var GT=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},rd=function(u,n){return function(h,g){n(h,g,u)}};class nv extends $s{constructor(u,n,h,g){super(10,n,u.item.anchor.range,h,g,!0);this.part=u}}var Ov=class u extends Gs{constructor(n,h,g,p,m,v,S,C){super(n,h,m,S,g,p,C);this._resolverService=v,this.hoverOrdinal=6}suggestHoverAnchor(n){if(!Ym.get(this._editor))return null;if(n.target.type!==6)return null;let g=n.target.detail.injectedText?.options;if(!(g instanceof bd&&g.attachedData instanceof vh))return null;return new nv(g.attachedData,this,n.event.posx,n.event.posy)}computeSync(){return[]}computeAsync(n,h,g,p){if(!(n instanceof nv))return ti.EMPTY;return new ti(async(m)=>{let{part:v}=n;if(await v.item.resolve(p),p.isCancellationRequested)return;let S;if(typeof v.item.hint.tooltip==="string")S=new Mn().appendText(v.item.hint.tooltip);else if(v.item.hint.tooltip)S=v.item.hint.tooltip;if(S)m.emitOne(new eo(this,n.range,[S],!1,0));if(qn(v.item.hint.textEdits))m.emitOne(new eo(this,n.range,[new Mn().appendText(e(1220,"Double-click to insert"))],!1,10001));let C;if(typeof v.part.tooltip==="string")C=new Mn().appendText(v.part.tooltip);else if(v.part.tooltip)C=v.part.tooltip;if(C)m.emitOne(new eo(this,n.range,[C],!1,1));if(v.part.location||v.part.command){let T,Z=this._editor.getOption(86)==="altKey"?ve?e(1221,"cmd + click"):e(1222,"ctrl + click"):ve?e(1223,"option + click"):e(1224,"alt + click");if(v.part.location&&v.part.command)T=new Mn().appendText(e(1225,"Go to Definition ({0}), right click for more",Z));else if(v.part.location)T=new Mn().appendText(e(1226,"Go to Definition ({0})",Z));else if(v.part.command)T=new Mn(`[${e(1227,"Execute Command")}](${UL(v.part.command)} "${v.part.command.title}") (${Z})`,{isTrusted:!0});if(T)m.emitOne(new eo(this,n.range,[T],!1,1e4))}let x=this._resolveInlayHintLabelPartHover(v,p);for await(let T of x)m.emitOne(T)})}async*_resolveInlayHintLabelPartHover(n,h){if(!n.part.location)return;let{uri:g,range:p}=n.part.location,m=await this._resolverService.createModelReference(g);try{let v=m.object.textEditorModel;if(!this._languageFeaturesService.hoverProvider.has(v))return;for await(let S of fh(this._languageFeaturesService.hoverProvider,v,new s(p.startLineNumber,p.startColumn),h))if(!Xh(S.hover.contents))yield new eo(this,n.item.anchor.range,S.hover.contents,!1,2+S.ordinal)}finally{m.dispose()}}};Ov=GT([rd(1,zo),rd(2,me),rd(3,On),rd(4,re),rd(5,Dn),rd(6,z),rd(7,Ue)],Ov);var ZL=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Nc=function(u,n){return function(h,g){n(h,g,u)}},rv,sv,Ap=rv=class u extends i{constructor(n,h,g,p,m,v,S){super();let C=h.hoverParts;this._renderedHoverParts=this._register(new av(n,g,C,p,m,v,S));let x=h.options,T=x.anchor,{showAtPosition:R,showAtSecondaryPosition:Z}=rv.computeHoverPositions(n,T.range,C);this.shouldAppearBeforeContent=C.some((Y)=>Y.isBeforeContent),this.showAtPosition=R,this.showAtSecondaryPosition=Z,this.initialMousePosX=T.initialMousePosX,this.initialMousePosY=T.initialMousePosY,this.shouldFocus=x.shouldFocus,this.source=x.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(n){this._renderedHoverParts.focusHoverPartWithIndex(n)}async updateHoverVerbosityLevel(n,h,g){this._renderedHoverParts.updateHoverVerbosityLevel(n,h,g)}isColorPickerVisible(){return this._renderedHoverParts.isColorPickerVisible()}static computeHoverPositions(n,h,g){let p=1;if(n.hasModel()){let T=n._getViewModel(),R=T.coordinatesConverter,Z=R.convertModelRangeToViewRange(h),Y=T.getLineMinColumn(Z.startLineNumber),Q=new s(Z.startLineNumber,Y);p=R.convertViewPositionToModelPosition(Q).column}let{startLineNumber:m,startColumn:v}=h,S;for(let T of g){let R=T.range,Z=R.startLineNumber===m,Y=R.endLineNumber===m;if(Z&&Y){let te=R.startColumn,oe=Math.min(v,te);v=Math.max(oe,p)}if(T.forceShowAtRange)S=R}let C,x;if(S){let T=S.getStartPosition();C=T,x=T}else C=h.getStartPosition(),x=new s(m,v);return{showAtPosition:C,showAtSecondaryPosition:x}}};Ap=rv=ZL([Nc(4,me),Nc(5,On),Nc(6,bi)],Ap);class XL{constructor(u,n){this._statusBar=n,u.appendChild(this._statusBar.hoverElement)}get hoverElement(){return this._statusBar.hoverElement}get actions(){return this._statusBar.actions}dispose(){this._statusBar.dispose()}}var av=class u extends i{static{sv=this}static{this._DECORATION_OPTIONS=de.register({description:"content-hover-highlight",className:"hoverHighlight"})}constructor(n,h,g,p,m,v,S){super();this._hoverService=v,this._clipboardService=S,this._renderedParts=[],this._perPartDisposables=new Map,this._focusedHoverPartIndex=-1,this._context=p,this._fragment=document.createDocumentFragment(),this._register(this._renderParts(h,g,p,m,this._hoverService)),this._register(this._registerListenersOnRenderedParts()),this._register(this._createEditorDecorations(n,g)),this._updateMarkdownAndColorParticipantInfo(h)}_createEditorDecorations(n,h){if(h.length===0)return i.None;let g=h[0].range;for(let m of h){let v=m.range;g=t.plusRange(g,v)}let p=n.createDecorationsCollection();return p.set([{range:g,options:sv._DECORATION_OPTIONS}]),N(()=>{p.clear()})}_renderParts(n,h,g,p,m){let v=new Nv(p,m),S={fragment:this._fragment,statusBar:v,...g},C=new d;C.add(v);for(let T of n){let R=this._renderHoverPartsForParticipant(h,T,S);C.add(R);for(let Z of R.renderedHoverParts)this._renderedParts.push({type:"hoverPart",participant:T,hoverPart:Z.hoverPart,hoverElement:Z.hoverElement})}let x=this._renderStatusBar(this._fragment,v);if(x)C.add(x),this._renderedParts.push({type:"statusBar",hoverElement:x.hoverElement,actions:x.actions});return C}_renderHoverPartsForParticipant(n,h,g){let p=n.filter((v)=>v.owner===h);if(!(p.length>0))return new Ko([]);return h.renderHoverParts(g,p)}_renderStatusBar(n,h){if(!h.hasContent)return;return new XL(n,h)}_registerListenersOnRenderedParts(){return this._renderedParts.forEach((n,h)=>{this._createListenersForPart(h,n)}),N(()=>{for(let n of this._perPartDisposables.values())n.dispose();this._perPartDisposables.clear()})}_createListenersForPart(n,h){let g=new d,p=h.hoverElement;if(p.tabIndex=0,g.add(c(p,E.FOCUS_IN,(m)=>{m.stopPropagation(),this._focusedHoverPartIndex=n})),g.add(c(p,E.FOCUS_OUT,(m)=>{m.stopPropagation(),this._focusedHoverPartIndex=-1})),h.type==="hoverPart"&&!(h.hoverPart instanceof Lc)&&!h.participant.hideCopyButton)g.add(new Rp(p,()=>h.participant.getAccessibleContent(h.hoverPart),this._clipboardService,this._hoverService));this._perPartDisposables.set(n,g)}_updateMarkdownAndColorParticipantInfo(n){let h=n.find((g)=>g instanceof Gs&&!(g instanceof Ov));if(h)this._markdownHoverParticipant=h;this._colorHoverParticipant=n.find((g)=>g instanceof Av)}focusHoverPartWithIndex(n){if(n<0||n>=this._renderedParts.length)return;this._renderedParts[n].hoverElement.focus()}async updateHoverVerbosityLevel(n,h,g){if(!this._markdownHoverParticipant)return;let p;if(h>=0)p={start:h,endExclusive:h+1};else p=this._findRangeOfMarkdownHoverParts(this._markdownHoverParticipant);for(let m=p.start;m<p.endExclusive;m++){let v=this._normalizedIndexToMarkdownHoverIndexRange(this._markdownHoverParticipant,m);if(v===void 0)continue;let S=await this._markdownHoverParticipant.updateMarkdownHoverVerbosityLevel(n,v);if(!S)continue;let C=this._perPartDisposables.get(m);if(C)C.dispose(),this._perPartDisposables.delete(m);this._renderedParts[m]={type:"hoverPart",participant:this._markdownHoverParticipant,hoverPart:S.hoverPart,hoverElement:S.hoverElement},this._createListenersForPart(m,this._renderedParts[m])}if(g)if(h>=0)this.focusHoverPartWithIndex(h);else this._context.focus();this._context.onContentsChanged()}isColorPickerVisible(){return this._colorHoverParticipant?.isColorPickerVisible()??!1}_normalizedIndexToMarkdownHoverIndexRange(n,h){let g=this._renderedParts[h];if(!g||g.type!=="hoverPart")return;if(g.participant!==n)return;let m=this._renderedParts.findIndex((v)=>v.type==="hoverPart"&&v.participant===n);if(m===-1)throw new H;return h-m}_findRangeOfMarkdownHoverParts(n){let h=this._renderedParts.slice(),g=h.findIndex((v)=>v.type==="hoverPart"&&v.participant===n),p=h.reverse().findIndex((v)=>v.type==="hoverPart"&&v.participant===n),m=p>=0?h.length-p:p;return{start:g,endExclusive:m+1}}get domNode(){return this._fragment}get domNodeHasChildren(){return this._fragment.hasChildNodes()}get focusedHoverPartIndex(){return this._focusedHoverPartIndex}get hoverPartsCount(){return this._renderedParts.length}};av=sv=ZL([Nc(4,me),Nc(5,On),Nc(6,bi)],av);var ZT=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Fp=function(u,n){return function(h,g){n(h,g,u)}},Hp=class u extends i{constructor(n,h,g,p,m){super();this._editor=n,this._instantiationService=h,this._keybindingService=g,this._hoverService=p,this._clipboardService=m,this._currentResult=null,this._renderedContentHover=this._register(new ce),this._onContentsChanged=this._register(new o),this.onContentsChanged=this._onContentsChanged.event,this._contentHoverWidget=this._register(this._instantiationService.createInstance(Dp,this._editor)),this._participants=this._initializeHoverParticipants(),this._hoverOperation=this._register(new gh(this._editor,new mh(this._editor,this._participants))),this._registerListeners()}_initializeHoverParticipants(){let n=[];for(let h of fl.getAll()){let g=this._instantiationService.createInstance(h,this._editor);n.push(g)}return n.sort((h,g)=>h.hoverOrdinal-g.hoverOrdinal),this._register(this._contentHoverWidget.onDidResize(()=>{this._participants.forEach((h)=>h.handleResize?.())})),this._register(this._contentHoverWidget.onDidScroll((h)=>{this._participants.forEach((g)=>g.handleScroll?.(h))})),this._register(this._contentHoverWidget.onContentsChanged(()=>{this._participants.forEach((h)=>h.handleContentsChanged?.())})),n}_registerListeners(){this._register(this._hoverOperation.onResult((h)=>{let g=h.hasLoadingMessage?this._addLoadingMessage(h):h.value;this._withResult(new Tp(g,h.isComplete,h.options))}));let n=this._contentHoverWidget.getDomNode();this._register(Ct(n,"keydown",(h)=>{if(h.equals(9))this.hide()})),this._register(Ct(n,"mouseleave",(h)=>{this._onMouseLeave(h)})),this._register(Ut.onDidChange(()=>{if(this._contentHoverWidget.position&&this._currentResult)this._setCurrentResult(this._currentResult)})),this._register(this._contentHoverWidget.onContentsChanged(()=>{this._onContentsChanged.fire()}))}_startShowingOrUpdateHover(n,h,g,p,m){if(!(this._contentHoverWidget.position&&this._currentResult)){if(n)return this._startHoverOperationIfNecessary(n,h,g,p,!1),!0;return!1}let S=this._editor.getOption(69).sticky,C=m&&this._contentHoverWidget.isMouseGettingCloser(m.event.posx,m.event.posy);if(S&&C){if(n)this._startHoverOperationIfNecessary(n,h,g,p,!0);return!0}if(!n)return this._setCurrentResult(null),!1;if(this._currentResult&&this._currentResult.options.anchor.equals(n))return!0;if(!(this._currentResult&&n.canAdoptVisibleHover(this._currentResult.options.anchor,this._contentHoverWidget.position)))return this._setCurrentResult(null),this._startHoverOperationIfNecessary(n,h,g,p,!1),!0;if(this._currentResult)this._setCurrentResult(this._currentResult.filter(n));return this._startHoverOperationIfNecessary(n,h,g,p,!1),!0}_startHoverOperationIfNecessary(n,h,g,p,m){if(this._hoverOperation.options&&this._hoverOperation.options.anchor.equals(n))return;this._hoverOperation.cancel();let S={anchor:n,source:g,shouldFocus:p,insistOnKeepingHoverVisible:m};this._hoverOperation.start(h,S)}_setCurrentResult(n){let h=n;if(this._currentResult===h)return;if(h&&h.hoverParts.length===0)h=null;if(this._currentResult=h,this._currentResult)this._showHover(this._currentResult);else this._hideHover()}_addLoadingMessage(n){for(let h of this._participants){if(!h.createLoadingMessage)continue;let g=h.createLoadingMessage(n.options.anchor);if(!g)continue;return n.value.slice(0).concat([g])}return n.value}_withResult(n){if(!(this._contentHoverWidget.position&&this._currentResult&&this._currentResult.isComplete))this._setCurrentResult(n);if(!n.isComplete)return;let p=n.hoverParts.length===0,m=n.options.insistOnKeepingHoverVisible;if(p&&m)return;this._setCurrentResult(n)}_showHover(n){let h=this._getHoverContext();if(this._renderedContentHover.value=new Ap(this._editor,n,this._participants,h,this._keybindingService,this._hoverService,this._clipboardService),this._renderedContentHover.value.domNodeHasChildren)this._contentHoverWidget.show(this._renderedContentHover.value);else this._renderedContentHover.clear()}_hideHover(){this._contentHoverWidget.hide(),this._participants.forEach((n)=>n.handleHide?.())}_getHoverContext(){return{hide:()=>{this.hide()},onContentsChanged:()=>{this._contentHoverWidget.handleContentsChanged()},setMinimumDimensions:(m)=>{this._contentHoverWidget.setMinimumDimensions(m)},focus:()=>this.focus()}}showsOrWillShow(n){if(this._contentHoverWidget.isResizing)return!0;if(this._isMouseOnCodeActionWidget(n))return!0;let g=this._findHoverAnchorCandidates(n);if(!(g.length>0))return this._startShowingOrUpdateHover(null,0,0,!1,n);let m=g[0];return this._startShowingOrUpdateHover(m,0,0,!1,n)}_findHoverAnchorCandidates(n){let h=[];for(let p of this._participants){if(!p.suggestHoverAnchor)continue;let m=p.suggestHoverAnchor(n);if(!m)continue;h.push(m)}let g=n.target;switch(g.type){case 6:{h.push(new ph(0,g.range,n.event.posx,n.event.posy));break}case 7:{let p=this._editor.getOption(59).typicalHalfwidthCharacterWidth/2;if(!(!g.detail.isAfterLines&&typeof g.detail.horizontalDistanceToText==="number"&&g.detail.horizontalDistanceToText<p))break;h.push(new ph(0,g.range,n.event.posx,n.event.posy));break}}return h.sort((p,m)=>m.priority-p.priority),h}_isMouseOnCodeActionWidget(n){let h=n.event.browserEvent.target;if(h instanceof Element&&!!h.closest(".action-widget"))return!0;return!1}_onMouseLeave(n){let h=this._editor.getDomNode();if(!h||!qs(h,n.x,n.y))this.hide()}startShowingAtRange(n,h,g,p){this._startShowingOrUpdateHover(new ph(0,n,void 0,void 0),h,g,p,null)}async updateHoverVerbosityLevel(n,h,g){this._renderedContentHover.value?.updateHoverVerbosityLevel(n,h,g)}focusedHoverPartIndex(){return this._renderedContentHover.value?.focusedHoverPartIndex??-1}containsNode(n){return n?this._contentHoverWidget.getDomNode().contains(n):!1}focus(){if(this._renderedContentHover.value?.hoverPartsCount===1){this.focusHoverPartWithIndex(0);return}this._contentHoverWidget.focus()}focusHoverPartWithIndex(n){this._renderedContentHover.value?.focusHoverPartWithIndex(n)}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}};Hp=ZT([Fp(1,A),Fp(2,me),Fp(3,On),Fp(4,bi)],Hp);function QC(u){let n=u.target;return!!n&&n.type===6&&n.detail.injectedText?.options.attachedData===$b}var XT=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},dv=function(u,n){return function(h,g){n(h,g,u)}},cv,Ro=class u extends i{static{cv=this}static{this.ID="editor.contrib.contentHover"}constructor(n,h,g,p){super();this._editor=n,this._instantiationService=g,this._keybindingService=p,this._onHoverContentsChanged=this._register(new o),this.shouldKeepOpenOnEditorMouseMoveOrLeave=!1,this._listenersStore=new d,this._isMouseDown=!1,this._ignoreMouseEvents=!1,this._reactToEditorMouseMoveRunner=this._register(new Ce(()=>{if(this._mouseMoveEvent)this._reactToEditorMouseMove(this._mouseMoveEvent)},0)),this._register(h.onDidShowContextMenu(()=>{this.hideContentHover(),this._ignoreMouseEvents=!0})),this._register(h.onDidHideContextMenu(()=>{this._ignoreMouseEvents=!1})),this._hookListeners(),this._register(this._editor.onDidChangeConfiguration((m)=>{if(m.hasChanged(69))this._unhookListeners(),this._hookListeners()}))}static get(n){return n.getContribution(cv.ID)}_hookListeners(){let n=this._editor.getOption(69);if(this._hoverSettings={enabled:n.enabled,sticky:n.sticky,hidingDelay:n.hidingDelay},n.enabled==="off")this._cancelSchedulerAndHide();this._listenersStore.add(this._editor.onMouseDown((h)=>this._onEditorMouseDown(h))),this._listenersStore.add(this._editor.onMouseUp(()=>this._onEditorMouseUp())),this._listenersStore.add(this._editor.onMouseMove((h)=>this._onEditorMouseMove(h))),this._listenersStore.add(this._editor.onKeyDown((h)=>this._onKeyDown(h))),this._listenersStore.add(this._editor.onMouseLeave((h)=>this._onEditorMouseLeave(h))),this._listenersStore.add(this._editor.onDidChangeModel(()=>this._cancelSchedulerAndHide())),this._listenersStore.add(this._editor.onDidChangeModelContent(()=>this._cancelScheduler())),this._listenersStore.add(this._editor.onDidScrollChange((h)=>this._onEditorScrollChanged(h)))}_unhookListeners(){this._listenersStore.clear()}_cancelSchedulerAndHide(){this._cancelScheduler(),this.hideContentHover()}_cancelScheduler(){this._mouseMoveEvent=void 0,this._reactToEditorMouseMoveRunner.cancel()}_onEditorScrollChanged(n){if(this._ignoreMouseEvents)return;if(n.scrollTopChanged||n.scrollLeftChanged)this.hideContentHover()}_onEditorMouseDown(n){if(this._ignoreMouseEvents)return;if(this._isMouseDown=!0,this._shouldKeepHoverWidgetVisible(n))return;this.hideContentHover()}_shouldKeepHoverWidgetVisible(n){return this._isMouseOnContentHoverWidget(n)||this._isContentWidgetResizing()||QC(n)}_isMouseOnContentHoverWidget(n){if(!this._contentWidget||!this._contentWidget.getDomNode().isConnected)return!1;return qs(this._contentWidget.getDomNode(),n.event.posx,n.event.posy)}_onEditorMouseUp(){if(this._ignoreMouseEvents)return;this._isMouseDown=!1}_onEditorMouseLeave(n){if(this._ignoreMouseEvents)return;if(this.shouldKeepOpenOnEditorMouseMoveOrLeave)return;if(this._cancelScheduler(),this._shouldKeepHoverWidgetVisible(n))return;this.hideContentHover()}_shouldKeepCurrentHover(n){let h=this._contentWidget;if(!h)return!1;let g=this._hoverSettings.sticky,p=(T,R)=>{let Z=this._isMouseOnContentHoverWidget(T);return R&&Z},m=(T)=>{let R=h.isColorPickerVisible,Z=this._isMouseOnContentHoverWidget(T),Y=R&&Z,Q=R&&this._isMouseDown;return Y||Q},v=(T,R)=>{let Z=T.event.browserEvent.view;if(!Z)return!1;return R&&h.containsNode(Z.document.activeElement)&&!Z.getSelection()?.isCollapsed},{isFocused:S,isResizing:C}=h,x=this._hoverSettings.sticky&&h.isVisibleFromKeyboard;return this.shouldKeepOpenOnEditorMouseMoveOrLeave||S||C||x||p(n,g)||m(n)||v(n,g)}_onEditorMouseMove(n){if(this._ignoreMouseEvents)return;if(this._isMouseDown&&!this._shouldKeepHoverWidgetVisible(n)){this._cancelSchedulerAndHide();return}if(this._mouseMoveEvent=n,this._shouldKeepCurrentHover(n)){this._reactToEditorMouseMoveRunner.cancel();return}if(this._shouldRescheduleHoverComputation()){if(!this._reactToEditorMouseMoveRunner.isScheduled())this._reactToEditorMouseMoveRunner.schedule(this._hoverSettings.hidingDelay);return}this._reactToEditorMouseMove(n)}_shouldRescheduleHoverComputation(){let n=this._hoverSettings.hidingDelay;return(this._contentWidget?.isVisible??!1)&&this._hoverSettings.sticky&&n>0}_reactToEditorMouseMove(n){if(Lp(this._hoverSettings.enabled,this._editor.getOption(86),n)){if(this._getOrCreateContentWidget().showsOrWillShow(n))return}this.hideContentHover()}_onKeyDown(n){if(this._ignoreMouseEvents||!this._contentWidget)return;if(this._hoverSettings.enabled==="onKeyboardModifier"&&uh(this._editor.getOption(86),n)&&this._mouseMoveEvent){if(!this._contentWidget.isVisible)this._contentWidget.showsOrWillShow(this._mouseMoveEvent);return}let h=this._isPotentialKeyboardShortcut(n),g=Mh(n.keyCode);if(h||g)return;if(this._contentWidget.isFocused&&n.keyCode===2)return;this.hideContentHover()}_isPotentialKeyboardShortcut(n){if(!this._editor.hasModel()||!this._contentWidget)return!1;let h=this._keybindingService.softDispatch(n,this._editor.getDomNode()),g=h.kind===1,p=h.kind===2&&(h.commandId===lp||h.commandId===$a||h.commandId===Za)&&this._contentWidget.isVisible;return g||p}hideContentHover(){if(qr.dropDownVisible)return;this._contentWidget?.hide()}_getOrCreateContentWidget(){if(!this._contentWidget)this._contentWidget=this._instantiationService.createInstance(Hp,this._editor),this._listenersStore.add(this._contentWidget.onContentsChanged(()=>this._onHoverContentsChanged.fire()));return this._contentWidget}showContentHover(n,h,g,p){this._getOrCreateContentWidget().startShowingAtRange(n,h,g,p)}_isContentWidgetResizing(){return this._contentWidget?.widget.isResizing||!1}focusedHoverPartIndex(){return this._getOrCreateContentWidget().focusedHoverPartIndex()}updateHoverVerbosityLevel(n,h,g){this._getOrCreateContentWidget().updateHoverVerbosityLevel(n,h,g)}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()}};Ro=cv=XT([dv(1,Yn),dv(2,A),dv(3,me)],Ro);var Zn;(function(u){u.NoAutoFocus="noAutoFocus",u.FocusIfVisible="focusIfVisible",u.AutoFocusImmediately="autoFocusImmediately"})(Zn||(Zn={}));class lv extends U{constructor(){super({id:lp,label:b(1165,"Show or Focus Hover"),metadata:{description:b(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:[Zn.NoAutoFocus,Zn.FocusIfVisible,Zn.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:Zn.FocusIfVisible}}}}]},precondition:void 0,kbOpts:{kbExpr:r.editorTextFocus,primary:hn(2089,2087),weight:100}})}run(u,n,h){if(!n.hasModel())return;let g=Ro.get(n);if(!g)return;let p=h?.focus,m=Zn.FocusIfVisible;if(Object.values(Zn).includes(p))m=p;else if(typeof p==="boolean"&&p)m=Zn.AutoFocusImmediately;let v=(C)=>{let x=n.getPosition(),T=new t(x.lineNumber,x.column,x.lineNumber,x.column);g.showContentHover(T,1,2,C)},S=n.getOption(2)===2;if(g.isHoverVisible)if(m!==Zn.NoAutoFocus)g.focus();else v(S);else v(S||m===Zn.AutoFocusImmediately)}}class hv extends U{constructor(){super({id:aL,label:b(1167,"Show Definition Preview Hover"),precondition:void 0,metadata:{description:b(1168,"Show the definition preview hover in the editor.")}})}run(u,n){let h=Ro.get(n);if(!h)return;let g=n.getPosition();if(!g)return;let p=new t(g.lineNumber,g.column,g.lineNumber,g.column),m=hc.get(n);if(!m)return;m.startFindDefinitionFromCursor(g).then(()=>{h.showContentHover(p,1,2,!0)})}}class uv extends U{constructor(){super({id:dL,label:b(1169,"Hide Hover"),alias:"Hide Content Hover",precondition:void 0})}run(u,n){Ro.get(n)?.hideContentHover()}}class gv extends U{constructor(){super({id:cL,label:b(1170,"Scroll Up Hover"),precondition:r.hoverFocused,kbOpts:{kbExpr:r.hoverFocused,primary:16,weight:100},metadata:{description:b(1171,"Scroll up the editor hover.")}})}run(u,n){let h=Ro.get(n);if(!h)return;h.scrollUp()}}class pv extends U{constructor(){super({id:lL,label:b(1172,"Scroll Down Hover"),precondition:r.hoverFocused,kbOpts:{kbExpr:r.hoverFocused,primary:18,weight:100},metadata:{description:b(1173,"Scroll down the editor hover.")}})}run(u,n){let h=Ro.get(n);if(!h)return;h.scrollDown()}}class mv extends U{constructor(){super({id:hL,label:b(1174,"Scroll Left Hover"),precondition:r.hoverFocused,kbOpts:{kbExpr:r.hoverFocused,primary:15,weight:100},metadata:{description:b(1175,"Scroll left the editor hover.")}})}run(u,n){let h=Ro.get(n);if(!h)return;h.scrollLeft()}}class fv extends U{constructor(){super({id:uL,label:b(1176,"Scroll Right Hover"),precondition:r.hoverFocused,kbOpts:{kbExpr:r.hoverFocused,primary:17,weight:100},metadata:{description:b(1177,"Scroll right the editor hover.")}})}run(u,n){let h=Ro.get(n);if(!h)return;h.scrollRight()}}class _v extends U{constructor(){super({id:gL,label:b(1178,"Page Up Hover"),precondition:r.hoverFocused,kbOpts:{kbExpr:r.hoverFocused,primary:11,secondary:[528],weight:100},metadata:{description:b(1179,"Page up the editor hover.")}})}run(u,n){let h=Ro.get(n);if(!h)return;h.pageUp()}}class bv extends U{constructor(){super({id:pL,label:b(1180,"Page Down Hover"),precondition:r.hoverFocused,kbOpts:{kbExpr:r.hoverFocused,primary:12,secondary:[530],weight:100},metadata:{description:b(1181,"Page down the editor hover.")}})}run(u,n){let h=Ro.get(n);if(!h)return;h.pageDown()}}class vv extends U{constructor(){super({id:mL,label:b(1182,"Go To Top Hover"),precondition:r.hoverFocused,kbOpts:{kbExpr:r.hoverFocused,primary:14,secondary:[2064],weight:100},metadata:{description:b(1183,"Go to the top of the editor hover.")}})}run(u,n){let h=Ro.get(n);if(!h)return;h.goToTop()}}class wv extends U{constructor(){super({id:fL,label:b(1184,"Go To Bottom Hover"),precondition:r.hoverFocused,kbOpts:{kbExpr:r.hoverFocused,primary:13,secondary:[2066],weight:100},metadata:{description:b(1185,"Go to the bottom of the editor hover.")}})}run(u,n){let h=Ro.get(n);if(!h)return;h.goToBottom()}}class Sv extends U{constructor(){super({id:$a,label:_L,alias:"Increase Hover Verbosity Level",precondition:r.hoverVisible})}run(u,n,h){let g=Ro.get(n);if(!g)return;let p=h?.index!==void 0?h.index:g.focusedHoverPartIndex();g.updateHoverVerbosityLevel(fs.Increase,p,h?.focus)}}class Cv extends U{constructor(){super({id:Za,label:bL,alias:"Decrease Hover Verbosity Level",precondition:r.hoverVisible})}run(u,n,h){let g=Ro.get(n);if(!g)return;let p=h?.index!==void 0?h.index:g.focusedHoverPartIndex();Ro.get(n)?.updateHoverVerbosityLevel(fs.Decrease,p,h?.focus)}}var YT=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},wh=function(u,n){return function(h,g){n(h,g,u)}},ln=w;class JL{constructor(u,n,h){this.owner=u,this.range=n,this.marker=h}isValidForHoverAnchor(u){return u.type===1&&this.range.startColumn<=u.range.startColumn&&this.range.endColumn>=u.range.endColumn}}var YL={type:1,filter:{include:ft.QuickFix},triggerAction:_i.QuickFixHover},Wp=class u{constructor(n,h,g,p,m,v){this._editor=n,this._markerDecorationsService=h,this._openerService=g,this._languageFeaturesService=p,this._menuService=m,this._contextKeyService=v,this.hoverOrdinal=1,this.recentMarkerCodeActionsInfo=void 0}computeSync(n,h){if(!this._editor.hasModel()||n.type!==1&&!n.supportsMarkerHover)return[];let g=this._editor.getModel(),p=n.range;if(!g.isValidRange(n.range))return[];let m=p.startLineNumber,v=g.getLineMaxColumn(m),S=[];for(let C of h){let x=C.range.startLineNumber===m?C.range.startColumn:1,T=C.range.endLineNumber===m?C.range.endColumn:v,R=this._markerDecorationsService.getMarker(g.uri,C);if(!R)continue;let Z=new t(n.range.startLineNumber,x,n.range.startLineNumber,T);S.push(new JL(this,Z,R))}return S}renderHoverParts(n,h){if(!h.length)return new Ko([]);let g=[];h.forEach((v)=>{let S=this._renderMarkerHover(v);n.fragment.appendChild(S.hoverElement),g.push(S)});let p=h.length===1?h[0]:h.sort((v,S)=>an.compare(v.marker.severity,S.marker.severity))[0],m=this._renderMarkerStatusbar(n,p);return new Ko(g,m)}getAccessibleContent(n){let{marker:h}=n,g=qn(h.relatedInformation)?h.relatedInformation.map((p)=>`${Mi(p.resource)}(${p.startLineNumber}, ${p.startColumn}): ${p.message}`).join(`
|
|
32
|
+
`):void 0;return[h.message,g].filter((p)=>!!p).join(`
|
|
33
|
+
`)}_renderMarkerHover(n){let h=new d,g=ln("div.hover-row"),p=k(g,ln("div.marker.hover-contents")),{source:m,message:v,code:S,relatedInformation:C}=n.marker;this._editor.applyFontInfo(p);let x=k(p,ln("span"));if(x.style.whiteSpace="pre-wrap",x.innerText=v,m||S)if(S&&typeof S!=="string"){let R=ln("span");if(m){let te=k(R,ln("span"));te.innerText=m}let Z=k(R,ln("a.code-link"));Z.setAttribute("href",S.target.toString(!0)),h.add(c(Z,"click",(te)=>{this._openerService.open(S.target),te.preventDefault(),te.stopPropagation()}));let Y=k(Z,ln("span"));Y.innerText=S.value;let Q=k(p,R);Q.style.opacity="0.6",Q.style.paddingLeft="6px"}else{let R=k(p,ln("span"));R.style.opacity="0.6",R.style.paddingLeft="6px",R.innerText=m&&S?`${m}(${S})`:m?m:`(${S})`}if(qn(C))for(let{message:R,resource:Z,startLineNumber:Y,startColumn:Q}of C){let te=k(p,ln("div"));te.style.marginTop="8px";let oe=k(te,ln("a"));oe.innerText=`${Mi(Z)}(${Y}, ${Q}): `,oe.style.cursor="pointer",h.add(c(oe,"click",(he)=>{if(he.stopPropagation(),he.preventDefault(),this._openerService){let ge={selection:{startLineNumber:Y,startColumn:Q}};this._openerService.open(Z,{fromUserGesture:!0,editorOptions:ge}).catch(X)}}));let ne=k(te,ln("span"));ne.innerText=R,this._editor.applyFontInfo(ne)}return{hoverPart:n,hoverElement:g,dispose:()=>h.dispose()}}_renderMarkerStatusbar(n,h){let g=new d;if(h.marker.severity===an.Error||h.marker.severity===an.Warning||h.marker.severity===an.Info){let v=Ts.get(this._editor);if(v)n.statusBar.addAction({label:e(1195,"View Problem"),commandId:Vr.ID,run:()=>{n.hide(),v.showAtMarker(h.marker),this._editor.focus()}})}let p=[];for(let[,v]of this._menuService.getMenuActions(l.MarkerHoverStatusBar,this._contextKeyService))for(let S of v)if(S instanceof Ki&&S.enabled)p.push(S);let m=()=>{for(let v of p)n.statusBar.addAction({label:v.label,commandId:v.id,iconClass:v.class,run:()=>{n.hide(),this._editor.setSelection(t.lift(h.range)),v.run()}})};if(!this._editor.getOption(104)){let v=n.statusBar.append(ln("div"));if(this.recentMarkerCodeActionsInfo)if(U0.makeKey(this.recentMarkerCodeActionsInfo.marker)===U0.makeKey(h.marker)){if(!this.recentMarkerCodeActionsInfo.hasCodeActions){if(p.length===0)v.textContent=e(1196,"No quick fixes available")}}else this.recentMarkerCodeActionsInfo=void 0;let S=this.recentMarkerCodeActionsInfo&&!this.recentMarkerCodeActionsInfo.hasCodeActions?i.None:fi(()=>v.textContent=e(1197,"Checking for quick fixes..."),200,g);if(!v.textContent)v.textContent=String.fromCharCode(160);let C=this.getCodeActions(h.marker);g.add(N(()=>C.cancel())),C.then((x)=>{if(S.dispose(),this.recentMarkerCodeActionsInfo={marker:h.marker,hasCodeActions:x.validActions.length>0},!this.recentMarkerCodeActionsInfo.hasCodeActions){if(x.dispose(),p.length===0)v.textContent=e(1198,"No quick fixes available");else v.style.display="none";m();return}v.style.display="none";let T=!1;g.add(N(()=>{if(!T)x.dispose()})),n.statusBar.addAction({label:e(1199,"Quick Fix..."),commandId:Bs,run:(Z)=>{T=!0;let Y=_r.get(this._editor),Q=kt(Z);Y?.showCodeActions(YL,x,{x:Q.left,y:Q.top,width:Q.width,height:Q.height})}});let R=x.validActions.find((Z)=>Z.action.isAI);if(R)n.statusBar.addAction({label:R.action.title,commandId:R.action.command?.id??"",iconClass:J.asClassName(_.sparkle),run:()=>{_r.get(this._editor)?.applyCodeAction(R,!1,!1,ur.FromProblemsHover)}});else m();n.onContentsChanged()},X)}else m();return g}getCodeActions(n){return Yt((h)=>Vs(this._languageFeaturesService.codeActionProvider,this._editor.getModel(),new t(n.startLineNumber,n.startColumn,n.endLineNumber,n.endColumn),YL,Ua.None,h))}};Wp=YT([wh(1,Qv),wh(2,er),wh(3,z),wh(4,Oi),wh(5,G)],Wp);class yv{constructor(u){this._editor=u}computeSync(u){let n=(m)=>({value:m}),h=this._editor.getLineDecorations(u.lineNumber),g=[],p=u.laneOrLine==="lineNo";if(!h)return g;for(let m of h){let v=m.options.glyphMargin?.position??ts.Center;if(!p&&v!==u.laneOrLine)continue;let S=p?m.options.lineNumberHoverMessage:m.options.glyphMarginHoverMessage;if(!S||Xh(S))continue;g.push(...Pv(S).map(n))}return g}}var JT=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},QT=function(u,n){return function(h,g){n(h,g,u)}},xv,QL=w,Bp=class u extends i{static{xv=this}static{this.ID="editor.contrib.modesGlyphHoverWidget"}constructor(n,h){super();this._markdownRendererService=h,this.allowEditorOverflow=!0,this._renderDisposeables=this._register(new d),this._editor=n,this._isVisible=!1,this._messages=[],this._hover=this._register(new _g(!0)),this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible),this._hoverOperation=this._register(new gh(this._editor,new yv(this._editor))),this._register(this._hoverOperation.onResult((g)=>this._withResult(g))),this._register(this._editor.onDidChangeModelDecorations(()=>this._onModelDecorationsChanged())),this._register(this._editor.onDidChangeConfiguration((g)=>{if(g.hasChanged(59))this._updateFont()})),this._register(Ct(this._hover.containerDomNode,"mouseleave",(g)=>{this._onMouseLeave(g)})),this._editor.addOverlayWidget(this)}dispose(){this._hoverComputerOptions=void 0,this._editor.removeOverlayWidget(this),super.dispose()}getId(){return xv.ID}getDomNode(){return this._hover.containerDomNode}getPosition(){return null}_updateFont(){Array.prototype.slice.call(this._hover.contentsDomNode.getElementsByClassName("code")).forEach((h)=>this._editor.applyFontInfo(h))}_onModelDecorationsChanged(){if(this._isVisible&&this._hoverComputerOptions)this._hoverOperation.cancel(),this._hoverOperation.start(0,this._hoverComputerOptions)}showsOrWillShow(n){let h=n.target;if(h.type===2&&h.detail.glyphMarginLane)return this._startShowingAt(h.position.lineNumber,h.detail.glyphMarginLane),!0;if(h.type===3)return this._startShowingAt(h.position.lineNumber,"lineNo"),!0;return!1}_startShowingAt(n,h){if(this._hoverComputerOptions&&this._hoverComputerOptions.lineNumber===n&&this._hoverComputerOptions.laneOrLine===h)return;this._hoverOperation.cancel(),this.hide(),this._hoverComputerOptions={lineNumber:n,laneOrLine:h},this._hoverOperation.start(0,this._hoverComputerOptions)}hide(){if(this._hoverComputerOptions=void 0,this._hoverOperation.cancel(),!this._isVisible)return;this._isVisible=!1,this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible)}_withResult(n){if(this._messages=n.value,this._messages.length>0)this._renderMessages(n.options.lineNumber,n.options.laneOrLine,this._messages);else this.hide()}_renderMessages(n,h,g){this._renderDisposeables.clear();let p=document.createDocumentFragment();for(let m of g){let v=QL("div.hover-row.markdown-hover"),S=k(v,QL("div.hover-contents")),C=this._renderDisposeables.add(this._markdownRendererService.render(m.value,{context:this._editor}));S.appendChild(C.element),p.appendChild(v)}this._updateContents(p),this._showAt(n,h)}_updateContents(n){this._hover.contentsDomNode.textContent="",this._hover.contentsDomNode.appendChild(n),this._updateFont()}_showAt(n,h){if(!this._isVisible)this._isVisible=!0,this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible);let g=this._editor.getLayoutInfo(),p=this._editor.getTopForLineNumber(n),m=this._editor.getScrollTop(),v=this._editor.getOption(75),S=this._hover.containerDomNode.clientHeight,C=p-m-(S-v)/2,x=g.glyphMarginLeft+g.glyphMarginWidth+(h==="lineNo"?g.lineNumbersWidth:0),R=g.height-S,Z=Math.max(0,Math.min(Math.round(C),R));if(this._editor.getOption(51)){let Q=this._editor.getDomNode();if(Q){let te=kt(Q);this._hover.containerDomNode.style.position="fixed",this._hover.containerDomNode.style.left=`${te.left+x}px`,this._hover.containerDomNode.style.top=`${te.top+Z}px`}}else this._hover.containerDomNode.style.position="absolute",this._hover.containerDomNode.style.left=`${x}px`,this._hover.containerDomNode.style.top=`${Z}px`;this._hover.containerDomNode.style.zIndex="11"}_onMouseLeave(n){let h=this._editor.getDomNode();if(!h||!qs(h,n.x,n.y))this.hide()}};Bp=xv=JT([QT(1,zo)],Bp);var eR=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},tR=function(u,n){return function(h,g){n(h,g,u)}},Sh=class u extends i{static{this.ID="editor.contrib.marginHover"}constructor(n,h){super();this._editor=n,this._instantiationService=h,this.shouldKeepOpenOnEditorMouseMoveOrLeave=!1,this._listenersStore=new d,this._hoverState={mouseDown:!1},this._reactToEditorMouseMoveRunner=this._register(new Ce(()=>this._reactToEditorMouseMove(this._mouseMoveEvent),0)),this._hookListeners(),this._register(this._editor.onDidChangeConfiguration((g)=>{if(g.hasChanged(69))this._unhookListeners(),this._hookListeners()}))}_hookListeners(){let n=this._editor.getOption(69);if(this._hoverSettings={enabled:n.enabled,sticky:n.sticky,hidingDelay:n.hidingDelay},n.enabled!=="off")this._listenersStore.add(this._editor.onMouseDown((h)=>this._onEditorMouseDown(h))),this._listenersStore.add(this._editor.onMouseUp(()=>this._onEditorMouseUp())),this._listenersStore.add(this._editor.onMouseMove((h)=>this._onEditorMouseMove(h))),this._listenersStore.add(this._editor.onKeyDown((h)=>this._onKeyDown(h)));else this._listenersStore.add(this._editor.onMouseMove((h)=>this._onEditorMouseMove(h))),this._listenersStore.add(this._editor.onKeyDown((h)=>this._onKeyDown(h)));this._listenersStore.add(this._editor.onMouseLeave((h)=>this._onEditorMouseLeave(h))),this._listenersStore.add(this._editor.onDidChangeModel(()=>{this._cancelScheduler(),this.hideGlyphHover()})),this._listenersStore.add(this._editor.onDidChangeModelContent(()=>this._cancelScheduler())),this._listenersStore.add(this._editor.onDidScrollChange((h)=>this._onEditorScrollChanged(h)))}_unhookListeners(){this._listenersStore.clear()}_cancelScheduler(){this._mouseMoveEvent=void 0,this._reactToEditorMouseMoveRunner.cancel()}_onEditorScrollChanged(n){if(n.scrollTopChanged||n.scrollLeftChanged)this.hideGlyphHover()}_onEditorMouseDown(n){if(this._hoverState.mouseDown=!0,this._isMouseOnGlyphHoverWidget(n))return;this.hideGlyphHover()}_isMouseOnGlyphHoverWidget(n){let h=this._glyphWidget?.getDomNode();if(h)return qs(h,n.event.posx,n.event.posy);return!1}_onEditorMouseUp(){this._hoverState.mouseDown=!1}_onEditorMouseLeave(n){if(this.shouldKeepOpenOnEditorMouseMoveOrLeave)return;if(this._cancelScheduler(),this._isMouseOnGlyphHoverWidget(n))return;this.hideGlyphHover()}_shouldNotRecomputeCurrentHoverWidget(n){let h=this._hoverSettings.sticky,g=this._isMouseOnGlyphHoverWidget(n);return h&&g}_onEditorMouseMove(n){if(this.shouldKeepOpenOnEditorMouseMoveOrLeave)return;if(this._mouseMoveEvent=n,this._shouldNotRecomputeCurrentHoverWidget(n)){this._reactToEditorMouseMoveRunner.cancel();return}this._reactToEditorMouseMove(n)}_reactToEditorMouseMove(n){if(!n)return;if(!Lp(this._hoverSettings.enabled,this._editor.getOption(86),n)){this.hideGlyphHover();return}if(this._tryShowHoverWidget(n))return;this.hideGlyphHover()}_tryShowHoverWidget(n){return this._getOrCreateGlyphWidget().showsOrWillShow(n)}_onKeyDown(n){if(!this._editor.hasModel())return;if(this._hoverSettings.enabled==="onKeyboardModifier"&&uh(this._editor.getOption(86),n)&&this._mouseMoveEvent){this._tryShowHoverWidget(this._mouseMoveEvent);return}if(Mh(n.keyCode))return;this.hideGlyphHover()}hideGlyphHover(){this._glyphWidget?.hide()}_getOrCreateGlyphWidget(){if(!this._glyphWidget)this._glyphWidget=this._instantiationService.createInstance(Bp,this._editor);return this._glyphWidget}dispose(){super.dispose(),this._unhookListeners(),this._listenersStore.dispose(),this._glyphWidget?.dispose()}};Sh=eR([tR(1,A)],Sh);var Mc=new class u{constructor(){this._implementations=[]}register(n){return this._implementations.push(n),{dispose:()=>{let h=this._implementations.indexOf(n);if(h!==-1)this._implementations.splice(h,1)}}}getImplementations(){return this._implementations}};class Lv{}class kv{}class Ev{}fe(Ro.ID,Ro,2);fe(Sh.ID,Sh,2);O(lv);O(hv);O(uv);O(gv);O(pv);O(mv);O(fv);O(_v);O(bv);O(vv);O(wv);O(Sv);O(Cv);fl.register(Gs);fl.register(Wp);Te.registerCommand(oh,(u)=>{u.get(re).updateValue("editor.hover.showLongLineWarning",!1)});Li((u,n)=>{let h=u.getColor(Cf);if(h)n.addRule(`.monaco-editor .monaco-hover .hover-row:not(:first-child):not(:empty) { border-top: 1px solid ${h.transparent(0.5)}; }`),n.addRule(`.monaco-editor .monaco-hover hr { border-top: 1px solid ${h.transparent(0.5)}; }`),n.addRule(`.monaco-editor .monaco-hover hr { border-bottom: 0px solid ${h.transparent(0.5)}; }`)});Mc.register(new Lv);Mc.register(new kv);Mc.register(new Ev);class ok{constructor(u,n){this._link=u,this._provider=n}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(u){if(this._link.url)return this._link.url;if(typeof this._provider.resolveLink==="function")return Promise.resolve(this._provider.resolveLink(this._link,u)).then((n)=>{if(this._link=n||this._link,this._link.url)return this.resolve(u);return Promise.reject(Error("missing"))});return Promise.reject(Error("missing"))}}class Ch{static{this.Empty=new Ch([])}constructor(u){this._disposables=new d;let n=[];for(let[h,g]of u){let p=h.links.map((m)=>new ok(m,g));if(n=Ch._union(n,p),oa(h))this._disposables??=new d,this._disposables.add(h)}this.links=n}dispose(){this._disposables?.dispose(),this.links.length=0}static _union(u,n){let h=[],g,p,m,v;for(g=0,m=0,p=u.length,v=n.length;g<p&&m<v;){let S=u[g],C=n[m];if(t.areIntersectingOrTouching(S.range,C.range)){g++;continue}if(t.compareRangesUsingStarts(S.range,C.range)<0)h.push(S),g++;else h.push(C),m++}for(;g<p;g++)h.push(u[g]);for(;m<v;m++)h.push(n[m]);return h}}async function Tv(u,n,h){let g=[],p=u.ordered(n).reverse().map(async(v,S)=>{try{let C=await v.provideLinks(n,h);if(C)g[S]=[C,v]}catch(C){yt(C)}});await Promise.all(p);let m=new Ch(yo(g));if(h.isCancellationRequested)m.dispose(),m=Ch.Empty;return m}Te.registerCommand("_executeLinkProvider",async(u,...n)=>{let[h,g]=n;if(Fe(h instanceof q),typeof g!=="number")g=0;let{linkProvider:p}=u.get(z),m=u.get(Et).getModel(h);if(!m)return[];let v=await Tv(p,m,ye.None);if(!v)return[];for(let C=0;C<Math.min(g,v.links.length);C++)await v.links[C].resolve(ye.None);let S=v.links.slice(0);return v.dispose(),S});var iR=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Vp=function(u,n){return function(h,g){n(h,g,u)}},Hv,yh=class u extends i{static{Hv=this}static{this.ID="editor.linkDetector"}static get(n){return n.getContribution(Hv.ID)}constructor(n,h,g,p,m){super();this.editor=n,this.openerService=h,this.notificationService=g,this.languageFeaturesService=p,this.providers=this.languageFeaturesService.linkProvider,this.debounceInformation=m.for(this.providers,"Links",{min:1000,max:4000}),this.computeLinks=this._register(new Ce(()=>this.computeLinksNow(),1000)),this.computePromise=null,this.activeLinksList=null,this.currentOccurrences={},this.activeLinkDecorationId=null;let v=this._register(new Kr(n));this._register(v.onMouseMoveOrRelevantKeyDown(([S,C])=>{this._onEditorMouseMove(S,C)})),this._register(v.onExecute((S)=>{this.onEditorMouseUp(S)})),this._register(v.onCancel((S)=>{this.cleanUpActiveLinkDecoration()})),this._register(n.onDidChangeConfiguration((S)=>{if(!S.hasChanged(79))return;this.updateDecorations([]),this.stop(),this.computeLinks.schedule(0)})),this._register(n.onDidChangeModelContent((S)=>{if(!this.editor.hasModel())return;this.computeLinks.schedule(this.debounceInformation.get(this.editor.getModel()))})),this._register(n.onDidChangeModel((S)=>{this.currentOccurrences={},this.activeLinkDecorationId=null,this.stop(),this.computeLinks.schedule(0)})),this._register(n.onDidChangeModelLanguage((S)=>{this.stop(),this.computeLinks.schedule(0)})),this._register(this.providers.onDidChange((S)=>{this.stop(),this.computeLinks.schedule(0)})),this.computeLinks.schedule(0)}async computeLinksNow(){if(!this.editor.hasModel()||!this.editor.getOption(79))return;let n=this.editor.getModel();if(n.isTooLargeForSyncing())return;if(!this.providers.has(n))return;if(this.activeLinksList)this.activeLinksList.dispose(),this.activeLinksList=null;this.computePromise=Yt((h)=>Tv(this.providers,n,h));try{let h=new un(!1);if(this.activeLinksList=await this.computePromise,this.debounceInformation.update(n,h.elapsed()),n.isDisposed())return;this.updateDecorations(this.activeLinksList.links)}catch(h){X(h)}finally{this.computePromise=null}}updateDecorations(n){let h=this.editor.getOption(86)==="altKey",g=[],p=Object.keys(this.currentOccurrences);for(let v of p){let S=this.currentOccurrences[v];g.push(S.decorationId)}let m=[];if(n)for(let v of n)m.push(Oc.decoration(v,h));this.editor.changeDecorations((v)=>{let S=v.deltaDecorations(g,m);this.currentOccurrences={},this.activeLinkDecorationId=null;for(let C=0,x=S.length;C<x;C++){let T=new Oc(n[C],S[C]);this.currentOccurrences[T.decorationId]=T}})}_onEditorMouseMove(n,h){let g=this.editor.getOption(86)==="altKey";if(this.isEnabled(n,h)){this.cleanUpActiveLinkDecoration();let p=this.getLinkOccurrence(n.target.position);if(p)this.editor.changeDecorations((m)=>{p.activate(m,g),this.activeLinkDecorationId=p.decorationId})}else this.cleanUpActiveLinkDecoration()}cleanUpActiveLinkDecoration(){let n=this.editor.getOption(86)==="altKey";if(this.activeLinkDecorationId){let h=this.currentOccurrences[this.activeLinkDecorationId];if(h)this.editor.changeDecorations((g)=>{h.deactivate(g,n)});this.activeLinkDecorationId=null}}onEditorMouseUp(n){if(!this.isEnabled(n))return;let h=this.getLinkOccurrence(n.target.position);if(!h)return;this.openLinkOccurrence(h,n.hasSideBySideModifier,!0)}openLinkOccurrence(n,h,g=!1){if(!this.openerService)return;let{link:p}=n;p.resolve(ye.None).then((m)=>{if(typeof m==="string"&&this.editor.hasModel()){let v=this.editor.getModel().uri;if(v.scheme===se.file&&m.startsWith(`${se.file}:`)){let S=q.parse(m);if(S.scheme===se.file){let C=ud(S),x=null;if(C.startsWith("/./")||C.startsWith("\\.\\"))x=`.${C.substr(1)}`;else if(C.startsWith("//./")||C.startsWith("\\\\.\\"))x=`.${C.substr(2)}`;if(x)m=h1(v,x)}}}return this.openerService.open(m,{openToSide:h,fromUserGesture:g,allowContributedOpeners:!0,allowCommands:!0,fromWorkspace:!0})},(m)=>{let v=m instanceof Error?m.message:m;if(v==="invalid")this.notificationService.warn(e(1343,"Failed to open this link because it is not well-formed: {0}",p.url.toString()));else if(v==="missing")this.notificationService.warn(e(1344,"Failed to open this link because its target is missing."));else X(m)})}getLinkOccurrence(n){if(!this.editor.hasModel()||!n)return null;let h=this.editor.getModel().getDecorationsInRange({startLineNumber:n.lineNumber,startColumn:n.column,endLineNumber:n.lineNumber,endColumn:n.column},0,!0);for(let g of h){let p=this.currentOccurrences[g.id];if(p)return p}return null}isEnabled(n,h){return Boolean(n.target.type===6&&(n.hasTriggerModifier||h&&h.keyCodeIsTriggerKey||n.isMiddleClick&&n.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()}};yh=Hv=iR([Vp(1,er),Vp(2,wt),Vp(3,z),Vp(4,uo)],yh);var rk={general:de.register({description:"detected-link",stickiness:1,collapseOnReplaceEdit:!0,inlineClassName:"detected-link"}),active:de.register({description:"detected-link-active",stickiness:1,collapseOnReplaceEdit:!0,inlineClassName:"detected-link-active"})};class Oc{static decoration(u,n){return{range:u.range,options:Oc._getOptions(u,n,!1)}}static _getOptions(u,n,h){let g={...h?rk.active:rk.general};return g.hoverMessage=oR(u,n),g}constructor(u,n){this.link=u,this.decorationId=n}activate(u,n){u.changeDecorationOptions(this.decorationId,Oc._getOptions(this.link,n,!0))}deactivate(u,n){u.changeDecorationOptions(this.decorationId,Oc._getOptions(this.link,n,!1))}}function oR(u,n){let h=u.url&&/^command:/i.test(u.url.toString()),g=u.tooltip?u.tooltip:h?e(1345,"Execute command"):e(1346,"Follow link"),p=n?ve?e(1347,"cmd + click"):e(1348,"ctrl + click"):ve?e(1349,"option + click"):e(1350,"alt + click");if(u.url){let m="";if(/^command:/i.test(u.url.toString())){let S=u.url.toString().match(/^command:([^?#]+)/);if(S){let C=S[1];m=e(1351,"Execute command {0}",C)}}return new Mn("",!0).appendLink(u.url.toString(!0).replace(/ /g,"%20"),g,m).appendMarkdown(` (${p})`)}else return new Mn().appendText(`${g} (${p})`)}class sk extends U{constructor(){super({id:"editor.action.openLink",label:b(1352,"Open Link"),precondition:void 0})}run(u,n){let h=yh.get(n);if(!h)return;if(!n.hasModel())return;let g=n.getSelections();for(let p of g){let m=h.getLinkOccurrence(p.getEndPosition());if(m)h.openLinkOccurrence(m,!1)}}}fe(yh.ID,yh,1);O(sk);var $r={Visible:new M("parameterHintsVisible",!1),MultipleSignatures:new M("parameterHintsMultipleSignatures",!1)};async function Uv(u,n,h,g,p){let m=u.ordered(n);for(let v of m)try{let S=await v.provideSignatureHelp(n,h,p,g);if(S)return S}catch(S){yt(S)}return}Te.registerCommand("_executeSignatureHelpProvider",async(u,...n)=>{let[h,g,p]=n;Fe(q.isUri(h)),Fe(s.isIPosition(g)),Fe(typeof p==="string"||!p);let m=u.get(z),v=await u.get(Dn).createModelReference(h);try{let S=await Uv(m.signatureHelpProvider,v.object.textEditorModel,s.lift(g),{triggerKind:bl.Invoke,isRetrigger:!1,triggerCharacter:p},ye.None);if(!S)return;return setTimeout(()=>S.dispose(),0),S.value}finally{v.dispose()}});var Zs;(function(u){u.Default={type:0};class n{constructor(g,p){this.request=g,this.previouslyActiveHints=p,this.type=2}}u.Pending=n;class h{constructor(g){this.hints=g,this.type=1}}u.Active=h})(Zs||(Zs={}));class zp extends i{static{this.DEFAULT_DELAY=120}constructor(u,n,h=zp.DEFAULT_DELAY){super();this._onChangedHints=this._register(new o),this.onChangedHints=this._onChangedHints.event,this.triggerOnType=!1,this._state=Zs.Default,this._pendingTriggers=[],this._lastSignatureHelpResult=this._register(new ce),this.triggerChars=new bf,this.retriggerChars=new bf,this.triggerId=0,this.editor=u,this.providers=n,this.throttledDelayer=this._register(new qi(h)),this._register(this.editor.onDidBlurEditorWidget(()=>this.cancel())),this._register(this.editor.onDidChangeConfiguration(()=>this.onEditorConfigurationChange())),this._register(this.editor.onDidChangeModel((g)=>this.onModelChanged())),this._register(this.editor.onDidChangeModelLanguage((g)=>this.onModelChanged())),this._register(this.editor.onDidChangeCursorSelection((g)=>this.onCursorChange(g))),this._register(this.editor.onDidChangeModelContent((g)=>this.onModelContentChange())),this._register(this.providers.onDidChange(this.onModelChanged,this)),this._register(this.editor.onDidType((g)=>this.onDidType(g))),this.onEditorConfigurationChange(),this.onModelChanged()}get state(){return this._state}set state(u){if(this._state.type===2)this._state.request.cancel();this._state=u}cancel(u=!1){if(this.state=Zs.Default,this.throttledDelayer.cancel(),!u)this._onChangedHints.fire(void 0)}trigger(u,n){let h=this.editor.getModel();if(!h||!this.providers.has(h))return;let g=++this.triggerId;this._pendingTriggers.push(u),this.throttledDelayer.trigger(()=>this.doTrigger(g),n).catch(X)}next(){if(this.state.type!==1)return;let u=this.state.hints.signatures.length,n=this.state.hints.activeSignature,h=n%u===u-1,g=this.editor.getOption(98).cycle;if((u<2||h)&&!g){this.cancel();return}this.updateActiveSignature(h&&g?0:n+1)}previous(){if(this.state.type!==1)return;let u=this.state.hints.signatures.length,n=this.state.hints.activeSignature,h=n===0,g=this.editor.getOption(98).cycle;if((u<2||h)&&!g){this.cancel();return}this.updateActiveSignature(h&&g?u-1:n-1)}updateActiveSignature(u){if(this.state.type!==1)return;this.state=new Zs.Active({...this.state.hints,activeSignature:u}),this._onChangedHints.fire(this.state.hints)}async doTrigger(u){let n=this.state.type===1||this.state.type===2,h=this.getLastActiveHints();if(this.cancel(!0),this._pendingTriggers.length===0)return!1;let g=this._pendingTriggers.reduce(nR);this._pendingTriggers=[];let p={triggerKind:g.triggerKind,triggerCharacter:g.triggerCharacter,isRetrigger:n,activeSignatureHelp:h};if(!this.editor.hasModel())return!1;let m=this.editor.getModel(),v=this.editor.getPosition();this.state=new Zs.Pending(Yt((S)=>Uv(this.providers,m,v,p,S)),h);try{let S=await this.state.request;if(u!==this.triggerId)return S?.dispose(),!1;if(!S||!S.value.signatures||S.value.signatures.length===0)return S?.dispose(),this._lastSignatureHelpResult.clear(),this.cancel(),!1;else return this.state=new Zs.Active(S.value),this._lastSignatureHelpResult.value=S,this._onChangedHints.fire(this.state.hints),!0}catch(S){if(u===this.triggerId)this.state=Zs.Default;return X(S),!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 u=this.editor.getModel();if(!u)return;for(let n of this.providers.ordered(u)){for(let h of n.signatureHelpTriggerCharacters||[])if(h.length){let g=h.charCodeAt(0);this.triggerChars.add(g),this.retriggerChars.add(g)}for(let h of n.signatureHelpRetriggerCharacters||[])if(h.length)this.retriggerChars.add(h.charCodeAt(0))}}onDidType(u){if(!this.triggerOnType)return;let n=u.length-1,h=u.charCodeAt(n);if(this.triggerChars.has(h)||this.isTriggered&&this.retriggerChars.has(h))this.trigger({triggerKind:bl.TriggerCharacter,triggerCharacter:u.charAt(n)})}onCursorChange(u){if(u.source==="mouse")this.cancel();else if(this.isTriggered)this.trigger({triggerKind:bl.ContentChange})}onModelContentChange(){if(this.isTriggered)this.trigger({triggerKind:bl.ContentChange})}onEditorConfigurationChange(){if(this.triggerOnType=this.editor.getOption(98).enabled,!this.triggerOnType)this.cancel()}dispose(){this.cancel(!0),super.dispose()}}function nR(u,n){switch(n.triggerKind){case bl.Invoke:return n;case bl.ContentChange:return u;case bl.TriggerCharacter:default:return n}}var rR=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},ak=function(u,n){return function(h,g){n(h,g,u)}},$v,Io=w,sR=Ht("parameter-hints-next",_.chevronDown,e(1378,"Icon for show next parameter hint.")),aR=Ht("parameter-hints-previous",_.chevronUp,e(1379,"Icon for show previous parameter hint.")),Kp=class u extends i{static{$v=this}static{this.ID="editor.widget.parameterHintsWidget"}constructor(n,h,g,p){super();this.editor=n,this.model=h,this.markdownRendererService=p,this.renderDisposeables=this._register(new d),this.visible=!1,this.announcedLabel=null,this.allowEditorOverflow=!0,this.keyVisible=$r.Visible.bindTo(g),this.keyMultipleSignatures=$r.MultipleSignatures.bindTo(g)}createParameterHintDOMNodes(){let n=Io(".editor-widget.parameter-hints-widget"),h=k(n,Io(".phwrapper"));h.tabIndex=-1;let g=k(h,Io(".controls")),p=k(g,Io(".button"+J.asCSSSelector(aR))),m=k(g,Io(".overloads")),v=k(g,Io(".button"+J.asCSSSelector(sR)));this._register(c(p,"click",(Z)=>{ke.stop(Z),this.previous()})),this._register(c(v,"click",(Z)=>{ke.stop(Z),this.next()}));let S=Io(".body"),C=new El(S,{alwaysConsumeMouseWheel:!0});this._register(C),h.appendChild(C.getDomNode());let x=k(S,Io(".signature")),T=k(S,Io(".docs"));n.style.userSelect="text",this.domNodes={element:n,signature:x,overloads:m,docs:T,scrollbar:C},this.editor.addContentWidget(this),this.hide(),this._register(this.editor.onDidChangeCursorSelection((Z)=>{if(this.visible)this.editor.layoutContentWidget(this)}));let R=()=>{if(!this.domNodes)return;let Z=this.editor.getOption(59),Y=this.domNodes.element;Y.style.fontSize=`${Z.fontSize}px`,Y.style.lineHeight=`${Z.lineHeight/Z.fontSize}`,Y.style.setProperty("--vscode-parameterHintsWidget-editorFontFamily",Z.fontFamily),Y.style.setProperty("--vscode-parameterHintsWidget-editorFontFamilyDefault",No.fontFamily)};R(),this._register(I.chain(this.editor.onDidChangeConfiguration.bind(this.editor),(Z)=>Z.filter((Y)=>Y.hasChanged(59)))(R)),this._register(this.editor.onDidLayoutChange((Z)=>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(n){if(this.renderDisposeables.clear(),!this.domNodes)return;let h=n.signatures.length>1;this.domNodes.element.classList.toggle("multiple",h),this.keyMultipleSignatures.set(h),this.domNodes.signature.innerText="",this.domNodes.docs.innerText="";let g=n.signatures[n.activeSignature];if(!g)return;let p=k(this.domNodes.signature,Io(".code")),m=g.parameters.length>0,v=g.activeParameter??n.activeParameter;if(!m){let x=k(p,Io("span"));x.textContent=g.label}else this.renderParameters(p,g,v);let S=g.parameters[v];if(S?.documentation){let x=Io("span.documentation");if(typeof S.documentation==="string")x.textContent=S.documentation;else{let T=this.renderMarkdownDocs(S.documentation);x.appendChild(T.element)}k(this.domNodes.docs,Io("p",{},x))}if(g.documentation===void 0);else if(typeof g.documentation==="string")k(this.domNodes.docs,Io("p",{},g.documentation));else{let x=this.renderMarkdownDocs(g.documentation);k(this.domNodes.docs,x.element)}let C=this.hasDocs(g,S);if(this.domNodes.signature.classList.toggle("has-docs",C),this.domNodes.docs.classList.toggle("empty",!C),this.domNodes.overloads.textContent=String(n.activeSignature+1).padStart(n.signatures.length.toString().length,"0")+"/"+n.signatures.length,S){let x="",T=g.parameters[v];if(Array.isArray(T.label))x=g.label.substring(T.label[0],T.label[1]);else x=T.label;if(T.documentation)x+=typeof T.documentation==="string"?`, ${T.documentation}`:`, ${T.documentation.value}`;if(g.documentation)x+=typeof g.documentation==="string"?`, ${g.documentation}`:`, ${g.documentation.value}`;if(this.announcedLabel!==x)zn(e(1380,"{0}, hint",x)),this.announcedLabel=x}this.editor.layoutContentWidget(this),this.domNodes.scrollbar.scanDomNode()}renderMarkdownDocs(n){let h=this.renderDisposeables.add(this.markdownRendererService.render(n,{context:this.editor,asyncRenderCallback:()=>{this.domNodes?.scrollbar.scanDomNode()}}));return h.element.classList.add("markdown-docs"),h}hasDocs(n,h){if(h&&typeof h.documentation==="string"&&ac(h.documentation).length>0)return!0;if(h&&typeof h.documentation==="object"&&ac(h.documentation).value.length>0)return!0;if(n.documentation&&typeof n.documentation==="string"&&ac(n.documentation).length>0)return!0;if(n.documentation&&typeof n.documentation==="object"&&ac(n.documentation.value).length>0)return!0;return!1}renderParameters(n,h,g){let[p,m]=this.getParameterLabelOffsets(h,g),v=document.createElement("span");v.textContent=h.label.substring(0,p);let S=document.createElement("span");S.textContent=h.label.substring(p,m),S.className="parameter active";let C=document.createElement("span");C.textContent=h.label.substring(m),k(n,v,S,C)}getParameterLabelOffsets(n,h){let g=n.parameters[h];if(!g)return[0,0];else if(Array.isArray(g.label))return g.label;else if(!g.label.length)return[0,0];else{let p=new RegExp(`(\\W|^)${Ui(g.label)}(?=\\W|$)`,"g");p.test(n.label);let m=p.lastIndex-g.label.length;return m>=0?[m,p.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 $v.ID}updateMaxHeight(){if(!this.domNodes)return;let h=`${Math.max(this.editor.getLayoutInfo().height/4,250)}px`;this.domNodes.element.style.maxHeight=h;let g=this.domNodes.element.getElementsByClassName("phwrapper");if(g.length)g[0].style.maxHeight=h}};Kp=$v=rR([ak(2,G),ak(3,zo)],Kp);a("editorHoverWidget.highlightForeground",kf,e(1381,"Foreground color of the active item in the parameter hint."));var dR=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},dk=function(u,n){return function(h,g){n(h,g,u)}},Xv,Pc=class u extends i{static{Xv=this}static{this.ID="editor.controller.parameterHints"}static get(n){return n.getContribution(Xv.ID)}constructor(n,h,g){super();this.editor=n,this.model=this._register(new zp(n,g.signatureHelpProvider)),this._register(this.model.onChangedHints((p)=>{if(p)this.widget.value.show(),this.widget.value.render(p);else this.widget.rawValue?.hide()})),this.widget=new ei(()=>this._register(h.createInstance(Kp,this.editor,this.model)))}cancel(){this.model.cancel()}previous(){this.widget.rawValue?.previous()}next(){this.widget.rawValue?.next()}trigger(n){this.model.trigger(n,0)}};Pc=Xv=dR([dk(1,A),dk(2,z)],Pc);class ck extends U{constructor(){super({id:"editor.action.triggerParameterHints",label:b(1377,"Trigger Parameter Hints"),precondition:r.hasSignatureHelpProvider,kbOpts:{kbExpr:r.editorTextFocus,primary:3082,weight:100}})}run(u,n){Pc.get(n)?.trigger({triggerKind:bl.Invoke})}}fe(Pc.ID,Pc,2);O(ck);var ew=175,tw=nn.bindToContribution(Pc.get);K(new tw({id:"closeParameterHints",precondition:$r.Visible,handler:(u)=>u.cancel(),kbOpts:{weight:ew,kbExpr:r.focus,primary:9,secondary:[1033]}}));K(new tw({id:"showPrevParameterHint",precondition:L.and($r.Visible,$r.MultipleSignatures),handler:(u)=>u.previous(),kbOpts:{weight:ew,kbExpr:r.focus,primary:16,secondary:[528],mac:{primary:16,secondary:[528,302]}}}));K(new tw({id:"showNextParameterHint",precondition:L.and($r.Visible,$r.MultipleSignatures),handler:(u)=>u.next(),kbOpts:{weight:ew,kbExpr:r.focus,primary:18,secondary:[530],mac:{primary:18,secondary:[530,300]}}}));var ze={Visible:Rg,HasFocusedSuggestion:new M("suggestWidgetHasFocusedSuggestion",!1,e(1525,"Whether any suggestion is focused")),DetailsVisible:new M("suggestWidgetDetailsVisible",!1,e(1526,"Whether suggestion details are visible")),DetailsFocused:new M("suggestWidgetDetailsFocused",!1,e(1527,"Whether the details pane of the suggest widget has focus")),MultipleSuggestions:new M("suggestWidgetMultipleSuggestions",!1,e(1528,"Whether there are multiple suggestions to pick from")),MakesTextEdit:new M("suggestionMakesTextEdit",!0,e(1529,"Whether inserting the current suggestion yields in a change or has everything already been typed")),AcceptSuggestionsOnEnter:new M("acceptSuggestionOnEnter",!0,e(1530,"Whether suggestions are inserted when pressing Enter")),HasInsertAndReplaceRange:new M("suggestionHasInsertAndReplaceRange",!1,e(1531,"Whether the current suggestion has insert and replace behaviour")),InsertMode:new M("suggestionInsertMode",void 0,{type:"string",description:e(1532,"Whether the default behaviour is to insert or replace")}),CanResolve:new M("suggestionCanResolve",!1,e(1533,"Whether the current suggestion supports to resolve further details"))},Xn=new l("suggestWidgetStatusBar");class lk{constructor(u,n,h,g){if(this.position=u,this.completion=n,this.container=h,this.provider=g,this.isInvalid=!1,this.score=is.Default,this.distance=0,this.textLabel=typeof n.label==="string"?n.label:n.label?.label,this.labelLow=this.textLabel.toLowerCase(),this.isInvalid=!this.textLabel,this.sortTextLow=n.sortText&&n.sortText.toLowerCase(),this.filterTextLow=n.filterText&&n.filterText.toLowerCase(),this.extensionId=n.extensionId,t.isIRange(n.range))this.editStart=new s(n.range.startLineNumber,n.range.startColumn),this.editInsertEnd=new s(n.range.endLineNumber,n.range.endColumn),this.editReplaceEnd=new s(n.range.endLineNumber,n.range.endColumn),this.isInvalid=this.isInvalid||t.spansMultipleLines(n.range)||n.range.startLineNumber!==u.lineNumber;else this.editStart=new s(n.range.insert.startLineNumber,n.range.insert.startColumn),this.editInsertEnd=new s(n.range.insert.endLineNumber,n.range.insert.endColumn),this.editReplaceEnd=new s(n.range.replace.endLineNumber,n.range.replace.endColumn),this.isInvalid=this.isInvalid||t.spansMultipleLines(n.range.insert)||t.spansMultipleLines(n.range.replace)||n.range.insert.startLineNumber!==u.lineNumber||n.range.replace.startLineNumber!==u.lineNumber||n.range.insert.startColumn!==n.range.replace.startColumn;if(typeof g.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(u){if(!this._resolveCache){let n=u.onCancellationRequested(()=>{this._resolveCache=void 0,this._resolveDuration=void 0}),h=new un(!0);this._resolveCache=Promise.resolve(this.provider.resolveCompletionItem(this.completion,u)).then((g)=>{Object.assign(this.completion,g),this._resolveDuration=h.elapsed()},(g)=>{if(pi(g))this._resolveCache=void 0,this._resolveDuration=void 0}).finally(()=>{n.dispose()})}return this._resolveCache}}class _d{static{this.default=new _d}constructor(u=2,n=new Set,h=new Set,g=new Map,p=!0){this.snippetSortOrder=u,this.kindFilter=n,this.providerFilter=h,this.providerItemsToReuse=g,this.showDeprecated=p}}class hk{constructor(u,n,h,g){this.items=u,this.needsClipboard=n,this.durations=h,this.disposable=g}}async function xh(u,n,h,g=_d.default,p={triggerKind:0},m=ye.None){let v=new un;h=h.clone();let S=n.getWordAtPosition(h),C=S?new t(h.lineNumber,S.startColumn,h.lineNumber,S.endColumn):t.fromPositions(h),x={replace:C,insert:C.setEndPosition(h.lineNumber,h.column)},T=[],R=new d,Z=[],Y=!1,Q=(oe,ne,he)=>{let ge=!1;if(!ne)return ge;for(let _e of ne.suggestions)if(!g.kindFilter.has(_e.kind)){if(!g.showDeprecated&&_e?.tags?.includes(1))continue;if(!_e.range)_e.range=x;if(!_e.sortText)_e.sortText=typeof _e.label==="string"?_e.label:_e.label.label;if(!Y&&_e.insertTextRules&&_e.insertTextRules&4)Y=no.guessNeedsClipboard(_e.insertText);T.push(new lk(h,_e,ne,oe)),ge=!0}if(oa(ne))R.add(ne);return Z.push({providerName:oe._debugDisplayName??"unknown_provider",elapsedProvider:ne.duration??-1,elapsedOverall:he.elapsed()}),ge},te=(async()=>{return})();for(let oe of u.orderedGroups(n)){let ne=!1;if(await Promise.all(oe.map(async(he)=>{if(g.providerItemsToReuse.has(he)){let ge=g.providerItemsToReuse.get(he);ge.forEach((_e)=>T.push(_e)),ne=ne||ge.length>0;return}if(g.providerFilter.size>0&&!g.providerFilter.has(he))return;try{let ge=new un,_e=await he.provideCompletionItems(n,h,p,m);ne=Q(he,_e,ge)||ne}catch(ge){yt(ge)}})),ne||m.isCancellationRequested)break}if(await te,m.isCancellationRequested)return R.dispose(),Promise.reject(new Rr);return new hk(T.sort(hR(g.snippetSortOrder)),Y,{entries:Z,elapsed:v.elapsed()},R)}function iw(u,n){if(u.sortTextLow&&n.sortTextLow){if(u.sortTextLow<n.sortTextLow)return-1;else if(u.sortTextLow>n.sortTextLow)return 1}if(u.textLabel<n.textLabel)return-1;else if(u.textLabel>n.textLabel)return 1;return u.completion.kind-n.completion.kind}function cR(u,n){if(u.completion.kind!==n.completion.kind){if(u.completion.kind===28)return-1;else if(n.completion.kind===28)return 1}return iw(u,n)}function lR(u,n){if(u.completion.kind!==n.completion.kind){if(u.completion.kind===28)return 1;else if(n.completion.kind===28)return-1}return iw(u,n)}var Up=new Map;Up.set(0,cR);Up.set(2,lR);Up.set(1,iw);function hR(u){return Up.get(u)}Te.registerCommand("_executeCompletionItemProvider",async(u,...n)=>{let[h,g,p,m]=n;Fe(q.isUri(h)),Fe(s.isIPosition(g)),Fe(typeof p==="string"||!p),Fe(typeof m==="number"||!m);let{completionProvider:v}=u.get(z),S=await u.get(Dn).createModelReference(h);try{let C={incomplete:!1,suggestions:[]},x=[],T=S.object.textEditorModel.validatePosition(g),R=await xh(v,S.object.textEditorModel,T,void 0,{triggerCharacter:p??void 0,triggerKind:p?1:0});for(let Z of R.items){if(x.length<(m??0))x.push(Z.resolve(ye.None));C.incomplete=C.incomplete||Z.container.incomplete,C.suggestions.push(Z.completion)}try{return await Promise.all(x),C}finally{setTimeout(()=>R.disposable.dispose(),100)}}finally{S.dispose()}});function uk(u,n){u.getContribution("editor.contrib.suggestController")?.triggerSuggest(new Set().add(n),void 0,!0)}class Gr{static isAllOff(u){return u.other==="off"&&u.comments==="off"&&u.strings==="off"}static isAllOn(u){return u.other==="on"&&u.comments==="on"&&u.strings==="on"}static valueFor(u,n){switch(n){case 1:return u.comments;case 2:return u.strings;default:return u.other}}}function ow(u,n=rn){if(kM(u,n))return u.charAt(0).toUpperCase()+u.slice(1);return u}var uR=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},gR=function(u,n){return function(h,g){n(h,g,u)}};class qp{constructor(u){this._delegates=u}resolve(u){for(let n of this._delegates){let h=n.resolve(u);if(h!==void 0)return h}return}}class jp{constructor(u,n,h,g){this._model=u,this._selection=n,this._selectionIdx=h,this._overtypingCapturer=g}resolve(u){let{name:n}=u;if(n==="SELECTION"||n==="TM_SELECTED_TEXT"){let h=this._model.getValueInRange(this._selection)||void 0,g=this._selection.startLineNumber!==this._selection.endLineNumber;if(!h&&this._overtypingCapturer){let p=this._overtypingCapturer.getLastOvertypedInfo(this._selectionIdx);if(p)h=p.value,g=p.multiline}if(h&&g&&u.snippet){let p=this._model.getLineContent(this._selection.startLineNumber),m=Rt(p,0,this._selection.startColumn-1),v=m;u.snippet.walk((C)=>{if(C===u)return!1;if(C instanceof hi)v=Rt(Ci(C.value).pop());return!0});let S=Ao(v,m);h=h.replace(/(\r\n|\r|\n)(.*)/g,(C,x,T)=>`${x}${v.substr(S)}${T}`)}return h}else if(n==="TM_CURRENT_LINE")return this._model.getLineContent(this._selection.positionLineNumber);else if(n==="TM_CURRENT_WORD"){let h=this._model.getWordAtPosition({lineNumber:this._selection.positionLineNumber,column:this._selection.positionColumn});return h&&h.word||void 0}else if(n==="TM_LINE_INDEX")return String(this._selection.positionLineNumber-1);else if(n==="TM_LINE_NUMBER")return String(this._selection.positionLineNumber);else if(n==="CURSOR_INDEX")return String(this._selectionIdx);else if(n==="CURSOR_NUMBER")return String(this._selectionIdx+1);return}}class $p{constructor(u,n){this._labelService=u,this._model=n}resolve(u){let{name:n}=u;if(n==="TM_FILENAME")return ml(this._model.uri.fsPath);else if(n==="TM_FILENAME_BASE"){let h=ml(this._model.uri.fsPath),g=h.lastIndexOf(".");if(g<=0)return h;else return h.slice(0,g)}else if(n==="TM_DIRECTORY"){if(Bv(this._model.uri.fsPath)===".")return"";return this._labelService.getUriLabel(ff(this._model.uri))}else if(n==="TM_DIRECTORY_BASE"){if(Bv(this._model.uri.fsPath)===".")return"";return ml(Bv(this._model.uri.fsPath))}else if(n==="TM_FILEPATH")return this._labelService.getUriLabel(this._model.uri);else if(n==="RELATIVE_FILEPATH")return this._labelService.getUriLabel(this._model.uri,{relative:!0,noPrefix:!0});return}}class Gp{constructor(u,n,h,g){this._readClipboardText=u,this._selectionIdx=n,this._selectionCount=h,this._spread=g}resolve(u){if(u.name!=="CLIPBOARD")return;let n=this._readClipboardText();if(!n)return;if(this._spread){let h=n.split(/\r\n|\n|\r/).filter((g)=>!s1(g));if(h.length===this._selectionCount)return h[this._selectionIdx]}return n}}var Ih=class u{constructor(n,h,g){this._model=n,this._selection=h,this._languageConfigurationService=g}resolve(n){let{name:h}=n,g=this._model.getLanguageIdAtPosition(this._selection.selectionStartLineNumber,this._selection.selectionStartColumn),p=this._languageConfigurationService.getLanguageConfiguration(g).comments;if(!p)return;if(h==="LINE_COMMENT")return p.lineCommentToken||void 0;else if(h==="BLOCK_COMMENT_START")return p.blockCommentStartToken||void 0;else if(h==="BLOCK_COMMENT_END")return p.blockCommentEndToken||void 0;return}};Ih=uR([gR(2,ut)],Ih);class Xs{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(u){let{name:n}=u;switch(n){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 Xs.dayNames[this._date.getDay()];case"CURRENT_DAY_NAME_SHORT":return Xs.dayNamesShort[this._date.getDay()];case"CURRENT_MONTH_NAME":return Xs.monthNames[this._date.getMonth()];case"CURRENT_MONTH_NAME_SHORT":return Xs.monthNamesShort[this._date.getMonth()];case"CURRENT_SECONDS_UNIX":return String(Math.floor(this._date.getTime()/1000));case"CURRENT_MILLISECONDS_UNIX":return String(this._date.getTime());case"CURRENT_TIMEZONE_OFFSET":{let h=this._date.getTimezoneOffset(),g=h>0?"-":"+",p=Math.trunc(Math.abs(h/60)),m=p<10?"0"+p:p,v=Math.abs(h)-p*60,S=v<10?"0"+v:v;return g+m+":"+S}case"CURRENT_TIMEZONE_NAME":return this._timezoneName??=Intl.DateTimeFormat().resolvedOptions().timeZone}return}}class Zp{constructor(u){this._workspaceService=u}resolve(u){if(!this._workspaceService)return;let n=r2(this._workspaceService.getWorkspace());if(o2(n))return;if(u.name==="WORKSPACE_NAME")return this._resolveWorkspaceName(n);else if(u.name==="WORKSPACE_FOLDER")return this._resoveWorkspacePath(n);return}_resolveWorkspaceName(u){if(G1(u))return ml(u.uri.path);let n=ml(u.configPath.path);if(n.endsWith(K1))n=n.substr(0,n.length-K1.length-1);return n}_resoveWorkspacePath(u){if(G1(u))return ow(u.uri.fsPath);let n=ml(u.configPath.path),h=u.configPath.fsPath;if(h.endsWith(n))h=h.substr(0,h.length-n.length-1);return h?ow(h):"/"}}class Xp{resolve(u){let{name:n}=u;if(n==="RANDOM")return Math.random().toString().slice(-6);else if(n==="RANDOM_HEX")return Math.random().toString(16).slice(-6);else if(n==="UUID")return Tl();return}}var pR=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},mR=function(u,n){return function(h,g){n(h,g,u)}},tr;class fn{static{this._decor={active:de.register({description:"snippet-placeholder-1",stickiness:0,className:"snippet-placeholder"}),inactive:de.register({description:"snippet-placeholder-2",stickiness:1,className:"snippet-placeholder"}),activeFinal:de.register({description:"snippet-placeholder-3",stickiness:1,className:"finish-snippet-placeholder"}),inactiveFinal:de.register({description:"snippet-placeholder-4",stickiness:1,className:"finish-snippet-placeholder"})}}constructor(u,n,h){this._editor=u,this._snippet=n,this._snippetLineLeadingWhitespace=h,this._offset=-1,this._nestingLevel=1,this._placeholderGroups=xI(n.placeholders,oo.compareByIndex),this._placeholderGroupsIdx=-1}initialize(u){this._offset=u.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 u=this._editor.getModel();this._editor.changeDecorations((n)=>{for(let h of this._snippet.placeholders){let g=this._snippet.offset(h),p=this._snippet.fullLen(h),m=t.fromPositions(u.getPositionAt(this._offset+g),u.getPositionAt(this._offset+g+p)),v=h.isFinalTabstop?fn._decor.inactiveFinal:fn._decor.inactive,S=n.addDecoration(m,v);this._placeholderDecorations.set(h,S)}})}move(u){if(!this._editor.hasModel())return[];this._initDecorations();let n=this._editor.getModel();if(this._placeholderGroupsIdx>=0){let p=[];for(let m of this._placeholderGroups[this._placeholderGroupsIdx])if(m.transform){let v=this._placeholderDecorations.get(m),S=v?n.getDecorationRange(v):null;if(S){let C=n.getValueInRange(S),x=m.transform.resolve(C).split(/\r\n|\r|\n/);for(let T=1;T<x.length;T++)x[T]=n.normalizeIndentation(this._snippetLineLeadingWhitespace+x[T]);p.push(Kt.replace(S,x.join(n.getEOL())))}}if(p.length>0)this._editor.executeEdits("snippet.placeholderTransform",p)}let h=!1;if(u===!0&&this._placeholderGroupsIdx<this._placeholderGroups.length-1)this._placeholderGroupsIdx+=1,h=!0;else if(u===!1&&this._placeholderGroupsIdx>0)this._placeholderGroupsIdx-=1,h=!0;let g=n.changeDecorations((p)=>{let m=new Set,v=[];for(let S of this._placeholderGroups[this._placeholderGroupsIdx]){let C=this._placeholderDecorations.get(S),x=C?n.getDecorationRange(C):null;if(h=h&&this._hasPlaceholderBeenCollapsed(S),!C||!x)continue;v.push(new F(x.startLineNumber,x.startColumn,x.endLineNumber,x.endColumn)),p.changeDecorationOptions(C,S.isFinalTabstop?fn._decor.activeFinal:fn._decor.active),m.add(S);for(let T of this._snippet.enclosingPlaceholders(S)){let R=this._placeholderDecorations.get(T);if(R)p.changeDecorationOptions(R,T.isFinalTabstop?fn._decor.activeFinal:fn._decor.active),m.add(T)}}for(let[S,C]of this._placeholderDecorations)if(!m.has(S))p.changeDecorationOptions(C,S.isFinalTabstop?fn._decor.inactiveFinal:fn._decor.inactive);return v});return!h?g??[]:this.move(u)}_hasPlaceholderBeenCollapsed(u){let n=this._editor.getModel(),h=u;while(h){if(h instanceof oo){let g=this._placeholderDecorations.get(h),p=g?n.getDecorationRange(g):null;if((!p||p.isEmpty())&&h.toString().length>0)return!0}h=h.parent}return!1}get isAtFirstPlaceholder(){return this._placeholderGroupsIdx<=0||this._placeholderGroups.length===0}get isAtLastPlaceholder(){return this._placeholderGroupsIdx===this._placeholderGroups.length-1}get hasPlaceholder(){return this._snippet.placeholders.length>0}get isTrivialSnippet(){if(this._snippet.placeholders.length===0)return!0;if(this._snippet.placeholders.length===1){let[u]=this._snippet.placeholders;if(u.isFinalTabstop){if(this._snippet.rightMostDescendant===u)return!0}}return!1}computePossibleSelections(){let u=new Map;for(let n of this._placeholderGroups){let h;for(let g of n){if(g.isFinalTabstop)break;if(!h)h=[],u.set(g.index,h);let p=this._placeholderDecorations.get(g),m=this._editor.getModel().getDecorationRange(p);if(!m){u.delete(g.index);break}h.push(m)}}return u}get activeChoice(){if(!this._placeholderDecorations)return;let u=this._placeholderGroups[this._placeholderGroupsIdx][0];if(!u?.choice)return;let n=this._placeholderDecorations.get(u);if(!n)return;let h=this._editor.getModel().getDecorationRange(n);if(!h)return;return{range:h,choice:u.choice}}get hasChoice(){let u=!1;return this._snippet.walk((n)=>(u=n instanceof La,!u)),u}get activePlaceholderCount(){return this._placeholderGroupsIdx<0?0:this._placeholderGroups[this._placeholderGroupsIdx].length}merge(u){let n=this._editor.getModel();this._nestingLevel*=10,this._editor.changeDecorations((h)=>{for(let g of this._placeholderGroups[this._placeholderGroupsIdx]){let p=u.shift();console.assert(p._offset!==-1),console.assert(!p._placeholderDecorations);let m=p._snippet.placeholderInfo.last.index;for(let S of p._snippet.placeholderInfo.all)if(S.isFinalTabstop)S.index=g.index+(m+1)/this._nestingLevel;else S.index=g.index+S.index/this._nestingLevel;this._snippet.replace(g,p._snippet.children);let v=this._placeholderDecorations.get(g);h.removeDecoration(v),this._placeholderDecorations.delete(g);for(let S of p._snippet.placeholders){let C=p._snippet.offset(S),x=p._snippet.fullLen(S),T=t.fromPositions(n.getPositionAt(p._offset+C),n.getPositionAt(p._offset+C+x)),R=h.addDecoration(T,fn._decor.inactive);this._placeholderDecorations.set(S,R)}}this._renormalizePlaceholderIndices(),this._placeholderGroups=xI(this._snippet.placeholders,oo.compareByIndex)})}_renormalizePlaceholderIndices(){let u=this._snippet.placeholders,n=new Set;for(let p of u)if(!p.isFinalTabstop)n.add(p.index);let h=[...n].sort((p,m)=>p-m),g=new Map;for(let p=0;p<h.length;p++)g.set(h[p],p+1);for(let p of u)if(!p.isFinalTabstop)p.index=g.get(p.index);this._nestingLevel=1}}var gk={overwriteBefore:0,overwriteAfter:0,adjustWhitespace:!0,clipboardText:void 0,overtypingCapturer:void 0},Ac=tr=class u{static adjustWhitespace(n,h,g,p,m){let v=n.getLineContent(h.lineNumber),S=Rt(v,0,h.column-1),C;return p.walk((x)=>{if(!(x instanceof hi)||x.parent instanceof La)return!0;if(m&&!m.has(x))return!0;let T=x.value.split(/\r\n|\r|\n/);if(g){let Z=p.offset(x);if(Z===0)T[0]=n.normalizeIndentation(T[0]);else{C=C??p.toString();let Y=C.charCodeAt(Z-1);if(Y===10||Y===13)T[0]=n.normalizeIndentation(S+T[0])}for(let Y=1;Y<T.length;Y++)T[Y]=n.normalizeIndentation(S+T[Y])}let R=T.join(n.getEOL());if(R!==x.value)x.parent.replace(x,[new hi(R)]),C=void 0;return!0}),S}static adjustSelection(n,h,g,p){if(g!==0||p!==0){let{positionLineNumber:m,positionColumn:v}=h,S=v-g,C=v+p,x=n.validateRange({startLineNumber:m,startColumn:S,endLineNumber:m,endColumn:C});h=F.createWithDirection(x.startLineNumber,x.startColumn,x.endLineNumber,x.endColumn,h.getDirection())}return h}static createEditsAndSnippetsFromSelections(n,h,g,p,m,v,S,C,x){let T=[],R=[];if(!n.hasModel())return{edits:T,snippets:R};let Z=n.getModel(),Y=n.invokeWithinContext((_e)=>_e.get(ma)),Q=n.invokeWithinContext((_e)=>new $p(_e.get(Cc),Z)),te=()=>S,oe=Z.getValueInRange(tr.adjustSelection(Z,n.getSelection(),g,0)),ne=Z.getValueInRange(tr.adjustSelection(Z,n.getSelection(),0,p)),he=Z.getLineFirstNonWhitespaceColumn(n.getSelection().positionLineNumber),ge=n.getSelections().map((_e,Se)=>({selection:_e,idx:Se})).sort((_e,Se)=>t.compareRangesUsingStarts(_e.selection,Se.selection));for(let{selection:_e,idx:Se}of ge){let ae=tr.adjustSelection(Z,_e,g,0),pe=tr.adjustSelection(Z,_e,0,p);if(oe!==Z.getValueInRange(ae))ae=_e;if(ne!==Z.getValueInRange(pe))pe=_e;let Me=_e.setStartPosition(ae.startLineNumber,ae.startColumn).setEndPosition(pe.endLineNumber,pe.endColumn),Ae=new no().parse(h,!0,m),We=Me.getStartPosition(),Ie=tr.adjustWhitespace(Z,We,v||Se>0&&he!==Z.getLineFirstNonWhitespaceColumn(_e.positionLineNumber),Ae);Ae.resolveVariables(new qp([Q,new Gp(te,Se,ge.length,n.getOption(88)==="spread"),new jp(Z,_e,Se,C),new Ih(Z,_e,x),new Xs,new Zp(Y),new Xp])),T[Se]=Kt.replace(Me,Ae.toString()),T[Se].identifier={major:Se,minor:0},T[Se]._isTracked=!0,R[Se]=new fn(n,Ae,Ie)}return{edits:T,snippets:R}}static createEditsAndSnippetsFromEdits(n,h,g,p,m,v,S){if(!n.hasModel()||h.length===0)return{edits:[],snippets:[]};let C=[],x=n.getModel(),T=new no,R=new Pd,Z=n.invokeWithinContext((_e)=>new $p(_e.get(Cc),x)),Y=new Xs,Q=new Zp(n.invokeWithinContext((_e)=>_e.get(ma))),te=new Xp,oe=()=>m,ne=n.getOption(88)==="spread",he=h.map((_e,Se)=>({edit:_e,idx:Se})).sort((_e,Se)=>t.compareRangesUsingStarts(_e.edit.range,Se.edit.range)),ge=0;for(let _e=0;_e<he.length;_e++){let{edit:{range:Se,template:ae,keepWhitespace:pe},idx:Me}=he[_e];if(_e>0){let $e=he[_e-1].edit.range,Ot=t.fromPositions($e.getEndPosition(),Se.getStartPosition()),it=new hi(x.getValueInRange(Ot));R.appendChild(it),ge+=it.value.length}let Ae=new Set;R.walk(($e)=>{if($e instanceof ls)Ae.add($e);return!0});let We=T.parseFragment(ae,R);tr.adjustWhitespace(x,Se.getStartPosition(),pe!==void 0?!pe:p,R,new Set(We));let Ie=F.fromRange(Se,0),Ve=new qp([Z,new Gp(oe,Me,he.length,ne),new jp(x,Ie,Me,v),new Ih(x,Ie,S),Y,Q,te]);R.walk(($e)=>{if($e instanceof ls&&!Ae.has($e))$e.resolve(Ve);return!0});let tt=R.toString(),qe=tt.slice(ge);ge=tt.length;let rt=Kt.replace(Se,qe);rt.identifier={major:_e,minor:0},rt._isTracked=!0,C.push(rt)}return T.ensureFinalTabstop(R,g,!0),{edits:C,snippets:[new fn(n,R,"")]}}constructor(n,h,g=gk,p){this._editor=n,this._template=h,this._options=g,this._languageConfigurationService=p,this._templateMerges=[],this._snippets=[]}dispose(){He(this._snippets)}_logInfo(){return`template="${this._template}", merged_templates="${this._templateMerges.join(" -> ")}"`}insert(n){if(!this._editor.hasModel())return;let{edits:h,snippets:g}=typeof this._template==="string"?tr.createEditsAndSnippetsFromSelections(this._editor,this._template,this._options.overwriteBefore,this._options.overwriteAfter,!1,this._options.adjustWhitespace,this._options.clipboardText,this._options.overtypingCapturer,this._languageConfigurationService):tr.createEditsAndSnippetsFromEdits(this._editor,this._template,!1,this._options.adjustWhitespace,this._options.clipboardText,this._options.overtypingCapturer,this._languageConfigurationService);this._snippets=g,this._editor.executeEdits(n??Jn.snippet(),h,(p)=>{let m=p.filter((v)=>!!v.identifier);for(let v=0;v<g.length;v++)g[v].initialize(m[v].textChange);if(this._snippets[0].hasPlaceholder)return this._move(!0);else return m.map((v)=>F.fromPositions(v.range.getEndPosition()))}),this._editor.revealRange(this._editor.getSelections()[0])}merge(n,h=gk){if(!this._editor.hasModel())return;this._templateMerges.push([this._snippets[0]._nestingLevel,this._snippets[0]._placeholderGroupsIdx,n]);let{edits:g,snippets:p}=tr.createEditsAndSnippetsFromSelections(this._editor,n,h.overwriteBefore,h.overwriteAfter,!0,h.adjustWhitespace,h.clipboardText,h.overtypingCapturer,this._languageConfigurationService);this._editor.executeEdits("snippet",g,(m)=>{let v=m.filter((x)=>!!x.identifier);for(let x=0;x<p.length;x++)p[x].initialize(v[x].textChange);let S=p[0].isTrivialSnippet,C=p.length===this._snippets.reduce((x,T)=>x+T.activePlaceholderCount,0);if(!S&&C){for(let x of this._snippets)x.merge(p);console.assert(p.length===0)}if(this._snippets[0].hasPlaceholder&&!S&&C)return this._move(void 0);else return v.map((x)=>F.fromPositions(x.range.getEndPosition()))})}next(){let n=this._move(!0);if(n.length>0)this._editor.setSelections(n),this._editor.revealPositionInCenterIfOutsideViewport(n[0].getPosition())}prev(){let n=this._move(!1);if(n.length>0)this._editor.setSelections(n),this._editor.revealPositionInCenterIfOutsideViewport(n[0].getPosition())}_move(n){let h=[];for(let g of this._snippets){let p=g.move(n);h.push(...p)}return h}get isAtFirstPlaceholder(){return this._snippets[0].isAtFirstPlaceholder}get isAtLastPlaceholder(){return this._snippets[0].isAtLastPlaceholder}get hasPlaceholder(){return this._snippets[0].hasPlaceholder}get hasChoice(){return this._snippets[0].hasChoice}get activeChoice(){return this._snippets[0].activeChoice}isSelectionWithinPlaceholders(){if(!this.hasPlaceholder)return!1;let n=this._editor.getSelections();if(n.length<this._snippets.length)return!1;let h=new Map;for(let g of this._snippets){let p=g.computePossibleSelections();if(h.size===0)for(let[m,v]of p){v.sort(t.compareRangesUsingStarts);for(let S of n)if(v[0].containsRange(S)){h.set(m,[]);break}}if(h.size===0)return!1;h.forEach((m,v)=>{m.push(...p.get(v))})}n.sort(t.compareRangesUsingStarts);for(let[g,p]of h){if(p.length!==n.length){h.delete(g);continue}p.sort(t.compareRangesUsingStarts);for(let m=0;m<p.length;m++)if(!p[m].containsRange(n[m])){h.delete(g);continue}}return h.size>0}};Ac=tr=pR([mR(3,ut)],Ac);var fR=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Yp=function(u,n){return function(h,g){n(h,g,u)}},Sd,pk={overwriteBefore:0,overwriteAfter:0,undoStopBefore:!0,undoStopAfter:!0,adjustWhitespace:!0,clipboardText:void 0,overtypingCapturer:void 0},Bt=class u{static{Sd=this}static{this.ID="snippetController2"}static get(n){return n.getContribution(Sd.ID)}static{this.InSnippetMode=new M("inSnippetMode",!1,e(1471,"Whether the editor in current in snippet mode"))}static{this.HasNextTabstop=new M("hasNextTabstop",!1,e(1472,"Whether there is a next tab stop when in snippet mode"))}static{this.HasPrevTabstop=new M("hasPrevTabstop",!1,e(1473,"Whether there is a previous tab stop when in snippet mode"))}static{this.InSnippetChoice=new M("inSnippetChoice",!1,e(1474,"Whether the current snippet tab stop is a choice"))}constructor(n,h,g,p,m){this._editor=n,this._logService=h,this._languageFeaturesService=g,this._languageConfigurationService=m,this._inSnippetObservable=j(this,!1),this._snippetListener=new d,this._modelVersionId=-1,this._inSnippet=Sd.InSnippetMode.bindTo(p),this._hasNextTabstop=Sd.HasNextTabstop.bindTo(p),this._hasPrevTabstop=Sd.HasPrevTabstop.bindTo(p),this._inSnippetChoice=Sd.InSnippetChoice.bindTo(p)}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(n,h){try{this._doInsert(n,typeof h>"u"?pk:{...pk,...h})}catch(g){this.cancel(),this._logService.error(g),this._logService.error("snippet_error"),this._logService.error("insert_template=",n),this._logService.error("existing_template=",this._session?this._session._logInfo():"<no_session>")}}_doInsert(n,h){if(!this._editor.hasModel())return;if(this._snippetListener.clear(),h.undoStopBefore)this._editor.getModel().pushStackElement();if(this._session&&typeof n!=="string")this.cancel();if(!this._session)this._modelVersionId=this._editor.getModel().getAlternativeVersionId(),this._session=new Ac(this._editor,n,h,this._languageConfigurationService),this._session.insert(h.reason);else Fe(typeof n==="string"),this._session.merge(n,h);if(h.undoStopAfter)this._editor.getModel().pushStackElement();if(this._session?.hasChoice){let g={_debugDisplayName:"snippetChoiceCompletions",provideCompletionItems:(x,T)=>{if(!this._session||x!==this._editor.getModel()||!s.equals(this._editor.getPosition(),T))return;let{activeChoice:R}=this._session;if(!R||R.choice.options.length===0)return;let Z=x.getValueInRange(R.range),Y=Boolean(R.choice.options.find((te)=>te.value===Z)),Q=[];for(let te=0;te<R.choice.options.length;te++){let oe=R.choice.options[te];Q.push({kind:13,label:oe.value,insertText:oe.value,sortText:"a".repeat(te+1),range:R.range,filterText:Y?`${Z}_${oe.value}`:void 0,command:{id:"jumpToNextSnippetPlaceholder",title:e(1475,"Go to next placeholder...")}})}return{suggestions:Q}}},p=this._editor.getModel(),m,v=!1,S=()=>{m?.dispose(),v=!1},C=()=>{if(!v)m=this._languageFeaturesService.completionProvider.register({language:p.getLanguageId(),pattern:p.uri.fsPath,scheme:p.uri.scheme,exclusive:!0},g),this._snippetListener.add(m),v=!0};this._choiceCompletions={provider:g,enable:C,disable:S}}this._updateState(),this._snippetListener.add(this._editor.onDidChangeModelContent((g)=>g.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:n}=this._session;if(!n||!this._choiceCompletions){this._choiceCompletions?.disable(),this._currentChoice=void 0,this._inSnippetChoice.reset();return}if(this._inSnippetChoice.set(!0),this._currentChoice!==n.choice)this._currentChoice=n.choice,this._choiceCompletions.enable(),queueMicrotask(()=>{uk(this._editor,this._choiceCompletions.provider)})}finish(){while(this._inSnippet.get())this.next()}cancel(n=!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,n)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}};Bt=Sd=fR([Yp(1,Ze),Yp(2,z),Yp(3,G),Yp(4,ut)],Bt);fe(Bt.ID,Bt,4);var Jp=nn.bindToContribution(Bt.get);K(new Jp({id:"jumpToNextSnippetPlaceholder",precondition:L.and(Bt.InSnippetMode,Bt.HasNextTabstop),handler:(u)=>u.next(),kbOpts:{weight:130,kbExpr:r.textInputFocus,primary:2}}));K(new Jp({id:"jumpToPrevSnippetPlaceholder",precondition:L.and(Bt.InSnippetMode,Bt.HasPrevTabstop),handler:(u)=>u.prev(),kbOpts:{weight:130,kbExpr:r.textInputFocus,primary:1026}}));Nn.registerKeybindingRule({id:"jumpToPrevSnippetPlaceholder",weight:191,when:L.and(Bt.InSnippetMode,Bt.HasPrevTabstop,Bt.InSnippetChoice,r.textInputFocus),primary:1026});K(new Jp({id:"leaveSnippet",precondition:Bt.InSnippetMode,handler:(u)=>u.cancel(!0),kbOpts:{weight:130,kbExpr:r.textInputFocus,primary:9,secondary:[1033]}}));K(new Jp({id:"acceptSnippet",precondition:Bt.InSnippetMode,handler:(u)=>u.finish()}));class Qp{constructor(u,n){this.leadingLineContent=u,this.characterCountDelta=n}}class Sr{constructor(u,n,h,g,p,m,v=cy.default,S=void 0){if(this.clipboardText=S,this._snippetCompareFn=Sr._compareCompletionItems,this._items=u,this._column=n,this._wordDistance=g,this._options=p,this._refilterKind=1,this._lineContext=h,this._fuzzyScoreOptions=v,m==="top")this._snippetCompareFn=Sr._compareCompletionItemsSnippetsUp;else if(m==="bottom")this._snippetCompareFn=Sr._compareCompletionItemsSnippetsDown}get lineContext(){return this._lineContext}set lineContext(u){if(this._lineContext.leadingLineContent!==u.leadingLineContent||this._lineContext.characterCountDelta!==u.characterCountDelta)this._refilterKind=this._lineContext.characterCountDelta<u.characterCountDelta&&this._filteredItems?2:1,this._lineContext=u}get items(){return this._ensureCachedState(),this._filteredItems}getItemsByProvider(){return this._ensureCachedState(),this._itemsByProvider}getIncompleteProvider(){this._ensureCachedState();let u=new Set;for(let[n,h]of this.getItemsByProvider())if(h.length>0&&h[0].container.incomplete)u.add(n);return u}get stats(){return this._ensureCachedState(),this._stats}_ensureCachedState(){if(this._refilterKind!==0)this._createCachedState()}_createCachedState(){this._itemsByProvider=new Map;let u=[],{leadingLineContent:n,characterCountDelta:h}=this._lineContext,g="",p="",m=this._refilterKind===1?this._items:this._filteredItems,v=[],S=!this._options.filterGraceful||m.length>2000?yd:QM;for(let C=0;C<m.length;C++){let x=m[C];if(x.isInvalid)continue;let T=this._itemsByProvider.get(x.provider);if(T)T.push(x);else this._itemsByProvider.set(x.provider,[x]);let R=x.position.column-x.editStart.column,Z=R+h-(x.position.column-this._column);if(g.length!==Z)g=Z===0?"":n.slice(-Z),p=g.toLowerCase();if(x.word=g,Z===0)x.score=is.Default;else{let Y=0;while(Y<R){let Q=g.charCodeAt(Y);if(Q===32||Q===9)Y+=1;else break}if(Y>=Z)x.score=is.Default;else if(typeof x.completion.filterText==="string"){let Q=S(g,p,Y,x.completion.filterText,x.filterTextLow,0,this._fuzzyScoreOptions);if(!Q)continue;if(a0(x.completion.filterText,x.textLabel)===0)x.score=Q;else x.score=XM(g,p,Y,x.textLabel,x.labelLow,0),x.score[0]=Q[0]}else{let Q=S(g,p,Y,x.textLabel,x.labelLow,0,this._fuzzyScoreOptions);if(!Q)continue;x.score=Q}}x.idx=C,x.distance=this._wordDistance.distance(x.position,x.completion),v.push(x),u.push(x.textLabel.length)}this._filteredItems=v.sort(this._snippetCompareFn),this._refilterKind=0,this._stats={pLabelLen:u.length?e1(u.length-0.85,u,(C,x)=>C-x):0}}static _compareCompletionItems(u,n){if(u.score[0]>n.score[0])return-1;else if(u.score[0]<n.score[0])return 1;else if(u.distance<n.distance)return-1;else if(u.distance>n.distance)return 1;else if(u.idx<n.idx)return-1;else if(u.idx>n.idx)return 1;else return 0}static _compareCompletionItemsSnippetsDown(u,n){if(u.completion.kind!==n.completion.kind){if(u.completion.kind===28)return 1;else if(n.completion.kind===28)return-1}return Sr._compareCompletionItems(u,n)}static _compareCompletionItemsSnippetsUp(u,n){if(u.completion.kind!==n.completion.kind){if(u.completion.kind===28)return-1;else if(n.completion.kind===28)return 1}return Sr._compareCompletionItems(u,n)}}var _R=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},mk=function(u,n){return function(h,g){n(h,g,u)}},Lh;class em{constructor(u){this.name=u}select(u,n,h){if(h.length===0)return 0;let g=h[0].score[0];for(let p=0;p<h.length;p++){let{score:m,completion:v}=h[p];if(m[0]!==g)break;if(v.preselect)return p}return 0}}class nw extends em{constructor(){super("first")}memorize(u,n,h){}toJSON(){return}fromJSON(){}}class fk extends em{constructor(){super("recentlyUsed");this._cache=new Ji(300,0.66),this._seq=0}memorize(u,n,h){let g=`${u.getLanguageId()}/${h.textLabel}`;this._cache.set(g,{touch:this._seq++,type:h.completion.kind,insertText:h.completion.insertText})}select(u,n,h){if(h.length===0)return 0;let g=u.getLineContent(n.lineNumber).substr(n.column-10,n.column-1);if(/\s$/.test(g))return super.select(u,n,h);let p=h[0].score[0],m=-1,v=-1,S=-1;for(let C=0;C<h.length;C++){if(h[C].score[0]!==p)break;let x=`${u.getLanguageId()}/${h[C].textLabel}`,T=this._cache.peek(x);if(T&&T.touch>S&&T.type===h[C].completion.kind&&T.insertText===h[C].completion.insertText)S=T.touch,v=C;if(h[C].completion.preselect&&m===-1)return m=C}if(v!==-1)return v;else if(m!==-1)return m;else return 0}toJSON(){return this._cache.toJSON()}fromJSON(u){this._cache.clear();let n=0;for(let[h,g]of u)g.touch=n,g.type=typeof g.type==="number"?g.type:Ph.fromString(g.type),this._cache.set(h,g);this._seq=this._cache.size}}class _k extends em{constructor(){super("recentlyUsedByPrefix");this._trie=Df.forStrings(),this._seq=0}memorize(u,n,h){let{word:g}=u.getWordUntilPosition(n),p=`${u.getLanguageId()}/${g}`;this._trie.set(p,{type:h.completion.kind,insertText:h.completion.insertText,touch:this._seq++})}select(u,n,h){let{word:g}=u.getWordUntilPosition(n);if(!g)return super.select(u,n,h);let p=`${u.getLanguageId()}/${g}`,m=this._trie.get(p);if(!m)m=this._trie.findSubstr(p);if(m)for(let v=0;v<h.length;v++){let{kind:S,insertText:C}=h[v].completion;if(S===m.type&&C===m.insertText)return v}return super.select(u,n,h)}toJSON(){let u=[];return this._trie.forEach((n,h)=>u.push([h,n])),u.sort((n,h)=>-(n[1].touch-h[1].touch)).forEach((n,h)=>n[1].touch=h),u.slice(0,200)}fromJSON(u){if(this._trie.clear(),u.length>0){this._seq=u[0][1].touch+1;for(let[n,h]of u)h.type=typeof h.type==="number"?h.type:Ph.fromString(h.type),this._trie.set(n,h)}}}var rw=class u{static{Lh=this}static{this._strategyCtors=new Map([["recentlyUsedByPrefix",_k],["recentlyUsed",fk],["first",nw]])}static{this._storagePrefix="suggest/memories"}constructor(n,h){this._storageService=n,this._configService=h,this._disposables=new d,this._persistSoon=new Ce(()=>this._saveState(),500),this._disposables.add(n.onWillSaveState((g)=>{if(g.reason===_c.SHUTDOWN)this._saveState()}))}dispose(){this._disposables.dispose(),this._persistSoon.dispose()}memorize(n,h,g){this._withStrategy(n,h).memorize(n,h,g),this._persistSoon.schedule()}select(n,h,g){return this._withStrategy(n,h).select(n,h,g)}_withStrategy(n,h){let g=this._configService.getValue("editor.suggestSelection",{overrideIdentifier:n.getLanguageIdAtPosition(h.lineNumber,h.column),resource:n.uri});if(this._strategy?.name!==g){this._saveState();let p=Lh._strategyCtors.get(g)||nw;this._strategy=new p;try{let v=this._configService.getValue("editor.suggest.shareSuggestSelections")?0:1,S=this._storageService.get(`${Lh._storagePrefix}/${g}`,v);if(S)this._strategy.fromJSON(JSON.parse(S))}catch(m){}}return this._strategy}_saveState(){if(this._strategy){let h=this._configService.getValue("editor.suggest.shareSuggestSelections")?0:1,g=JSON.stringify(this._strategy);this._storageService.store(`${Lh._storagePrefix}/${this._strategy.name}`,g,h,1)}}};rw=Lh=_R([mk(0,Pn),mk(1,re)],rw);var Fc=ie("ISuggestMemories");xe(Fc,rw,1);var bk;function tm(u){return bk?.(u)??null}function vk(u){bk=u}class pt{static{this.inlineSuggestionVisible=new M("inlineSuggestionVisible",!1,e(1249,"Whether an inline suggestion is visible"))}static{this.inlineSuggestionAlternativeActionVisible=new M("inlineSuggestionAlternativeActionVisible",!1,e(1250,"Whether an alternative action for the inline suggestion is visible."))}static{this.inlineSuggestionHasIndentation=new M("inlineSuggestionHasIndentation",!1,e(1251,"Whether the inline suggestion starts with whitespace"))}static{this.inlineSuggestionHasIndentationLessThanTabSize=new M("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 M("inlineSuggestionSuppressSuggestions",void 0,e(1253,"Whether suggestions should be suppressed for the current suggestion"))}static{this.cursorBeforeGhostText=new M("cursorBeforeGhostText",!1,e(1254,"Whether the cursor is at ghost text"))}static{this.cursorInIndentation=new M("cursorInIndentation",!1,e(1255,"Whether the cursor is in indentation"))}static{this.hasSelection=new M("editor.hasSelection",!1,e(1256,"Whether the editor has a selection"))}static{this.cursorAtInlineEdit=new M("cursorAtInlineEdit",!1,e(1257,"Whether the cursor is at an inline edit"))}static{this.inlineEditVisible=new M("inlineEditIsVisible",!1,e(1258,"Whether an inline edit is visible"))}static{this.tabShouldJumpToInlineEdit=new M("tabShouldJumpToInlineEdit",!1,e(1259,"Whether tab should jump to an inline edit."))}static{this.tabShouldAcceptInlineEdit=new M("tabShouldAcceptInlineEdit",!1,e(1260,"Whether tab should accept the inline edit."))}static{this.inInlineEditsPreviewEditor=new M("inInlineEditsPreviewEditor",!0,e(1261,"Whether the current code editor is showing an inline edits preview"))}}class _n{static{this.None=new class extends _n{distance(){return 0}}}static async create(u,n){if(!n.getOption(134).localityBonus)return _n.None;if(!n.hasModel())return _n.None;let h=n.getModel(),g=n.getPosition();if(!u.canComputeWordRanges(h.uri))return _n.None;let[p]=await new vo().provideSelectionRanges(h,[g]);if(p.length===0)return _n.None;let m=await u.computeWordRanges(h.uri,p[0].range);if(!m)return _n.None;let v=h.getWordUntilPosition(g);return delete m[v.word],new class extends _n{distance(S,C){if(!g.equals(n.getPosition()))return 0;if(C.kind===17)return 2097152;let x=typeof C.label==="string"?C.label:C.label.label,T=m[x];if(t1(T))return 2097152;let R=Zm(T,t.fromPositions(S),t.compareRangesUsingStarts),Z=R>=0?T[R]:T[Math.max(0,~R-1)],Y=p.length;for(let Q of p){if(!t.containsRange(Q.range,Z))break;Y-=1}return Y}}}}var bR=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Ys=function(u,n){return function(h,g){n(h,g,u)}},sw;class Js{static shouldAutoTrigger(u){if(!u.hasModel())return!1;let n=u.getModel(),h=u.getPosition();n.tokenization.tokenizeIfCheap(h.lineNumber);let g=n.getWordAtPosition(h);if(!g)return!1;if(g.endColumn!==h.column&&g.startColumn+1!==h.column)return!1;if(!isNaN(Number(g.word)))return!1;return!0}constructor(u,n,h){this.leadingLineContent=u.getLineContent(n.lineNumber).substr(0,n.column-1),this.leadingWord=u.getWordUntilPosition(n),this.lineNumber=n.lineNumber,this.column=n.column,this.triggerOptions=h}}function vR(u,n,h){if(!Boolean(n.getContextKeyValue(pt.inlineSuggestionVisible.key)))return!0;let g=n.getContextKeyValue(pt.suppressSuggestions.key);if(g!==void 0)return!g;return!u.getOption(71).suppressSuggestions}function wR(u,n,h){if(!Boolean(n.getContextKeyValue("inlineSuggestionVisible")))return!0;let g=n.getContextKeyValue(pt.suppressSuggestions.key);if(g!==void 0)return!g;return!u.getOption(71).suppressSuggestions}var Hc=sw=class u{constructor(n,h,g,p,m,v,S,C,x){this._editor=n,this._editorWorkerService=h,this._clipboardService=g,this._telemetryService=p,this._logService=m,this._contextKeyService=v,this._configurationService=S,this._languageFeaturesService=C,this._envService=x,this._toDispose=new d,this._triggerCharacterListener=new d,this._triggerQuickSuggest=new ai,this._triggerState=void 0,this._completionDisposables=new d,this._onDidCancel=new o,this._onDidTrigger=new o,this._onDidSuggest=new o,this.onDidCancel=this._onDidCancel.event,this.onDidTrigger=this._onDidTrigger.event,this.onDidSuggest=this._onDidSuggest.event,this._currentSelection=this._editor.getSelection()||new F(1,1,1,1),this._toDispose.add(this._editor.onDidChangeModel(()=>{this._updateTriggerCharacters(),this.cancel()})),this._toDispose.add(this._editor.onDidChangeModelLanguage(()=>{this._updateTriggerCharacters(),this.cancel()})),this._toDispose.add(this._editor.onDidChangeConfiguration(()=>{this._updateTriggerCharacters()})),this._toDispose.add(this._languageFeaturesService.completionProvider.onDidChange(()=>{this._updateTriggerCharacters(),this._updateActiveSuggestSession()}));let T=!1;this._toDispose.add(this._editor.onDidCompositionStart(()=>{T=!0})),this._toDispose.add(this._editor.onDidCompositionEnd(()=>{T=!1,this._onCompositionEnd()})),this._toDispose.add(this._editor.onDidChangeCursorSelection((R)=>{if(!T)this._onCursorChange(R)})),this._toDispose.add(this._editor.onDidChangeModelContent(()=>{if(!T&&this._triggerState!==void 0)this._refilterCompletionItems()})),this._updateTriggerCharacters()}dispose(){He(this._triggerCharacterListener),He([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 n=new Map;for(let g of this._languageFeaturesService.completionProvider.all(this._editor.getModel()))for(let p of g.triggerCharacters||[]){let m=n.get(p);if(!m)m=new Set,n.set(p,m);m.add(g)}let h=(g)=>{if(!wR(this._editor,this._contextKeyService,this._configurationService))return;if(Js.shouldAutoTrigger(this._editor))return;if(!g){let v=this._editor.getPosition();g=this._editor.getModel().getLineContent(v.lineNumber).substr(0,v.column-1)}let p="";if(dc(g.charCodeAt(g.length-1))){if(In(g.charCodeAt(g.length-2)))p=g.substr(g.length-2)}else p=g.charAt(g.length-1);let m=n.get(p);if(m){let v=new Map;if(this._completionModel){for(let[S,C]of this._completionModel.getItemsByProvider())if(!m.has(S))v.set(S,C)}this.trigger({auto:!0,triggerKind:1,triggerCharacter:p,retrigger:Boolean(this._completionModel),clipboardText:this._completionModel?.clipboardText,completionOptions:{providerFilter:m,providerItemsToReuse:v}})}};this._triggerCharacterListener.add(this._editor.onDidType(h)),this._triggerCharacterListener.add(this._editor.onDidCompositionEnd(()=>h()))}get state(){if(!this._triggerState)return 0;else if(!this._triggerState.auto)return 1;else return 2}cancel(n=!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:n})}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(n){if(!this._editor.hasModel())return;let h=this._currentSelection;if(this._currentSelection=this._editor.getSelection(),!n.selection.isEmpty()||n.reason!==0&&n.reason!==3||n.source!=="keyboard"&&n.source!=="deleteLeft"){this.cancel();return}if(this._triggerState===void 0&&n.reason===0){if(h.containsRange(this._currentSelection)||h.getEndPosition().isBeforeOrEqual(this._currentSelection.getPosition()))this._doTriggerQuickSuggest()}else if(this._triggerState!==void 0&&n.reason===3)this._refilterCompletionItems()}_onCompositionEnd(){if(this._triggerState===void 0)this._doTriggerQuickSuggest();else this._refilterCompletionItems()}_doTriggerQuickSuggest(){if(Gr.isAllOff(this._editor.getOption(102)))return;if(this._editor.getOption(134).snippetsPreventQuickSuggestions&&Bt.get(this._editor)?.isInSnippet())return;this.cancel(),this._waitForInlineCompletions?.dispose(),this._waitForInlineCompletions=void 0,this._triggerQuickSuggest.cancelAndSet(()=>{if(this._triggerState!==void 0)return;if(!Js.shouldAutoTrigger(this._editor))return;if(!this._editor.hasModel()||!this._editor.hasWidgetFocus())return;let n=this._editor.getModel(),h=this._editor.getPosition(),g=this._editor.getOption(102);if(Gr.isAllOff(g))return;let p=!1;if(!Gr.isAllOn(g)){n.tokenization.tokenizeIfCheap(h.lineNumber);let m=n.tokenization.getLineTokens(h.lineNumber),v=m.getStandardTokenType(m.findTokenIndexAtOffset(Math.max(h.column-1-1,0))),S=Gr.valueFor(g,v);if(S==="off"||S==="inline")return;if(S==="offWhenInlineCompletions")p=this._languageFeaturesService.inlineCompletionsProvider.has(n)&&this._editor.getOption(71).enabled}if(!vR(this._editor,this._contextKeyService,this._configurationService))return;if(!this._languageFeaturesService.completionProvider.has(n))return;if(p)this._waitForInlineCompletionsAndTrigger(n,h);else this.trigger({auto:!0})},this._editor.getOption(103))}_waitForInlineCompletionsAndTrigger(n,h){let g=n.getVersionId(),p=tm(this._editor),m=p?.model.get();if(!p||!m){this.trigger({auto:!0});return}if(m.state.get()?.inlineSuggestion)return;let S=new d;this._waitForInlineCompletions=S;let C=(x)=>{if(S.dispose(),this._waitForInlineCompletions===S)this._waitForInlineCompletions=void 0;if(this._triggerState!==void 0)return;if(!x)return;let T=this._editor.getModel(),R=this._editor.getPosition();if(T===n&&T.getVersionId()===g&&R?.equals(h)&&this._editor.hasWidgetFocus())this.trigger({auto:!0})};fi(()=>{C(!0),m.stop("automatic")},750,S),wM(S,(x)=>{if(p.model.read(x)!==m){x.dispose(),C(!1);return}let R=m.status.read(x),Z=m.state.read(x);if(!Z&&R==="loading")return;x.dispose(),C(!Z)})}_refilterCompletionItems(){Fe(this._editor.hasModel()),Fe(this._triggerState!==void 0);let n=this._editor.getModel(),h=this._editor.getPosition(),g=new Js(n,h,{...this._triggerState,refilter:!0});this._onNewContext(g)}trigger(n){if(!this._editor.hasModel())return;let h=this._editor.getModel(),g=new Js(h,this._editor.getPosition(),n);this.cancel(n.retrigger),this._triggerState=n,this._onDidTrigger.fire({auto:n.auto,shy:n.shy??!1,position:this._editor.getPosition()}),this._context=g;let p={triggerKind:n.triggerKind??0};if(n.triggerCharacter)p={triggerKind:1,triggerCharacter:n.triggerCharacter};this._requestToken=new Ge;let m=this._editor.getOption(128),v=1;switch(m){case"top":v=0;break;case"bottom":v=2;break}let{itemKind:S,showDeprecated:C}=sw.createSuggestFilter(this._editor),x=new _d(v,n.completionOptions?.kindFilter??S,n.completionOptions?.providerFilter,n.completionOptions?.providerItemsToReuse,C),T=_n.create(this._editorWorkerService,this._editor),R=xh(this._languageFeaturesService.completionProvider,h,this._editor.getPosition(),x,p,this._requestToken.token);Promise.all([R,T]).then(async([Z,Y])=>{if(this._requestToken?.dispose(),!this._editor.hasModel()){Z.disposable.dispose();return}let Q=n?.clipboardText;if(!Q&&Z.needsClipboard)Q=await this._clipboardService.readText();if(this._triggerState===void 0){Z.disposable.dispose();return}let te=this._editor.getModel(),oe=new Js(te,this._editor.getPosition(),n),ne={...cy.default,firstMatchCanBeWeak:!this._editor.getOption(134).matchOnWordStartOnly};if(this._completionModel=new Sr(Z.items,this._context.column,{leadingLineContent:oe.leadingLineContent,characterCountDelta:oe.column-this._context.column},Y,this._editor.getOption(134),this._editor.getOption(128),ne,Q),this._completionDisposables.add(Z.disposable),this._onNewContext(oe),this._reportDurationsTelemetry(Z.durations),!this._envService.isBuilt||this._envService.isExtensionDevelopment){for(let he of Z.items)if(he.isInvalid)this._logService.warn(`[suggest] did IGNORE invalid completion item from ${he.provider._debugDisplayName}`,he.completion)}}).catch(X)}_reportDurationsTelemetry(n){if(Math.random()>0.0001)return;setTimeout(()=>{this._telemetryService.publicLog2("suggest.durations.json",{data:JSON.stringify(n)}),this._logService.debug("suggest.durations.json",n)})}static createSuggestFilter(n){let h=new Set;if(n.getOption(128)==="none")h.add(28);let p=n.getOption(134);if(!p.showMethods)h.add(0);if(!p.showFunctions)h.add(1);if(!p.showConstructors)h.add(2);if(!p.showFields)h.add(3);if(!p.showVariables)h.add(4);if(!p.showClasses)h.add(5);if(!p.showStructs)h.add(6);if(!p.showInterfaces)h.add(7);if(!p.showModules)h.add(8);if(!p.showProperties)h.add(9);if(!p.showEvents)h.add(10);if(!p.showOperators)h.add(11);if(!p.showUnits)h.add(12);if(!p.showValues)h.add(13);if(!p.showConstants)h.add(14);if(!p.showEnums)h.add(15);if(!p.showEnumMembers)h.add(16);if(!p.showKeywords)h.add(17);if(!p.showWords)h.add(18);if(!p.showColors)h.add(19);if(!p.showFiles)h.add(20);if(!p.showReferences)h.add(21);if(!p.showColors)h.add(22);if(!p.showFolders)h.add(23);if(!p.showTypeParameters)h.add(24);if(!p.showSnippets)h.add(28);if(!p.showUsers)h.add(25);if(!p.showIssues)h.add(26);return{itemKind:h,showDeprecated:p.showDeprecated}}_onNewContext(n){if(!this._context)return;if(n.lineNumber!==this._context.lineNumber){this.cancel();return}if(Rt(n.leadingLineContent)!==Rt(this._context.leadingLineContent)){this.cancel();return}if(n.column<this._context.column){if(n.leadingWord.word)this.trigger({auto:this._context.triggerOptions.auto,retrigger:!0});else this.cancel();return}if(!this._completionModel)return;if(n.leadingWord.word.length!==0&&n.leadingWord.startColumn>this._context.leadingWord.startColumn){if(Js.shouldAutoTrigger(this._editor)&&this._context){let g=this._completionModel.getItemsByProvider();this.trigger({auto:this._context.triggerOptions.auto,retrigger:!0,clipboardText:this._completionModel.clipboardText,completionOptions:{providerItemsToReuse:g}})}return}if(n.column>this._context.column&&this._completionModel.getIncompleteProvider().size>0&&n.leadingWord.word.length!==0){let h=new Map,g=new Set;for(let[p,m]of this._completionModel.getItemsByProvider())if(m.length>0&&m[0].container.incomplete)g.add(p);else h.set(p,m);this.trigger({auto:this._context.triggerOptions.auto,triggerKind:2,retrigger:!0,clipboardText:this._completionModel.clipboardText,completionOptions:{providerFilter:g,providerItemsToReuse:h}})}else{let h=this._completionModel.lineContext,g=!1;if(this._completionModel.lineContext={leadingLineContent:n.leadingLineContent,characterCountDelta:n.column-this._context.column},this._completionModel.items.length===0){let p=Js.shouldAutoTrigger(this._editor);if(!this._context){this.cancel();return}if(p&&this._context.leadingWord.endColumn<n.leadingWord.startColumn){this.trigger({auto:this._context.triggerOptions.auto,retrigger:!0});return}if(!this._context.triggerOptions.auto){if(this._completionModel.lineContext=h,g=this._completionModel.items.length>0,g&&n.leadingWord.word.length===0){this.cancel();return}}else{this.cancel();return}}this._onDidSuggest.fire({completionModel:this._completionModel,triggerOptions:n.triggerOptions,isFrozen:g})}}};Hc=sw=bR([Ys(1,Pi),Ys(2,bi),Ys(3,Bn),Ys(4,Ze),Ys(5,G),Ys(6,re),Ys(7,z),Ys(8,uy)],Hc);var wk=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},kh=function(u,n){return function(h,g){n(h,g,u)}};class Sk{constructor(u,n,h,g,p,m,v){this.range=u,this.insertText=n,this.filterText=h,this.additionalTextEdits=g,this.command=p,this.gutterMenuLinkAction=m,this.completion=v,this.doNotLog=!0}}var aw=class u extends _I{constructor(n,h,g,p,m,v){super(m.disposable);this.model=n,this.line=h,this.word=g,this.completionModel=p,this._suggestMemoryService=v}canBeReused(n,h,g){return this.model===n&&this.line===h&&this.word.word.length>0&&this.word.startColumn===g.startColumn&&this.word.endColumn<g.endColumn&&this.completionModel.getIncompleteProvider().size===0}get items(){let n=[],{items:h}=this.completionModel,g=this._suggestMemoryService.select(this.model,{lineNumber:this.line,column:this.word.endColumn+this.completionModel.lineContext.characterCountDelta},h),p=De.slice(h,g),m=De.slice(h,0,g),v=5;for(let S of De.concat(p,m)){if(S.score===is.Default)continue;let C=new t(S.editStart.lineNumber,S.editStart.column,S.editInsertEnd.lineNumber,S.editInsertEnd.column+this.completionModel.lineContext.characterCountDelta),x=S.completion.insertTextRules&&S.completion.insertTextRules&4?{snippet:S.completion.insertText}:S.completion.insertText;if(n.push(new Sk(C,x,S.filterTextLow??S.labelLow,S.completion.additionalTextEdits,S.completion.command,S.completion.action,S)),v-->=0)S.resolve(ye.None)}return n}};aw=wk([kh(5,Fc)],aw);var dw=class u extends i{constructor(n,h,g,p){super();this._languageFeatureService=n,this._clipboardService=h,this._suggestMemoryService=g,this._editorService=p,this._store.add(n.inlineCompletionsProvider.register("*",this))}async provideInlineCompletions(n,h,g,p){if(g.selectedSuggestionInfo)return;let m;for(let Y of this._editorService.listCodeEditors())if(Y.getModel()===n){m=Y;break}if(!m)return;let v=m.getOption(102);if(Gr.isAllOff(v))return;n.tokenization.tokenizeIfCheap(h.lineNumber);let S=n.tokenization.getLineTokens(h.lineNumber),C=S.getStandardTokenType(S.findTokenIndexAtOffset(Math.max(h.column-1-1,0)));if(Gr.valueFor(v,C)!=="inline")return;let x=n.getWordAtPosition(h),T;if(!x?.word)T=this._getTriggerCharacterInfo(n,h);if(!x?.word&&!T)return;if(!x)x=n.getWordUntilPosition(h);if(x.endColumn!==h.column)return;let R,Z=n.getValueInRange(new t(h.lineNumber,1,h.lineNumber,h.column));if(!T&&this._lastResult?.canBeReused(n,h.lineNumber,x)){let Y=new Qp(Z,h.column-this._lastResult.word.endColumn);this._lastResult.completionModel.lineContext=Y,this._lastResult.acquire(),R=this._lastResult}else{let Y=await xh(this._languageFeatureService.completionProvider,n,h,new _d(void 0,Hc.createSuggestFilter(m).itemKind,T?.providers),T&&{triggerKind:1,triggerCharacter:T.ch},p),Q;if(Y.needsClipboard)Q=await this._clipboardService.readText();let te=new Sr(Y.items,h.column,new Qp(Z,0),_n.None,m.getOption(134),m.getOption(128),{boostFullMatch:!1,firstMatchCanBeWeak:!1},Q);R=new aw(n,h.lineNumber,x,te,Y,this._suggestMemoryService)}return this._lastResult=R,R}handleItemDidShow(n,h){h.completion.resolve(ye.None)}disposeInlineCompletions(n){n.release()}_getTriggerCharacterInfo(n,h){let g=n.getValueInRange(t.fromPositions({lineNumber:h.lineNumber,column:h.column-1},h)),p=new Set;for(let m of this._languageFeatureService.completionProvider.all(n))if(m.triggerCharacters?.includes(g))p.add(m);if(p.size===0)return;return{providers:p,ch:g}}};dw=wk([kh(0,z),kh(1,bi),kh(2,Fc),kh(3,Ee)],dw);Il(dw);var SR=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},CR=function(u,n){return function(h,g){n(h,g,u)}};function yk(u){if(u instanceof cw)return u._instance;return u}class cw{constructor(u){this.instantiationService=u}init(...u){}}function xk(u){return u.get()}var Ck=class u extends cw{constructor(n,h){super(h);this.init(n)}};Ck=SR([CR(1,A)],Ck);class Cd{validateOrThrow(u){let n=this.validate(u);if(n.error)throw Error(n.error.message);return n.content}}class Eh extends Cd{constructor(u){super();this.type=u}validate(u){if(typeof u!==this.type)return{content:void 0,error:{message:`Expected ${this.type}, but got ${typeof u}`}};return{content:u,error:void 0}}getJSONSchema(){return{type:this.type}}}var yR=new Eh("string");function Ik(){return yR}new Eh("number");var xR=new Eh("boolean");function lw(){return xR}new Eh("object");class Lk extends Cd{validate(u){return{content:u,error:void 0}}getJSONSchema(){return{}}}function kk(){return new Lk}class hw extends Cd{validate(u){if(u!==void 0)return{content:void 0,error:{message:`Expected undefined, but got ${typeof u}`}};return{content:void 0,error:void 0}}getJSONSchema(){return{}}}function Ek(){return new hw}class im{constructor(u){this.validator=u}}function Th(u){return new im(u)}class Dk extends Cd{constructor(u){super();this.properties=u}validate(u){if(typeof u!=="object"||u===null)return{content:void 0,error:{message:"Expected object"}};let n={};for(let h in this.properties){let g=this.properties[h],p=u[h],m=g instanceof im,v=m?g.validator:g;if(m&&p===void 0)continue;let{content:S,error:C}=v.validate(p);if(C)return{content:void 0,error:{message:`Error in property '${h}': ${C.message}`}};n[h]=S}return{content:n,error:void 0}}getJSONSchema(){let u=[],n={};for(let[g,p]of Object.entries(this.properties)){let m=p instanceof im,v=m?p.validator:p;if(n[g]=v.getJSONSchema(),!m)u.push(g)}return{type:"object",properties:n,...u.length>0?{required:u}:{}}}}function Tk(u){return new Dk(u)}class Rk extends Cd{constructor(u){super();this.validators=u}validate(u){let n;for(let h of this.validators){let{content:g,error:p}=h.validate(u);if(!p)return{content:g,error:void 0};n=p}return{content:void 0,error:n}}getJSONSchema(){return{oneOf:aM(this.validators,(u)=>{if(u instanceof hw)return;return u.getJSONSchema()})}}}function Nk(...u){return new Rk(u)}class Mk extends Cd{constructor(u,n){super();this._ref=u,this._validator=n}validate(u){return this._validator.validate(u)}getJSONSchema(){return{$ref:this._ref}}}function Ok(u,n){return new Mk(u,n)}var IR=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Pk=function(u,n){return function(h,g){n(h,g,u)}};function Ak(u){return u.sourceId+" @@ "+JSON.stringify({...u,modelUri:u.modelUri?.toString(),sourceId:void 0})}var Wc=class u extends i{static cast(){return this}constructor(n,h,g){super();this._key=n,this._contextKeyService=h,this._dataChannelService=g,this._isEnabledContextKeyValue=LR("structuredLogger.enabled:"+this._key,this._contextKeyService).recomputeInitiallyAndOnChange(this._store),this.isEnabled=this._isEnabledContextKeyValue.map((p)=>p!==void 0)}log(n){if(!this._isEnabledContextKeyValue.get())return!1;return this._dataChannelService.getDataChannel("structuredLogger:"+this._key).sendData(n),!0}};Wc=IR([Pk(1,G),Pk(2,gy)],Wc);function LR(u,n){return Pe(n.onDidChangeContext,()=>n.getContextKeyValue(u))}var kR=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Fk=function(u,n){return function(h,g){n(h,g,u)}},om=class u extends i{constructor(n,h,g){super();this._editor=n,this._instantiationService=h,this._loggerService=g,this._structuredLogger=this._register(this._instantiationService.createInstance(Wc.cast(),"editor.inlineSuggest.logChangeReason.commandId"));let p=this._loggerService?.createLogger("textModelChanges",{hidden:!1,name:"Text Model Changes Reason"}),m=Pe(this,p.onDidChangeLogLevel,()=>p.getLevel());this._register(W((v)=>{if(!TI(m.read(v),ao.Trace))return;v.store.add(this._editor.onDidChangeModelContent((S)=>{if(this._editor.getModel()?.uri.scheme==="output")return;p.trace("onDidChangeModelContent: "+S.detailedReasons.map((C)=>C.toKey(Number.MAX_VALUE)).join(", "))}))})),this._register(W((v)=>{if(!(this._editor instanceof xc))return;if(!this._structuredLogger.isEnabled.read(v))return;v.store.add(this._editor.onDidChangeModelContent((S)=>{let C=this._editor.getModel();if(!C)return;let x=S.detailedReasons[0],T={...x.metadata,sourceId:"TextModel.setChangeReason",source:x.metadata.source,time:Date.now(),modelUri:C.uri,modelVersion:C.getVersionId()};setTimeout(()=>{this._structuredLogger.log(T)},0)}))}))}};om=kR([Fk(1,A),Fk(2,p1)],om);function Id(u){return new Hk(u)}class Hk extends b0{constructor(u){super();this._textModel=u}getOffset(u){return this._textModel.getOffsetAt(u)}getPosition(u){return this._textModel.getPositionAt(u)}}var ER=[];function Wk(){return ER}function uw(u){return DR(u).map((h)=>h.getEndPosition())}function DR(u){let n=i0.createSortPermutation(u,jn((p)=>p.range,t.compareRangesUsingStarts)),g=new Fo(n.apply(u)).getNewRanges();return n.inverse().apply(g)}function Bk(u,n){let h=Id(n),g=n.getValue();return u.map((v)=>h.getStringReplacement(v)).map((v)=>v.removeCommonSuffixPrefix(g)).map((v)=>h.getTextReplacement(v))}function Vk(u,n){let h=j("result",[]),g=[];return n.add(W((p)=>{let m=u.read(p);Ye((v)=>{if(m.length!==g.length){g.length=m.length;for(let S=0;S<g.length;S++)if(!g[S])g[S]=j("item",m[S]);h.set([...g],v)}g.forEach((S,C)=>S.set(m[C],v))})})),h}class gw{constructor(u){this._contextKeyService=u}bind(u,n){return Ss(u,this._contextKeyService,n instanceof Function?n:(h)=>n.read(h))}}function pw(u,n){return new Promise((h)=>{let g=void 0,p=setTimeout(()=>{if(g)g.dispose();h()},u);if(n)g=n.onCancellationRequested(()=>{if(clearTimeout(p),g)g.dispose();h()})})}class Bc{static message(u){return new Bc(void 0,u)}constructor(u,n=void 0){this.error=u,this.message=n}static is(u){return u instanceof Bc}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 nm{static startNow(u,n,h,g=zk){return new nm(u,n,h,Date.now(),g)}constructor(u,n,h,g,p=zk){if(this.startValue=u,this.endValue=n,this.durationMs=h,this.startTimeMs=g,this._interpolationFunction=p,u===n)this.durationMs=0}isFinished(u){return u>=this.startTimeMs+this.durationMs}getValue(u){let n=u-this.startTimeMs;if(n>=this.durationMs)return this.endValue;return this._interpolationFunction(n,this.startValue,this.endValue-this.startValue,this.durationMs)}}function zk(u,n,h,g){return u===g?n+h:h*(-Math.pow(2,-10*u/g)+1)+n}function Kk(u,n,h,g){return h*((u=u/g-1)*u*u+1)+n}class mw{constructor(u){this._value=u}getValue(u){let n=Date.now();if(!this._value.isFinished(n))Mv.instance.invalidateOnNextAnimationFrame(u);return this._value.getValue(n)}isFinished(u){let n=Date.now(),h=this._value.isFinished(n);if(!h)Mv.instance.invalidateOnNextAnimationFrame(u);return h}}class Mv{constructor(){this._counter=so(this),this._isScheduled=!1}static{this.instance=new Mv}invalidateOnNextAnimationFrame(u){if(this._counter.read(u),!this._isScheduled)this._isScheduled=!0,Ke().requestAnimationFrame(()=>{this._isScheduled=!1,this._update()})}_update(){this._counter.trigger(void 0)}}class Xr{constructor(u,n){this.lineNumber=u,this.parts=n,ia(()=>nu(n,(h,g)=>h.column<=g.column))}equals(u){return this.lineNumber===u.lineNumber&&this.parts.length===u.parts.length&&this.parts.every((n,h)=>n.equals(u.parts[h]))}renderForScreenReader(u){if(this.parts.length===0)return"";let n=this.parts[this.parts.length-1],h=u.substr(0,n.column-1);return new Fo([...this.parts.map((p)=>new bt(t.fromPositions(new s(1,p.column)),p.lines.map((m)=>m.line).join(`
|
|
34
|
+
`)))]).applyToString(h).substring(this.parts[0].column-1)}isEmpty(){return this.parts.every((u)=>u.lines.length===0)}get lineCount(){return 1+this.parts.reduce((u,n)=>u+n.lines.length-1,0)}}class Ld{constructor(u,n,h,g=[]){this.column=u,this.text=n,this.preview=h,this._inlineDecorations=g,this.lines=Ci(this.text).map((p,m)=>({line:p,lineDecorations:Xi.filter(this._inlineDecorations,m+1,1,p.length+1)}))}equals(u){return this.column===u.column&&this.lines.length===u.lines.length&&this.lines.every((n,h)=>n.line===u.lines[h].line&&Xi.equalsArr(n.lineDecorations,u.lines[h].lineDecorations))}}class zh{constructor(u,n,h,g=0){this.lineNumber=u,this.columnRange=n,this.text=h,this.additionalReservedLineCount=g,this.parts=[new Ld(this.columnRange.endColumnExclusive,this.text,!1)],this.newLines=Ci(this.text)}renderForScreenReader(u){return this.newLines.join(`
|
|
35
|
+
`)}get lineCount(){return this.newLines.length}isEmpty(){return this.parts.every((u)=>u.lines.length===0)}equals(u){return this.lineNumber===u.lineNumber&&this.columnRange.equals(u.columnRange)&&this.newLines.length===u.newLines.length&&this.newLines.every((n,h)=>n===u.newLines[h])&&this.additionalReservedLineCount===u.additionalReservedLineCount}}function fw(u,n){return ot(u,n,_w)}function _w(u,n){if(u===n)return!0;if(!u||!n)return!1;if(u instanceof Xr&&n instanceof Xr)return u.equals(n);if(u instanceof zh&&n instanceof zh)return u.equals(n);return!1}function Uo(u,n,h){let g=h?u.range.intersectRanges(h):u.range;if(!g)return u;let p=u.text.replaceAll(`\r
|
|
36
|
+
`,`
|
|
37
|
+
`),m=n.getValueInRange(g,1),v=Ao(m,p),S=Gt.ofText(m.substring(0,v)).addToPosition(u.range.getStartPosition()),C=p.substring(v),x=t.fromPositions(S,u.range.getEndPosition());return new bt(x,C)}function rm(u,n){return u.text.startsWith(n.text)&&TR(u.range,n.range)}function TR(u,n){return n.getStartPosition().equals(u.getStartPosition())&&n.getEndPosition().isBeforeOrEqual(u.getEndPosition())}function bw(u,n,h,g,p=0){let m=Uo(u,n);if(m.range.endLineNumber!==m.range.startLineNumber)return;let v=n.getLineContent(m.range.startLineNumber),S=Rt(v).length;if(m.range.startColumn-1<=S){let Q=Rt(m.text).length,te=v.substring(m.range.startColumn-1,S),[oe,ne]=[m.range.getStartPosition(),m.range.getEndPosition()],he=oe.column+te.length<=ne.column?oe.delta(0,te.length):ne,ge=t.fromPositions(he,ne),_e=m.text.startsWith(te)?m.text.substring(te.length):m.text.substring(Q);m=new bt(ge,_e)}let x=n.getValueInRange(m.range),T=RR(x,m.text);if(!T)return;let R=m.range.startLineNumber,Z=[];if(h==="prefix"){let Q=T.filter((te)=>te.originalLength===0);if(Q.length>1||Q.length===1&&Q[0].originalStart!==x.length)return}let Y=m.text.length-p;for(let Q of T){let te=m.range.startColumn+Q.originalStart+Q.originalLength;if(h==="subwordSmart"&&g&&g.lineNumber===m.range.startLineNumber&&te<g.column)return;if(Q.originalLength>0)return;if(Q.modifiedLength===0)continue;let oe=Q.modifiedStart+Q.modifiedLength,ne=Math.max(Q.modifiedStart,Math.min(oe,Y)),he=m.text.substring(Q.modifiedStart,ne),ge=m.text.substring(ne,Math.max(Q.modifiedStart,oe));if(he.length>0)Z.push(new Ld(te,he,!1));if(ge.length>0)Z.push(new Ld(te,ge,!0))}return new Xr(R,Z)}var sm=void 0;function RR(u,n){if(sm?.originalValue===u&&sm?.newValue===n)return sm?.changes;else{let h=qk(u,n,!0);if(h){let g=Uk(h);if(g>0){let p=qk(u,n,!1);if(p&&Uk(p)<g)h=p}}return sm={originalValue:u,newValue:n,changes:h},h}}function Uk(u){let n=0;for(let h of u)n+=h.originalLength;return n}function qk(u,n,h){if(u.length>5000||n.length>5000)return;function g(x){let T=0;for(let R=0,Z=x.length;R<Z;R++){let Y=x.charCodeAt(R);if(Y>T)T=Y}return T}let p=Math.max(g(u),g(n));function m(x){if(x<0)throw Error("unexpected");return p+x+1}function v(x){let T=0,R=0,Z=new Int32Array(x.length);for(let Y=0,Q=x.length;Y<Q;Y++)if(h&&x[Y]==="("){let te=R*100+T;Z[Y]=m(2*te),T++}else if(h&&x[Y]===")"){T=Math.max(T-1,0);let te=R*100+T;if(Z[Y]=m(2*te+1),T===0)R++}else Z[Y]=x.charCodeAt(Y);return Z}let S=v(u),C=v(n);return new ca({getElements:()=>S},{getElements:()=>C}).ComputeDiff(!1).changes}function jk(u,n){let h=void 0,g=!1,p=new d0(new mi(u,void 0,n.update),(m,v)=>{if(!g)h=n.initial instanceof Function?n.initial():n.initial,g=!0;let S=n.update(m,h,v);return h=S,S},n.changeTracker,()=>{if(g)n.disposeFinal?.(h),g=!1},n.equalityComparer??Zo,(m,v,S)=>{if(!g)throw new H("Can only set when there is a listener! This is to prevent leaks.");cd(v,(C)=>{h=m,p.setValue(m,C,S)})},qt.ofCaller());return p}var NR=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},$k=function(u,n){return function(h,g){n(h,g,u)}};class Gk{constructor(u,n){this._baseService=u,this._intercept=n}publicLog2(u,n){this._intercept(u,n),this._baseService.publicLog2(u,n)}}var am=class u extends Gk{constructor(n,h){super(n,(g,p)=>{let m=!0;if(p&&vw in p)m=Boolean(p[vw]);if(m)h.getDataChannel("editTelemetry").sendData({eventName:g,data:p??{}})})}};am=NR([$k(0,Bn),$k(1,gy)],am);var vw=Symbol("shouldForwardToChannel");function Zk(u){return{[vw]:u}}function ww(u){if(!u)return!1;let n=u.toLowerCase();return n==="github.copilot"||n==="github.copilot-chat"}function Xk(u,n){u.publicLog2("inlineCompletion.endOfLife",n)}var MR=new Set([";",",","=","+","-","*","/","{","}","(",")","[","]","<",">",":",".","!","?","&","|","^","%","@","#","~","`","\\","'",'"',"$"]);function OR(u){return MR.has(u)}function PR(u){return/[a-zA-Z0-9_]/.test(u)}function AR(u){return u===" "||u==="\t"}function dm(u){let n=u.split(/\r\n|\r|\n/);if(n.length>1)return{kind:"multiLine",lineCount:n.length};let h=u.length===1,g;if(h){if(OR(u))g="syntactical";else if(PR(u))g="identifier";else if(AR(u))g="whitespace"}let p=u.match(/[ \t]+/g)||[],m=p.some((T)=>T.length>1),v=p.some((T)=>T.includes(" ")||T.includes("\t\t")),S=u.split(/\s+/).filter((T)=>T.length>0),C=S.length===1&&/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(S[0]),x=S.length>1;return{kind:"singleLine",isSingleCharacter:h,singleCharacterKind:g,isWord:C,isMultipleWords:x,isMultipleWhitespace:m,hasDuplicatedWhitespace:v}}class Yk{constructor(u){this.edits=u}toString(){return JSON.stringify({edits:this.edits})}}function Cw(u,n,h){if(u.replacements.length===0)return;return new Yk(u.replacements.map((g)=>FR(g,n)))}function Sw(u){if(u.length===0)return 0;return u.split(/\r\n|\r|\n/).length-1}function FR(u,n,h){let{replaceRange:g,newText:p}=u,m=g.length,v=p.length,S=Sw(p);switch(g.isEmpty?"insert":p.length===0?"delete":"replace"){case"insert":return{operation:"insert",properties:HR(g.start,p,n),charactersInserted:v,charactersDeleted:0,linesInserted:S,linesDeleted:0};case"delete":{let x=n.getValue().substring(g.start,g.endExclusive);return{operation:"delete",properties:WR(g.start,g.endExclusive,n),charactersInserted:0,charactersDeleted:m,linesInserted:0,linesDeleted:Sw(x)}}case"replace":{let x=n.getValue().substring(g.start,g.endExclusive);return{operation:"replace",properties:BR(x,p),charactersInserted:v,charactersDeleted:m,linesInserted:S,linesDeleted:Sw(x)}}}}function HR(u,n,h,g){let p=dm(n),m=h.getPositionAt(u),v=h.getLineContent(m.lineNumber),S=v.length,C,x=v.trim().length===0,T=m.column>S,R=m.column===1;if(x)C="emptyLine";else if(T)C="endOfLine";else if(R)C="startOfLine";else C="middleOfLine";let Z;return{textShape:p,locationShape:C,relativeToCursor:Z}}function WR(u,n,h){let g=h.getValue().substring(u,n),p=dm(g),m=h.getPositionAt(u),v=h.getPositionAt(n),S=h.getLineContent(v.lineNumber),C=v.column>S.length,x=m.lineNumber===v.lineNumber&&m.column===1&&v.column>S.length;return{textShape:p,isAtEndOfLine:C,deletesEntireLineContent:x}}function BR(u,n){let h=dm(u),g=dm(n),p=h.kind==="singleLine"&&h.isWord,m=g.kind==="singleLine"&&g.isWord,v=p&&m,S=n.length>u.length,C=n.length<u.length,x=h.kind==="singleLine"&&g.kind==="singleLine",T=h.kind==="singleLine"&&g.kind==="multiLine",R=h.kind==="multiLine"&&g.kind==="singleLine";return{isWordToWordReplacement:v,isAdditive:S,isSubtractive:C,isSingleLineToSingleLine:x,isSingleLineToMultiLine:T,isMultiLineToSingleLine:R}}function cm(u,n,h,g){let p=Uo(u,h),m=u.range;if(!m||n&&!n.getStartPosition().equals(m.getStartPosition())||g.lineNumber!==p.range.startLineNumber||p.isEmpty)return!1;let v=h.getValueInRange(p.range,1),S=p.text,C=Math.max(0,g.column-p.range.startColumn),x=S.substring(0,C),T=S.substring(C),R=v.substring(0,C),Z=v.substring(C),Y=h.getLineIndentColumn(p.range.startLineNumber);if(p.range.startColumn<=Y){if(R=R.trimStart(),R.length===0)Z=Z.trimStart();if(x=x.trimStart(),x.length===0)T=T.trimStart()}return x.startsWith(R)&&!!AI(Z,T)}var lm;(function(u){function n(h){return h?.command.id??void 0}u.toString=n})(lm||(lm={}));class Cr extends sg{static snapshot(u){return new Cr(u)}constructor(u){super();this._textModel=u,this._version=u.getVersionId()}get uri(){return this._textModel.uri}_assertValid(){if(this._textModel.getVersionId()!==this._version)X(Error(`TextModel has changed: expected version ${this._version}, got ${this._textModel.getVersionId()}`))}targets(u){return this._textModel.uri.toString()===u.uri.toString()}getValueOfRange(u){return this._assertValid(),this._textModel.getValueInRange(u)}getLineLength(u){return this._assertValid(),this._textModel.getLineLength(u)}get length(){this._assertValid();let u=this._textModel.getLineCount(),n=this._textModel.getLineLength(u);return new Gt(u-1,n)}getEOL(){return this._assertValid(),this._textModel.getEOL()}getPositionAt(u){return this._assertValid(),this._textModel.getPositionAt(u)}getValueInRange(u){return this._assertValid(),this._textModel.getValueInRange(u)}getVersionId(){return this._version}dangerouslyGetUnderlyingModel(){return this._textModel}}var Vc;(function(u){function n(h,g,p=!0){if(!h.isInlineEdit&&!h.action?.uri&&h.action?.kind==="edit")return $h.create(h,g,h.action);else return Yh.create(h,g,p)}u.create=n})(Vc||(Vc={}));function VR(u){let n=u?.kind==="edit"?{...u,alternativeAction:lm.toString(u.alternativeAction),target:u?.target.uri.toString()}:{...u,target:u?.target.uri.toString()};return JSON.stringify(n)}class yw{constructor(u,n,h,g){this._data=u,this.identity=n,this.hint=h,this.originalTextRef=g}get source(){return this._data.source}get isFromExplicitRequest(){return this._data.context.triggerKind===hr.Explicit}get forwardStable(){return this.source.inlineSuggestions.enableForwardStability??!1}get targetRange(){if(this.hint)return this.hint.range;if(this.action?.kind==="edit")return this.action.textReplacement.range;else if(this.action?.kind==="jumpTo")return t.fromPositions(this.action.position);throw new H("InlineSuggestionItem: Either hint or action must be set")}get semanticId(){return this.hash}get gutterMenuLinkAction(){return this._sourceInlineCompletion.gutterMenuLinkAction}get command(){return this._sourceInlineCompletion.command}get supportsRename(){return this._data.supportsRename}get warning(){return this._sourceInlineCompletion.warning}get showInlineEditMenu(){return!!this._sourceInlineCompletion.showInlineEditMenu}get hash(){return VR(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(u,n,h,g,p){let m=this.action?.kind==="edit"?this.action.textReplacement.text:"";this._data.reportInlineEditShown(u,m,n,h,this.computeEditKind(g),p)}reportPartialAccept(u,n,h){this._data.reportPartialAccept(u,n,h)}reportEndOfLife(u){this._data.reportEndOfLife(u)}setEndOfLifeReason(u){this._data.setEndOfLifeReason(u)}setIsPreceeded(u){this._data.setIsPreceeded(u.partialAccepts)}setNotShownReasonIfNotSet(u){this._data.setNotShownReason(u)}getSourceCompletion(){return this._sourceInlineCompletion}setRenameProcessingInfo(u){this._data.setRenameProcessingInfo(u)}withAction(u){return this._data.withAction(u)}addPerformanceMarker(u){this._data.addPerformanceMarker(u)}}class um{constructor(){this._onDispose=so(this),this.onDispose=this._onDispose,this._jumpedTo=j(this,!1),this._refCount=0,this.id="InlineCompletionIdentity"+um.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(u){this._jumpedTo.set(!0,u)}}class eu{static create(u){return new eu(t.lift(u.range),u.content,u.style)}constructor(u,n,h){this.range=u,this.content=n,this.style=h}withEdit(u,n){let h=new V(n.getOffset(this.range.getStartPosition()),n.getOffset(this.range.getEndPosition())),g=LI([h],u)[0];if(!g)return;let p=n.getRange(g);return new eu(p,this.content,this.style)}}class $h extends yw{static create(u,n,h){let g=new um,p=n.getTransformer(),m=h.insertText.replace(/\r\n|\r|\n/g,n.getEOL()),v=UR(new li(p.getOffsetRange(h.range),m),n),S=v.removeCommonSuffixAndPrefix(n.getValue()),C=p.getTextReplacement(v),x=u.hint?eu.create(u.hint):void 0;return new $h(v,S,C,C.range,h.snippetInfo,u.additionalTextEdits,u,g,x,n)}constructor(u,n,h,g,p,m,v,S,C,x){super(v,S,C,x);this._edit=u,this._trimmedEdit=n,this._textEdit=h,this._originalRange=g,this.snippetInfo=p,this.additionalTextEdits=m,this.isInlineEdit=!1}get action(){return{kind:"edit",textReplacement:this.getSingleTextEdit(),snippetInfo:this.snippetInfo,stringEdit:new _o([this._trimmedEdit]),alternativeAction:void 0,target:this.originalTextRef}}get hash(){return JSON.stringify(this._trimmedEdit.toJson())}getSingleTextEdit(){return this._textEdit}withIdentity(u){return new $h(this._edit,this._trimmedEdit,this._textEdit,this._originalRange,this.snippetInfo,this.additionalTextEdits,this._data,u,this.hint,this.originalTextRef)}withEdit(u,n){if(!this.originalTextRef.targets(n))return this;let h=LI([this._edit.replaceRange],u);if(h.length===0)return;let g=new li(h[0],this._textEdit.text),p=Id(n),m=p.getTextReplacement(g),v=this.hint;if(v){if(v=v.withEdit(u,p),!v)return}let S=g.removeCommonSuffixAndPrefix(n.getValue());return new $h(g,S,m,this._originalRange,this.snippetInfo,this.additionalTextEdits,this._data,this.identity,v,this.originalTextRef)}canBeReused(u,n){let h=this._textEdit.range;return!!h&&h.containsPosition(n)&&this.isVisible(u,n)&&Gt.ofRange(h).isGreaterThanOrEqualTo(Gt.ofRange(this._originalRange))}isVisible(u,n){let h=this.getSingleTextEdit();return cm(h,this._originalRange,u,n)}computeEditKind(u){return Cw(new _o([this._edit]),u)}get editRange(){return this.getSingleTextEdit().range}}class Yh extends yw{static create(u,n,h=!0){let g,p=[];if(u.action?.kind==="edit"){let S=h?zR(n,u.action.range,u.action.insertText):KR(n,u.action.range,u.action.insertText),C=Fo.fromStringEdit(S,n),x=S.isEmpty()?new bt(new t(1,1,1,1),""):C.toReplacement(n);p=S.replacements.map((T)=>{let R=t.fromPositions(n.getPositionAt(T.replaceRange.start),n.getTransformer().getPosition(T.replaceRange.endExclusive)),Z=n.getValueInRange(R);return hm.create(T,Z)}),g={kind:"edit",snippetInfo:u.action.snippetInfo,stringEdit:S,textReplacement:x,alternativeAction:u.action.alternativeAction,target:n}}else if(u.action?.kind==="jumpTo")g={kind:"jumpTo",position:u.action.position,offset:n.getTransformer().getOffset(u.action.position),target:n};else if(g=void 0,!u.hint)throw new H("InlineEditItem: action is undefined and no hint is provided");let m=new um,v=u.hint?eu.create(u.hint):void 0;return new Yh(g,u,m,p,v,!1,n.getVersionId(),n)}constructor(u,n,h,g,p,m=!1,v,S){super(n,h,p,S);this._action=u,this._edits=g,this._lastChangePartOfInlineEdit=m,this._inlineEditModelVersion=v,this.snippetInfo=void 0,this.additionalTextEdits=[],this.isInlineEdit=!0}get updatedEditModelVersion(){return this._inlineEditModelVersion}get action(){return this._action}withIdentity(u){return new Yh(this._action,this._data,u,this._edits,this.hint,this._lastChangePartOfInlineEdit,this._inlineEditModelVersion,this.originalTextRef)}canBeReused(u,n){return this._lastChangePartOfInlineEdit&&this.updatedEditModelVersion===u.getVersionId()}withEdit(u,n){if(!this.originalTextRef.targets(n))return this;return this._applyTextModelChanges(u,this._edits,n)}_applyTextModelChanges(u,n,h){let g=Id(h),p=!1,m=this._inlineEditModelVersion,v,S=Cr.snapshot(h);if(this.action?.kind==="edit"){if(n=n.map((Z)=>Z.applyTextModelChanges(u)),n.some((Z)=>Z.edit===void 0))return;let x=h.getVersionId();if(p=n.some((Z)=>Z.lastChangeUpdatedEdit),p)m=x??-1;if(x===null||m+20<x)return;if(n=n.filter((Z)=>!Z.edit.isEmpty),n.length===0)return;let T=new _o(n.map((Z)=>Z.edit));v={kind:"edit",textReplacement:g.getTextEdit(T).toReplacement(new tp(h)),snippetInfo:this.snippetInfo,stringEdit:T,alternativeAction:this.action.alternativeAction,target:S}}else if(this.action?.kind==="jumpTo"){let x=this.action.offset,T=u.applyToOffsetOrUndefined(x);if(T===void 0)return;v={kind:"jumpTo",position:g.getPosition(T),offset:T,target:S}}else v=void 0;let C=this.hint;if(C){if(C=C.withEdit(u,g),!C)return}return new Yh(v,this._data,this.identity,n,C,p,m,S)}computeEditKind(u){let n=this.action?.kind==="edit"?this.action.stringEdit:void 0;if(!n)return;return Cw(n,u)}}function zR(u,n,h){let g=u.getEOL(),p=u.getValueOfRange(n),m=h.replace(/\r\n|\r|\n/g,g),C=ag.getDefault().computeDiff(Ci(p),Ci(m),{ignoreTrimWhitespace:!1,computeMoves:!1,extendToSubwords:!0,maxComputationTimeMs:50}).changes.flatMap((Z)=>Z.innerChanges??[]);function x(Z,Y){let Q=Gt.fromPosition(Y.getStartPosition());return Gt.ofRange(Y).createRange(Q.addToPosition(Z))}let T=new _l(m);return new _o(C.map((Z)=>{let Y=x(n.getStartPosition(),Z.originalRange),Q=u.getTransformer().getOffsetRange(Y),te=T.getValueOfRange(Z.modifiedRange),oe=new li(Q,te),ne=u.getValueOfRange(Y);return qR(oe,ne,C.length,u)}))}function KR(u,n,h){return new _o([new li(u.getTransformer().getOffsetRange(n),h)])}class hm{static create(u,n){let h=Ao(u.newText,n),g=Ms(u.newText,n),p=u.newText.substring(h,u.newText.length-g);return new hm(u,p,h,g)}get edit(){return this._edit}get lastChangeUpdatedEdit(){return this._lastChangeUpdatedEdit}constructor(u,n,h,g,p=!1){this._edit=u,this._trimmedNewText=n,this._prefixLength=h,this._suffixLength=g,this._lastChangeUpdatedEdit=p}applyTextModelChanges(u){let n=this._clone();return n._applyTextModelChanges(u),n}_clone(){return new hm(this._edit,this._trimmedNewText,this._prefixLength,this._suffixLength,this._lastChangeUpdatedEdit)}_applyTextModelChanges(u){if(this._lastChangeUpdatedEdit=!1,!this._edit)throw new H("UpdatedInnerEdits: No edit to apply changes to");let n=this._applyChanges(this._edit,u);if(!n){this._edit=void 0;return}this._edit=n.edit,this._lastChangeUpdatedEdit=n.editHasChanged}_applyChanges(u,n){let h=u.replaceRange.start,g=u.replaceRange.endExclusive,p=u.newText,m=!1,v=this._prefixLength>0||this._suffixLength>0;for(let S=n.replacements.length-1;S>=0;S--){let C=n.replacements[S],x=C.newText.length>0&&C.replaceRange.isEmpty;if(x&&!v&&C.replaceRange.start===h&&p.startsWith(C.newText)){h+=C.newText.length,p=p.substring(C.newText.length),g+=C.newText.length,m=!0;continue}if(x&&v&&C.replaceRange.start===h+this._prefixLength&&this._trimmedNewText.startsWith(C.newText)){g+=C.newText.length,m=!0,this._prefixLength+=C.newText.length,this._trimmedNewText=this._trimmedNewText.substring(C.newText.length);continue}if(C.newText.length===0&&C.replaceRange.length>0&&C.replaceRange.start>=h+this._prefixLength&&C.replaceRange.endExclusive<=g-this._suffixLength){g-=C.replaceRange.length,m=!0;continue}if(C.equals(u)){m=!0,h=C.replaceRange.endExclusive,p="";continue}if(C.replaceRange.start>g)continue;if(C.replaceRange.endExclusive<h){h+=C.newText.length-C.replaceRange.length,g+=C.newText.length-C.replaceRange.length;continue}return}if(this._trimmedNewText.length===0&&h+this._prefixLength===g-this._suffixLength)return{edit:new li(new V(h+this._prefixLength,h+this._prefixLength),""),editHasChanged:!0};return{edit:new li(new V(h,g),p),editHasChanged:m}}}function UR(u,n){let h=n.getEOL();if(u.replaceRange.isEmpty&&u.newText.includes(h))u=Jk(u,n);return u}function qR(u,n,h,g){let p=g.getEOL();if(u.newText.endsWith(p)&&n.endsWith(p))u=new li(u.replaceRange.deltaEnd(-p.length),u.newText.slice(0,-p.length));if(h===1&&u.replaceRange.isEmpty&&u.newText.includes(p)){let m=g.getTransformer().getPosition(u.replaceRange.start);if(g.getLineLength(m.lineNumber)!==0)u=Jk(u,g)}if(h===1){let m=Ao(n,u.newText),v=Ms(n.slice(m),u.newText.slice(m));if(m+v===n.length)return new li(u.replaceRange.deltaStart(m).deltaEnd(-v),u.newText.substring(m,u.newText.length-v));if(m+v===u.newText.length)return new li(u.replaceRange.deltaStart(m).deltaEnd(-v),"")}return u}function Jk(u,n){if(!u.replaceRange.isEmpty)throw new H("Unexpected original range");if(u.replaceRange.start===0)return u;let h=n.getEOL(),g=n.getTransformer().getPosition(u.replaceRange.start),{column:p,lineNumber:m}=g;if(p===1&&m>1&&u.newText.endsWith(h)&&!u.newText.startsWith(h))return new li(u.replaceRange.delta(-1),h+u.newText.slice(0,-h.length));return u}function Qk(u,n){let h=new $0,g=new R0(h,(x)=>n.getLanguageConfiguration(x)),p=new I0(new i1([u]),g),m=D0(p,[],void 0,!0),v="",S=u.getLineContent();function C(x,T){if(x.kind===2){if(C(x.openingBracket,T),T=vn(T,x.openingBracket.length),x.child)C(x.child,T),T=vn(T,x.child.length);if(x.closingBracket)C(x.closingBracket,T),T=vn(T,x.closingBracket.length);else{let Z=g.getSingleLanguageBracketTokens(x.openingBracket.languageId).findClosingTokenText(x.openingBracket.bracketIds);v+=Z}}else if(x.kind===3);else if(x.kind===0||x.kind===1)v+=S.substring(ly(T),ly(vn(T,x.length)));else if(x.kind===4)for(let R of x.children)C(R,T),T=vn(T,R.length)}return C(m,mo),v}class i1{constructor(u){this.lines=u,this.tokenization={getLineTokens:(n)=>this.lines[n-1]}}getLineCount(){return this.lines.length}getLineLength(u){return this.lines[u-1].getLineContent().length}}var Dt;(function(u){u.Jump="jump",u.Accept="accept",u.Inactive="inactive"})(Dt||(Dt={}));class Lo{static create(u,n=!1){return new Lo(new si(B(u),u),n)}constructor(u,n=!1){this.event=u,this.alternativeAction=n}}var Xe;(function(u){u.GhostText="ghostText",u.Custom="custom",u.SideBySide="sideBySide",u.Deletion="deletion",u.InsertionInline="insertionInline",u.InsertionMultiLine="insertionMultiLine",u.WordReplacements="wordReplacements",u.LineReplacement="lineReplacement",u.Collapsed="collapsed",u.JumpTo="jumpTo"})(Xe||(Xe={}));class zc{constructor(u,n,h,g,p,m,v,S){this.cursorColumnDistance=u,this.cursorLineDistance=n,this.lineCountOriginal=h,this.lineCountModified=g,this.characterCountOriginal=p,this.characterCountModified=m,this.disjointReplacements=v,this.sameShapeReplacements=S,this.longDistanceHintVisible=void 0,this.longDistanceHintDistance=void 0,this.isForAnotherDocument=void 0}setLongDistanceViewData(u,n){this.longDistanceHintVisible=!0,this.longDistanceHintDistance=Math.abs(n-u)}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 gm{constructor(){this._nodes=new Set,this._outgoingEdges=new Map}static from(u,n){let h=new gm;for(let g of u)h._nodes.add(g);for(let g of u){let p=n(g);if(p.length>0){let m=new Set;for(let v of p)m.add(v);h._outgoingEdges.set(g,m)}}return h}removeCycles(){let u=[],n=new Set,h=new Set,g=[],p=(m)=>{n.add(m),h.add(m);let v=this._outgoingEdges.get(m);if(v){for(let S of v)if(!n.has(S))p(S);else if(h.has(S))u.push(S),g.push({from:m,to:S})}h.delete(m)};for(let m of this._nodes)if(!n.has(m))p(m);for(let{from:m,to:v}of g){let S=this._outgoingEdges.get(m);if(S)S.delete(v)}return{foundCycles:u}}getOutgoing(u){let n=this._outgoingEdges.get(u);return n?Array.from(n):[]}}function f1(u,n,h,g,p,m){let v=S1("icr"),S=new Ge,C=void 0,x={...g,requestUuid:v},T=$R(n,h),R=GM(u,(ne)=>ne.groupId),Z=gm.from(u,(ne)=>ne.yieldsToGroupIds?.flatMap((he)=>R.get(he)??[])??[]),{foundCycles:Y}=Z.removeCycles();if(Y.length>0)yt(Error(`Inline completions: cyclic yield-to dependency detected. Path: ${Y.map((ne)=>ne.toString?ne.toString():""+ne).join(" -> ")}`));let Q=0,te=new Vv(async(ne)=>{try{if(Q++,S.token.isCancellationRequested)return;let he=Z.getOutgoing(ne);for(let Me of he){let Ae=await te.get(Me);if(Ae)for(let We of Ae.inlineSuggestions.items){if(We.isInlineEdit||typeof We.insertText!=="string"&&We.insertText!==void 0)return;if(We.insertText!==void 0){let Ie=new bt(t.lift(We.range)??T,We.insertText);if(cm(Ie,void 0,h,n))return}}}let ge,_e=Date.now();try{ge=await ne.provideInlineCompletions(h,n,x,S.token)}catch(Me){yt(Me);return}let Se=Date.now();if(!ge)return;let ae=[],pe=new F1(ge,ae,ne);if(pe.addRef(),xw(S.token,()=>pe.removeRef(C)),S.token.isCancellationRequested)return;for(let Me of ge.items){let Ae=jR(Me,pe,T,h,m,x,p,{startTime:_e,endTime:Se});if(Bc.is(Ae)){Ae.logError();continue}ae.push(Ae)}return pe}finally{Q--}}),oe=ti.fromPromisesResolveOrder(u.map((ne)=>te.get(ne))).filter(Qn);return{contextWithUuid:x,get didAllProvidersReturn(){return Q===0},lists:oe,cancelAndDispose:(ne)=>{if(C!==void 0)return;C=ne,S.dispose(!0)}}}function xw(u,n){if(u.isCancellationRequested)return n(),i.None;else{let h=u.onCancellationRequested(()=>{h.dispose(),n()});return{dispose:()=>h.dispose()}}}function jR(u,n,h,g,p,m,v,S){let C,x=u.uri?q.revive(u.uri):void 0;if(u.jumpToPosition!==void 0)C={kind:"jumpTo",position:s.lift(u.jumpToPosition),uri:x};else if(u.insertText!==void 0){let T,R,Z=u.range?t.lift(u.range):h;if(typeof u.insertText==="string"){if(T=u.insertText,p&&u.completeBracketPairs){T=c1(T,Z.getStartPosition(),g,p);let Y=T.length-u.insertText.length;if(Y!==0)Z=new t(Z.startLineNumber,Z.startColumn,Z.endLineNumber,Z.endColumn+Y)}R=void 0}else if("snippet"in u.insertText){let Y=u.insertText.snippet.length;if(p&&u.completeBracketPairs){u.insertText.snippet=c1(u.insertText.snippet,Z.getStartPosition(),g,p);let te=u.insertText.snippet.length-Y;if(te!==0)Z=new t(Z.startLineNumber,Z.startColumn,Z.endLineNumber,Z.endColumn+te)}let Q=new no().parse(u.insertText.snippet);if(Q.children.length===1&&Q.children[0]instanceof hi)T=Q.children[0].value,R=void 0;else T=Q.toString(),R={snippet:u.insertText.snippet,range:Z}}else sc(u.insertText);C={kind:"edit",range:Z,insertText:T,snippetInfo:R,uri:x,alternativeAction:void 0}}else if(C=void 0,!u.hint)return Bc.message("Inline completion has no insertText, jumpToPosition nor hint.");return new C1(C,u.hint,u.additionalTextEdits||Wk(),u,n,m,u.isInlineEdit??!1,u.supportsRename??!1,v,S,u.correlationId)}class C1{get action(){return this._action}constructor(u,n,h,g,p,m,v,S,C,x,T){this._action=u,this.hint=n,this.additionalTextEdits=h,this.sourceInlineCompletion=g,this.source=p,this.context=m,this.isInlineEdit=v,this.supportsRename=S,this._requestInfo=C,this._providerRequestInfo=x,this._correlationId=T,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 A1,this._viewData={editorType:C.editorType}}get showInlineEditMenu(){return this.sourceInlineCompletion.showInlineEditMenu??!1}get partialAccepts(){return this._partiallyAcceptedSinceOriginal}async reportInlineEditShown(u,n,h,g,p,m){if(this.updateShownDuration(h),this._didShow||this._didReportEndOfLife)return;this.addPerformanceMarker("shown"),this._didShow=!0,this._editKind=p,this._viewData.viewKind=h,this._viewData.renderData=g,this._timeUntilShown=m-this._requestInfo.startTime,this._timeUntilActuallyShown=Date.now()-this._requestInfo.startTime;let v=new xg(g.lineCountModified,g.lineCountOriginal,g.characterCountModified,g.characterCountOriginal);if(this.source.provider.handleItemDidShow?.(this.source.inlineSuggestions,this.sourceInlineCompletion,n,v),this.sourceInlineCompletion.shownCommand)await u.executeCommand(this.sourceInlineCompletion.shownCommand.id,...this.sourceInlineCompletion.shownCommand.arguments||[])}reportPartialAccept(u,n,h){this._partiallyAcceptedCount++,this._partiallyAcceptedSinceOriginal.characters+=h.characters,this._partiallyAcceptedSinceOriginal.ratio=Math.min(this._partiallyAcceptedSinceOriginal.ratio+(1-this._partiallyAcceptedSinceOriginal.ratio)*h.ratio,1),this._partiallyAcceptedSinceOriginal.count+=h.count,this.source.provider.handlePartialAccept?.(this.source.inlineSuggestions,this.sourceInlineCompletion,u,n)}reportEndOfLife(u){if(this._didReportEndOfLife)return;if(this._didReportEndOfLife=!0,this.reportInlineEditHidden(),!u)u=this._lastSetEndOfLifeReason??{kind:gl.Ignored,userTypingDisagreed:!1,supersededBy:void 0};if(u.kind===gl.Rejected&&!this._didShow)u={kind:gl.Ignored,userTypingDisagreed:!1,supersededBy:void 0};if(u.kind===gl.Rejected&&this.source.provider.handleRejection)this.source.provider.handleRejection(this.source.inlineSuggestions,this.sourceInlineCompletion);if(this.source.provider.handleEndOfLifetime){let n={requestUuid:this.context.requestUuid,correlationId:this._correlationId,selectedSuggestionInfo:!!this.context.selectedSuggestionInfo,partiallyAccepted:this._partiallyAcceptedCount,partiallyAcceptedCountSinceOriginal:this._partiallyAcceptedSinceOriginal.count,partiallyAcceptedRatioSinceOriginal:this._partiallyAcceptedSinceOriginal.ratio,partiallyAcceptedCharactersSinceOriginal:this._partiallyAcceptedSinceOriginal.characters,shown:this._didShow,shownDuration:this._shownDuration,shownDurationUncollapsed:this._showUncollapsedDuration,editKind:this._editKind?.toString(),preceeded:this._isPreceeded,timeUntilShown:this._timeUntilShown,timeUntilActuallyShown:this._timeUntilActuallyShown,timeUntilProviderRequest:this._providerRequestInfo.startTime-this._requestInfo.startTime,timeUntilProviderResponse:this._providerRequestInfo.endTime-this._requestInfo.startTime,editorType:this._viewData.editorType,languageId:this._requestInfo.languageId,requestReason:this._requestInfo.reason,viewKind:this._viewData.viewKind,notShownReason:this._notShownReason,performanceMarkers:this.performance.toString(),renameCreated:this._renameInfo?.createdRename,renameDuration:this._renameInfo?.duration,renameTimedOut:this._renameInfo?.timedOut,renameDroppedOtherEdits:this._renameInfo?.droppedOtherEdits,renameDroppedRenameEdits:this._renameInfo?.droppedRenameEdits,typingInterval:this._requestInfo.typingInterval,typingIntervalCharacterCount:this._requestInfo.typingIntervalCharacterCount,skuPlan:this._requestInfo.sku?.plan,skuType:this._requestInfo.sku?.type,availableProviders:this._requestInfo.availableProviders.map((h)=>h.toString()).join(","),...this._viewData.renderData?.getData()};this.source.provider.handleEndOfLifetime(this.source.inlineSuggestions,this.sourceInlineCompletion,u,n)}}setIsPreceeded(u){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=u}setNotShownReason(u){this._notShownReason??=u}setEndOfLifeReason(u){this.reportInlineEditHidden(),this._lastSetEndOfLifeReason=u}updateShownDuration(u){let n=Date.now();if(!this._showStartTime)this._showStartTime=n;let h=u===Xe.Collapsed;if(!h&&this._showUncollapsedStartTime===void 0)this._showUncollapsedStartTime=n;if(h&&this._showUncollapsedStartTime!==void 0)this._showUncollapsedDuration+=n-this._showUncollapsedStartTime}reportInlineEditHidden(){if(this._showStartTime===void 0)return;let u=Date.now();if(this._shownDuration+=u-this._showStartTime,this._showStartTime=void 0,this._showUncollapsedStartTime===void 0)return;this._showUncollapsedDuration+=u-this._showUncollapsedStartTime,this._showUncollapsedStartTime=void 0}setRenameProcessingInfo(u){if(this._renameInfo)throw new H("Rename info has already been set.");this._renameInfo=u}withAction(u){return this._action=u,this}addPerformanceMarker(u){this.performance.mark(u)}}class A1{constructor(){this.markers=[],this.markers.push({name:"start",timeStamp:Date.now()})}mark(u){this.markers.push({name:u,timeStamp:Date.now()})}toString(){let u=[];for(let n=1;n<this.markers.length;n++){let h=this.markers[n].timeStamp-this.markers[n-1].timeStamp;u.push({[this.markers[n].name]:h})}return JSON.stringify(u)}}var Nt;(function(u){u.TextEditor="textEditor",u.DiffEditor="diffEditor",u.Notebook="notebook"})(Nt||(Nt={}));class F1{constructor(u,n,h){this.inlineSuggestions=u,this.inlineSuggestionsData=n,this.provider=h,this.refCount=0}addRef(){this.refCount++}removeRef(u={kind:"other"}){if(this.refCount--,this.refCount===0){for(let n of this.inlineSuggestionsData)n.reportEndOfLife();this.provider.disposeInlineCompletions(this.inlineSuggestions,u)}else if(this.refCount<0)X(new H(`InlineSuggestionList (provider=${this.provider.providerId?.toString()}) refCount went negative (${this.refCount}) — more removeRef than addRef calls.`))}}function $R(u,n){let h=n.getWordAtPosition(u),g=n.getLineMaxColumn(u.lineNumber);return h?new t(u.lineNumber,h.startColumn,u.lineNumber,g):t.fromPositions(u,u.with(void 0,g))}function c1(u,n,h,g){let p=h.getLineContent(n.lineNumber),m=li.replace(new V(n.column-1,p.length),u),S=h.tokenization.tokenizeLinesAt(n.lineNumber,[m.replace(p)])?.[0].sliceZeroCopy(m.getRangeAfterReplace());if(!S)return u;return Qk(S,g)}var GR=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},pm=function(u,n){return function(h,g){n(h,g,u)}},kd=new M("renameInputVisible",!1,e(1460,"Whether the rename input widget is visible"));new M("renameInputFocused",!1,e(1461,"Whether the rename input widget is focused"));var mm=class u{constructor(n,h,g,p,m,v){this._editor=n,this._acceptKeybindings=h,this._themeService=g,this._keybindingService=p,this._logService=v,this.allowEditorOverflow=!0,this._disposables=new d,this._visibleContextKey=kd.bindTo(m),this._isEditingRenameCandidate=!1,this._nRenameSuggestionsInvocations=0,this._hadAutomaticRenameSuggestionsInvocation=!1,this._candidates=new Set,this._beforeFirstInputFieldEditSW=new un,this._inputWithButton=new Z1,this._disposables.add(this._inputWithButton),this._editor.addContentWidget(this),this._disposables.add(this._editor.onDidChangeConfiguration((S)=>{if(S.hasChanged(59))this._updateFont()})),this._disposables.add(g.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 Iw(this._domNode,{fontInfo:this._editor.getOption(59),onFocusChange:(n)=>{this._inputWithButton.input.value=n,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(n){if(!this._domNode)return;let h=n.getColor(pu),g=n.getColor(ny);this._domNode.style.backgroundColor=String(n.getColor(Bo)??""),this._domNode.style.boxShadow=h?` 0 0 8px 2px ${h}`:"",this._domNode.style.border=g?`1px solid ${g}`:"",this._domNode.style.color=String(n.getColor(x1)??"");let p=n.getColor(_1);this._inputWithButton.domNode.style.backgroundColor=String(n.getColor(S0)??""),this._inputWithButton.input.style.backgroundColor=String(n.getColor(S0)??""),this._inputWithButton.domNode.style.borderWidth=p?"1px":"0px",this._inputWithButton.domNode.style.borderStyle=p?"solid":"none",this._inputWithButton.domNode.style.borderColor=p?.toString()??"none"}_updateFont(){if(this._domNode===void 0)return;Fe(this._label!==void 0,"RenameWidget#_updateFont: _label must not be undefined given _domNode is defined"),this._editor.applyFontInfo(this._inputWithButton.input);let n=this._editor.getOption(59);this._label.style.fontSize=`${this._computeLabelFontSize(n.fontSize)}px`}_computeLabelFontSize(n){return n*0.8}getPosition(){if(!this._visible)return null;if(!this._editor.hasModel()||!this._editor.getDomNode())return null;let n=la(this.getDomNode().ownerDocument.body),h=kt(this._editor.getDomNode()),g=this._getTopForPosition();this._nPxAvailableAbove=g+h.top,this._nPxAvailableBelow=n.height-this._nPxAvailableAbove;let p=this._editor.getOption(75),{totalHeight:m}=Kc.getLayoutInfo({lineHeight:p}),v=this._nPxAvailableBelow>m*6?[2,1]:[1,2];return{position:this._position,preference:v}}beforeRender(){let[n,h]=this._acceptKeybindings;return this._label.innerText=e(1462,"{0} to Rename, {1} to Preview",this._keybindingService.lookupKeybinding(n)?.getLabel(),this._keybindingService.lookupKeybinding(h)?.getLabel()),this._domNode.style.minWidth="200px",null}afterRender(n){if(n===null){this.cancelInput(!0,"afterRender (because position is null)");return}if(!this._editor.hasModel()||!this._editor.getDomNode())return;Fe(this._renameCandidateListView),Fe(this._nPxAvailableAbove!==void 0),Fe(this._nPxAvailableBelow!==void 0);let h=wl(this._inputWithButton.domNode),g=wl(this._label),p;if(n===2)p=this._nPxAvailableBelow;else p=this._nPxAvailableAbove;this._renameCandidateListView.layout({height:p-g-h,width:Oo(this._inputWithButton.domNode)})}acceptInput(n){this._trace("invoking acceptInput"),this._currentAcceptInput?.(n)}cancelInput(n,h){this._currentCancelInput?.(n)}focusNextRenameSuggestion(){if(!this._renameCandidateListView?.focusNext())this._inputWithButton.input.value=this._currentName}focusPreviousRenameSuggestion(){if(!this._renameCandidateListView?.focusPrevious())this._inputWithButton.input.value=this._currentName}getInput(n,h,g,p,m){let{start:v,end:S}=this._getSelection(n,h);this._renameCts=m;let C=new d;if(this._nRenameSuggestionsInvocations=0,this._hadAutomaticRenameSuggestionsInvocation=!1,p===void 0)this._inputWithButton.button.style.display="none";else this._inputWithButton.button.style.display="flex",this._requestRenameCandidatesOnce=p,this._requestRenameCandidates(h,!1),C.add(c(this._inputWithButton.button,"click",()=>this._requestRenameCandidates(h,!0))),C.add(c(this._inputWithButton.button,E.KEY_DOWN,(T)=>{let R=new Qe(T);if(R.equals(3)||R.equals(10))R.stopPropagation(),R.preventDefault(),this._requestRenameCandidates(h,!0)}));this._isEditingRenameCandidate=!1,this._domNode.classList.toggle("preview",g),this._position=new s(n.startLineNumber,n.startColumn),this._currentName=h,this._inputWithButton.input.value=h,this._inputWithButton.input.setAttribute("selectionStart",v.toString()),this._inputWithButton.input.setAttribute("selectionEnd",S.toString()),this._inputWithButton.input.size=Math.max((n.endColumn-n.startColumn)*1.1,20),this._beforeFirstInputFieldEditSW.reset(),C.add(N(()=>{this._renameCts=void 0,m.dispose(!0)})),C.add(N(()=>{if(this._renameCandidateProvidersCts!==void 0)this._renameCandidateProvidersCts.dispose(!0),this._renameCandidateProvidersCts=void 0})),C.add(N(()=>this._candidates.clear()));let x=new aa;return x.p.finally(()=>{C.dispose(),this._hide()}),this._currentCancelInput=(T)=>(this._trace("invoking _currentCancelInput"),this._currentAcceptInput=void 0,this._currentCancelInput=void 0,this._renameCandidateListView?.clearCandidates(),x.complete(T),!0),this._currentAcceptInput=(T)=>{this._trace("invoking _currentAcceptInput"),Fe(this._renameCandidateListView!==void 0);let R=this._renameCandidateListView.nCandidates,Z,Y,Q=this._renameCandidateListView.focusedCandidate;if(Q!==void 0)this._trace("using new name from renameSuggestion"),Z=Q,Y={k:"renameSuggestion"};else this._trace("using new name from inputField"),Z=this._inputWithButton.input.value,Y=this._isEditingRenameCandidate?{k:"userEditedRenameSuggestion"}:{k:"inputField"};if(Z===h||Z.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(),x.complete({newName:Z,wantsPreview:g&&T,stats:{source:Y,nRenameSuggestions:R,timeBeforeFirstInputFieldEdit:this._timeBeforeFirstInputFieldEdit,nRenameSuggestionsInvocations:this._nRenameSuggestionsInvocations,hadAutomaticRenameSuggestionsInvocation:this._hadAutomaticRenameSuggestionsInvocation}})},C.add(m.token.onCancellationRequested(()=>this.cancelInput(!0,"cts.token.onCancellationRequested"))),C.add(this._editor.onDidBlurEditorWidget(()=>this.cancelInput(!this._domNode?.ownerDocument.hasFocus(),"editor.onDidBlurEditorWidget"))),this._show(),x.p}_requestRenameCandidates(n,h){if(this._requestRenameCandidatesOnce===void 0)return;if(this._renameCandidateProvidersCts!==void 0)this._renameCandidateProvidersCts.dispose(!0);if(Fe(this._renameCts),this._inputWithButton.buttonState!=="stop"){this._renameCandidateProvidersCts=new Ge;let g=h?eg.Invoke:eg.Automatic,p=this._requestRenameCandidatesOnce(g,this._renameCandidateProvidersCts.token);if(p.length===0){this._inputWithButton.setSparkleButton();return}if(!h)this._hadAutomaticRenameSuggestionsInvocation=!0;this._nRenameSuggestionsInvocations+=1,this._inputWithButton.setStopButton(),this._updateRenameCandidates(p,n,this._renameCts.token)}}_getSelection(n,h){Fe(this._editor.hasModel());let g=this._editor.getSelection(),p=0,m=h.length;if(!t.isEmpty(g)&&!t.spansMultipleLines(g)&&t.containsRange(n,g))p=Math.max(0,g.startColumn-n.startColumn),m=Math.min(n.endColumn,g.endColumn)-n.startColumn;return{start:p,end:m}}_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(n,h,g){let p=(...x)=>this._trace("_updateRenameCandidates",...x);p("start");let m=await uc(Promise.allSettled(n),g);if(this._inputWithButton.setSparkleButton(),m===void 0){p("returning early - received updateRenameCandidates results - undefined");return}let v=m.flatMap((x)=>x.status==="fulfilled"&&Qn(x.value)?x.value:[]);p(`received updateRenameCandidates results - total (unfiltered) ${v.length} candidates.`);let S=Rs(v,(x)=>x.newSymbolName);p(`distinct candidates - ${S.length} candidates.`);let C=S.filter(({newSymbolName:x})=>x.trim().length>0&&x!==this._inputWithButton.input.value&&x!==h&&!this._candidates.has(x));if(p(`valid distinct candidates - ${v.length} candidates.`),C.forEach((x)=>this._candidates.add(x.newSymbolName)),C.length<1){p("returning early - no valid distinct candidates");return}p("setting candidates"),this._renameCandidateListView.setCandidates(C),p("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 n=this._editor.getVisibleRanges(),h;if(n.length>0)h=n[0].startLineNumber;else this._logService.warn("RenameWidget#_getTopForPosition: this should not happen - visibleRanges is empty"),h=Math.max(1,this._position.lineNumber-5);return this._editor.getTopForLineNumber(this._position.lineNumber)-this._editor.getTopForLineNumber(h)}_trace(...n){this._logService.trace("RenameWidget",...n)}};mm=GR([pm(2,Be),pm(3,me),pm(4,G),pm(5,Ze)],mm);class Iw{constructor(u,n){this._disposables=new d,this._availableHeight=0,this._minimumWidth=0,this._lineHeight=n.fontInfo.lineHeight,this._typicalHalfwidthCharacterWidth=n.fontInfo.typicalHalfwidthCharacterWidth,this._listContainer=document.createElement("div"),this._listContainer.className="rename-box rename-candidate-list-container",u.appendChild(this._listContainer),this._listWidget=Iw._createListWidget(this._listContainer,this._candidateViewHeight,n.fontInfo),this._disposables.add(this._listWidget.onDidChangeFocus((h)=>{if(h.elements.length===1)n.onFocusChange(h.elements[0].newSymbolName)},this._disposables)),this._disposables.add(this._listWidget.onDidChangeSelection((h)=>{if(h.elements.length===1)n.onSelectionChange()},this._disposables)),this._disposables.add(this._listWidget.onDidBlur((h)=>{this._listWidget.setFocus([])})),this._listWidget.style(wd({listInactiveFocusForeground:fd,listInactiveFocusBackground:md}))}dispose(){this._listWidget.dispose(),this._disposables.dispose()}layout({height:u,width:n}){this._availableHeight=u,this._minimumWidth=n}setCandidates(u){this._listWidget.splice(0,0,u);let n=this._pickListHeight(this._listWidget.length),h=this._pickListWidth(u);this._listWidget.layout(n,h),this._listContainer.style.height=`${n}px`,this._listContainer.style.width=`${h}px`,Ho(e(1463,"Received {0} rename suggestions",u.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 u=this._listWidget.getSelectedElements()[0];if(u!==void 0)return u.newSymbolName;let n=this._listWidget.getFocusedElements()[0];if(n!==void 0)return n.newSymbolName;return}focusNext(){if(this._listWidget.length===0)return!1;let u=this._listWidget.getFocus();if(u.length===0)return this._listWidget.focusFirst(),this._listWidget.reveal(0),!0;else if(u[0]===this._listWidget.length-1)return this._listWidget.setFocus([]),this._listWidget.reveal(0),!1;else{this._listWidget.focusNext();let n=this._listWidget.getFocus()[0];return this._listWidget.reveal(n),!0}}focusPrevious(){if(this._listWidget.length===0)return!1;let u=this._listWidget.getFocus();if(u.length===0){this._listWidget.focusLast();let n=this._listWidget.getFocus()[0];return this._listWidget.reveal(n),!0}else if(u[0]===0)return this._listWidget.setFocus([]),!1;else{this._listWidget.focusPrevious();let n=this._listWidget.getFocus()[0];return this._listWidget.reveal(n),!0}}clearFocus(){this._listWidget.setFocus([])}get _candidateViewHeight(){let{totalHeight:u}=Kc.getLayoutInfo({lineHeight:this._lineHeight});return u}_pickListHeight(u){let n=this._candidateViewHeight*u,h=7;return Math.min(n,this._availableHeight,this._candidateViewHeight*7)}_pickListWidth(u){let n=Math.ceil(Math.max(...u.map((g)=>g.newSymbolName.length))*this._typicalHalfwidthCharacterWidth);return Math.max(this._minimumWidth,25+n+10)}static _createListWidget(u,n,h){let g=new class{getTemplateId(m){return"candidate"}getHeight(m){return n}},p=new class{constructor(){this.templateId="candidate"}renderTemplate(m){return new Kc(m,h)}renderElement(m,v,S){S.populate(m)}disposeTemplate(m){m.dispose()}};return new Co("NewSymbolNameCandidates",u,g,[p],{keyboardSupport:!1,mouseSupport:!0,multipleSelectionSupport:!1})}}class Z1{constructor(){this._buttonHoverContent="",this._disposables=new d,this._onDidInputChange=this._disposables.add(new o),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($i().setupDelayedHover(this._buttonNode,()=>({content:this._buttonHoverContent,style:1}))),this._domNode.appendChild(this._buttonNode),this._disposables.add(c(this.input,E.INPUT,()=>this._onDidInputChange.fire())),this._disposables.add(c(this.input,E.KEY_DOWN,(u)=>{let n=new Qe(u);if(n.keyCode===15||n.keyCode===17)this._onDidInputChange.fire()})),this._disposables.add(c(this.input,E.CLICK,()=>this._onDidInputChange.fire())),this._disposables.add(c(this.input,E.FOCUS,()=>{this.domNode.style.outlineWidth="1px",this.domNode.style.outlineStyle="solid",this.domNode.style.outlineOffset="-1px",this.domNode.style.outlineColor="var(--vscode-focusBorder)"})),this._disposables.add(c(this.input,E.BLUR,()=>{this.domNode.style.outline="none"}));return this._domNode}get input(){return Fe(this._inputNode),this._inputNode}get button(){return Fe(this._buttonNode),this._buttonNode}get buttonState(){return this._buttonState}setSparkleButton(){this._buttonState="sparkle",this._sparkleIcon??=So(_.sparkle),mn(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??=So(_.stopCircle),mn(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 Kc{static{this._PADDING=2}constructor(u,n){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=`${n.lineHeight}px`,this._domNode.style.padding=`${Kc._PADDING}px`;let h=document.createElement("div");h.style.display="flex",h.style.alignItems="center",h.style.width=h.style.height=`${n.lineHeight*0.8}px`,this._domNode.appendChild(h),this._icon=So(_.sparkle),this._icon.style.display="none",h.appendChild(this._icon),this._label=document.createElement("div"),Sn(this._label,n),this._domNode.appendChild(this._label),u.appendChild(this._domNode)}populate(u){this._updateIcon(u),this._updateLabel(u)}_updateIcon(u){let n=!!u.tags?.includes(r1.AIGenerated);this._icon.style.display=n?"inherit":"none"}_updateLabel(u){this._label.innerText=u.newSymbolName}static getLayoutInfo({lineHeight:u}){return{totalHeight:u+Kc._PADDING*2}}dispose(){}}var ZR=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Ed=function(u,n){return function(h,g){n(h,g,u)}},Lw;class tu{constructor(u,n,h){this.model=u,this.position=n,this._providerRenameIdx=0,this._providers=h.ordered(u)}hasProvider(){return this._providers.length>0}async resolveRenameLocation(u){let n=[];for(this._providerRenameIdx=0;this._providerRenameIdx<this._providers.length;this._providerRenameIdx++){let g=this._providers[this._providerRenameIdx];if(!g.resolveRenameLocation)break;let p=await g.resolveRenameLocation(this.model,this.position,u);if(!p)continue;if(p.rejectReason){n.push(p.rejectReason);continue}return p}this._providerRenameIdx=0;let h=this.model.getWordAtPosition(this.position);if(!h)return{range:t.fromPositions(this.position),text:"",rejectReason:n.length>0?n.join(`
|
|
38
|
+
`):void 0};return{range:new t(this.position.lineNumber,h.startColumn,this.position.lineNumber,h.endColumn),text:h.word,rejectReason:n.length>0?n.join(`
|
|
39
|
+
`):void 0}}async provideRenameEdits(u,n){return this._provideRenameEdits(u,this._providerRenameIdx,[],n)}async _provideRenameEdits(u,n,h,g){let p=this._providers[n];if(!p)return{edits:[],rejectReason:h.join(`
|
|
40
|
+
`)};let m=await p.provideRenameEdits(this.model,this.position,u,g);if(!m)return this._provideRenameEdits(u,n+1,h.concat(e(1449,"No result.")),g);else if(m.rejectReason)return this._provideRenameEdits(u,n+1,h.concat(m.rejectReason),g);return m}}function X1(u,n){return u.ordered(n).length>0}async function Q1(u,n,h,g,p){return new tu(n,h,u).provideRenameEdits(g,p??ye.None)}async function XR(u,n,h,g){let p=new tu(n,h,u),m=await p.resolveRenameLocation(ye.None);if(m?.rejectReason)return{edits:[],rejectReason:m.rejectReason};return p.provideRenameEdits(g,ye.None)}var Qs=class u{static{Lw=this}static{this.ID="editor.contrib.renameController"}static get(n){return n.getContribution(Lw.ID)}constructor(n,h,g,p,m,v,S,C){this.editor=n,this._instaService=h,this._notificationService=g,this._bulkEditService=p,this._progressService=m,this._logService=v,this._configService=S,this._languageFeaturesService=C,this._disposableStore=new d,this._cts=new Ge,this._renameWidget=this._disposableStore.add(this._instaService.createInstance(mm,this.editor,["acceptRenameInput","acceptRenameInputWithPreview"]))}dispose(){this._disposableStore.dispose(),this._cts.dispose(!0)}async run(){let n=this._logService.trace.bind(this._logService,"[rename]");if(this._cts.dispose(!0),this._cts=new Ge,!this.editor.hasModel()){n("editor has no model");return}let h=this.editor.getPosition(),g=new tu(this.editor.getModel(),h,this._languageFeaturesService.renameProvider);if(!g.hasProvider()){n("skeleton has no provider");return}let p=new Cs(this.editor,5,void 0,this._cts.token),m;try{n("resolving rename location");let Q=g.resolveRenameLocation(p.token);this._progressService.showWhile(Q,250),m=await Q,n("resolved rename location")}catch(Q){if(Q instanceof Rr)n("resolve rename location cancelled",JSON.stringify(Q,null,"\t"));else if(n("resolve rename location failed",Q instanceof Error?Q:JSON.stringify(Q,null,"\t")),typeof Q==="string"||jr(Q))ci.get(this.editor)?.showMessage(Q||e(1450,"An unknown error occurred while resolving rename location"),h);return}finally{p.dispose()}if(!m){n("returning early - no loc");return}if(m.rejectReason){n(`returning early - rejected with reason: ${m.rejectReason}`,m.rejectReason),ci.get(this.editor)?.showMessage(m.rejectReason,h);return}if(p.token.isCancellationRequested){n("returning early - cts1 cancelled");return}let v=new Cs(this.editor,5,m.range,this._cts.token),S=this.editor.getModel(),C=this._languageFeaturesService.newSymbolNamesProvider.all(S),x=await Promise.all(C.map(async(Q)=>[Q,await Q.supportsAutomaticNewSymbolNamesTriggerKind??!1])),T=(Q,te)=>{let oe=x.slice();if(Q===eg.Automatic)oe=oe.filter(([ne,he])=>he);return oe.map(([ne])=>ne.provideNewSymbolNames(S,m.range,Q,te))};n("creating rename input field and awaiting its result");let R=this._bulkEditService.hasPreviewHandler()&&this._configService.getValue(this.editor.getModel().uri,"editor.rename.enablePreview"),Z=await this._renameWidget.getInput(m.range,m.text,R,C.length>0?T:void 0,v);if(n("received response from rename input field"),typeof Z==="boolean"){if(n(`returning early - rename input field response - ${Z}`),Z)this.editor.focus();v.dispose();return}this.editor.focus(),n("requesting rename edits");let Y=uc(g.provideRenameEdits(Z.newName,v.token),v.token).then(async(Q)=>{if(!Q){n("returning early - no rename edits result");return}if(!this.editor.hasModel()){n("returning early - no model after rename edits are provided");return}if(Q.rejectReason){n(`returning early - rejected with reason: ${Q.rejectReason}`),this._notificationService.info(Q.rejectReason);return}this.editor.setSelection(t.fromPositions(this.editor.getSelection().getPosition())),n("applying edits"),this._bulkEditService.apply(Q,{editor:this.editor,showPreview:Z.wantsPreview,label:e(1451,"Renaming '{0}' to '{1}'",m?.text,Z.newName),code:"undoredo.rename",quotableLabel:e(1452,"Renaming {0} to {1}",m?.text,Z.newName),respectAutoSaveConfig:!0,reason:Jn.rename(m?.text,Z.newName)}).then((te)=>{if(n("edits applied"),te.ariaSummary)zn(e(1453,"Successfully renamed '{0}' to '{1}'. Summary: {2}",m.text,Z.newName,te.ariaSummary))}).catch((te)=>{n(`error when applying edits ${JSON.stringify(te,null,"\t")}`),this._notificationService.error(e(1454,"Rename failed to apply edits")),this._logService.error(te)})},(Q)=>{n("error when providing rename edits",JSON.stringify(Q,null,"\t")),this._notificationService.error(e(1455,"Rename failed to compute edits")),this._logService.error(Q)}).finally(()=>{v.dispose()});return n("returning rename operation"),this._progressService.showWhile(Y,250),Y}acceptRenameInput(n){this._renameWidget.acceptInput(n)}cancelRenameInput(){this._renameWidget.cancelInput(!0,"cancelRenameInput command")}focusNextRenameSuggestion(){this._renameWidget.focusNextRenameSuggestion()}focusPreviousRenameSuggestion(){this._renameWidget.focusPreviousRenameSuggestion()}};Qs=Lw=ZR([Ed(1,A),Ed(2,wt),Ed(3,Ec),Ed(4,Hs),Ed(5,Ze),Ed(6,Zv),Ed(7,z)],Qs);class eE extends U{constructor(){super({id:"editor.action.rename",label:b(1457,"Rename Symbol"),precondition:L.and(r.writable,r.hasRenameProvider),kbOpts:{kbExpr:r.editorTextFocus,primary:60,weight:100},contextMenuOpts:{group:"1_modification",order:1.1},canTriggerInlineEdits:!0})}runCommand(u,n){let h=u.get(Ee),[g,p]=Array.isArray(n)&&n||[void 0,void 0];if(q.isUri(g)&&s.isIPosition(p))return h.openCodeEditor({resource:g},h.getActiveCodeEditor()).then((m)=>{if(!m)return;m.setPosition(p),m.invokeWithinContext((v)=>(this.reportTelemetry(v,m),this.run(v,m)))},X);return super.runCommand(u,n)}run(u,n){let h=u.get(Ze),g=Qs.get(n);if(g)return h.trace("[RenameAction] got controller, running..."),g.run();return h.trace("[RenameAction] returning early - controller missing"),Promise.resolve()}}fe(Qs.ID,Qs,4);O(eE);var kw=nn.bindToContribution(Qs.get);K(new kw({id:"acceptRenameInput",precondition:kd,handler:(u)=>u.acceptRenameInput(!1),kbOpts:{weight:199,kbExpr:r.focus,primary:3}}));K(new kw({id:"acceptRenameInputWithPreview",precondition:L.and(kd,L.has("config.editor.rename.enablePreview")),handler:(u)=>u.acceptRenameInput(!0),kbOpts:{weight:199,kbExpr:r.focus,primary:2051}}));K(new kw({id:"cancelRenameInput",precondition:kd,handler:(u)=>u.cancelRenameInput(),kbOpts:{weight:199,kbExpr:r.focus,primary:9,secondary:[1033]}}));lt(class u extends Cn{constructor(){super({id:"focusNextRenameSuggestion",title:{...b(1458,"Focus Next Rename Suggestion")},precondition:kd,keybinding:[{primary:18,weight:199}]})}run(n){let h=n.get(Ee).getFocusedCodeEditor();if(!h)return;let g=Qs.get(h);if(!g)return;g.focusNextRenameSuggestion()}});lt(class u extends Cn{constructor(){super({id:"focusPreviousRenameSuggestion",title:{...b(1459,"Focus Previous Rename Suggestion")},precondition:kd,keybinding:[{primary:16,weight:199}]})}run(n){let h=n.get(Ee).getFocusedCodeEditor();if(!h)return;let g=Qs.get(h);if(!g)return;g.focusPreviousRenameSuggestion()}});Po("_executeDocumentRenameProvider",function(u,n,h,...g){let[p]=g;Fe(typeof p==="string");let{renameProvider:m}=u.get(z);return XR(m,n,h,p)});Po("_executePrepareRename",async function(u,n,h){let{renameProvider:g}=u.get(z),m=await new tu(n,h,g).resolveRenameLocation(ye.None);if(m?.rejectReason)throw Error(m.rejectReason);return m});ht.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 YR=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Uc=function(u,n){return function(h,g){n(h,g,u)}},Yr;(function(u){u.no="no",u.yes="yes",u.maybe="maybe"})(Yr||(Yr={}));(function(u){function n(h){switch(h){case"no":return u.no;case"yes":return u.yes;case"maybe":return u.maybe;default:return u.no}}u.fromString=n})(Yr||(Yr={}));class tE{constructor(){}inferRename(u,n,h,g){let p=new t(n.startLineNumber,1,n.endLineNumber,u.getLineMaxColumn(n.endLineNumber)),m=n.startColumn-p.startColumn,v=p.endColumn-n.endColumn,S=u.getValueInRange(p),C=u.getValueInRange(new t(p.startLineNumber,p.startColumn,p.startLineNumber,p.startColumn+m))+h+u.getValueInRange(new t(p.endLineNumber,p.endColumn-v,p.endLineNumber,p.endColumn)),x=[],T=[],R=void 0,Z=void 0,Y=void 0,Q=u.getOffsetAt(p.getStartPosition()),{changes:te}=new ca(new Jv(S),new Jv(C)).ComputeDiff(!0);if(te.length===0)return;let oe=[];for(let ge of te){if(oe.length===0){oe.push(ge);continue}let _e=oe[oe.length-1],Se=ge.originalStart-(_e.originalStart+_e.originalLength);if(Se>0){let ae=Q+_e.originalStart+_e.originalLength,pe=u.getPositionAt(ae),Me=u.getWordAtPosition(pe);if(Me){let Ae=u.getOffsetAt(new s(pe.lineNumber,Me.startColumn)),We=u.getOffsetAt(new s(pe.lineNumber,Me.endColumn)),Ie=ae+Se;if(Ae<=ae&&Ie<=We&&Ae<=Ie&&Ie<=We){_e.originalLength=ge.originalStart+ge.originalLength-_e.originalStart,_e.modifiedLength=ge.modifiedStart+ge.modifiedLength-_e.modifiedStart;continue}}}oe.push(ge)}let ne=0;for(let ge of oe){let _e=S.substring(ge.originalStart,ge.originalStart+ge.originalLength),Se=C.substring(ge.modifiedStart,ge.modifiedStart+ge.modifiedLength),ae=Q+ge.originalStart,pe=u.getPositionAt(ae),Me=ae+ge.originalLength,Ae=u.getPositionAt(Me),We=t.fromPositions(pe,Ae),Ie=Se.length-ge.originalLength;if(/\s/.test(_e)){x.push(new bt(We,Se)),ne+=Ie;continue}if(_e.length>0){g.lastIndex=0;let $e=g.exec(_e);if($e===null||$e.index!==0||$e[0].length!==_e.length){x.push(new bt(We,Se)),ne+=Ie;continue}}if(/\s/.test(Se)){x.push(new bt(We,Se)),ne+=Ie;continue}if(Se.length>0){g.lastIndex=0;let $e=g.exec(Se);if($e===null||$e.index!==0||$e[0].length!==Se.length){x.push(new bt(We,Se)),ne+=Ie;continue}}let Ve=u.getWordAtPosition(pe);if(Ve===null){x.push(new bt(We,Se)),ne+=Ie;continue}let tt=ge.originalStart+1,qe=ge.originalLength===0&&ge.modifiedLength>0,rt;if(qe&&tt===Ve.endColumn&&Ve.endColumn>Ve.startColumn)rt=this.getTokenAtPosition(u,new s(pe.lineNumber,Ve.startColumn));else rt=this.getTokenAtPosition(u,pe);if(Ve.startColumn!==rt.range.startColumn||Ve.endColumn!==rt.range.endColumn){x.push(new bt(We,Se)),ne+=Ie;continue}if(rt.type===0){let $e=u.getValueInRange(rt.range);if($e.length===0){x.push(new bt(We,Se)),ne+=Ie;continue}if(R===void 0)R=$e;else if(R!==$e){x.push(new bt(We,Se)),ne+=Ie;continue}let Ot=u.getOffsetAt(rt.range.getStartPosition())-Q+ne,it=u.getOffsetAt(rt.range.getEndPosition())-Q+ne;if($e=C.substring(Ot,it+Ie),$e.length===0){x.push(new bt(We,Se)),ne+=Ie;continue}if(Z===void 0)Z=$e;else if(Z!==$e){x.push(new bt(We,Se)),ne+=Ie;continue}if(Y===void 0)Y=rt.range.getStartPosition();if(R!==void 0&&Z!==void 0&&R.length>0&&Z.length>0&&R!==Z)T.push(new bt(rt.range,Z));else T.push(new bt(We,Se));ne+=Ie}else x.push(new bt(We,Se)),ne+=Se.length-ge.originalLength}if(R===void 0||Z===void 0||Y===void 0||R.length===0||Z.length===0||R===Z)return;g.lastIndex=0;let he=g.exec(R);if(he===null||he.index!==0||he[0].length!==R.length)return;if(g.lastIndex=0,he=g.exec(Z),he===null||he.index!==0||he[0].length!==Z.length)return;return{renames:{edits:T,position:Y,oldName:R,newName:Z},others:{edits:x}}}getTokenAtPosition(u,n){u.tokenization.tokenizeIfCheap(n.lineNumber);let h=u.tokenization.getLineTokens(n.lineNumber),g=h.findTokenIndexAtOffset(n.column-1);return{type:h.getStandardTokenType(g),range:new t(n.lineNumber,1+h.getStartOffset(g),n.lineNumber,1+h.getEndOffset(g))}}}class uu{static create(u,n){let h=u.getFocusedCodeEditor();if(h===null)return;if(h.getModel()!==n)return;return new uu(h,n.getVersionId())}constructor(u,n){this.editor=u,this.versionId=n}equals(u){if(u===void 0)return!1;return this.editor===u.editor&&this.versionId===u.versionId}}class iE{constructor(u,n,h,g,p,m,v,S,C){if(this._result=void 0,this._commandService=n,this._textModel=g,this._state=p,this._requestUuid=h,this._cancellationTokenSource=new Ge,S===void 0||C===void 0){this._promise=Q1(u.renameProvider,g,m,v,this._cancellationTokenSource.token);return}else this._promise=this.sendNesRenameRequest(g,m,C,v,S)}get requestUuid(){return this._requestUuid}isValid(u){return this._state.equals(uu.create(u,this._textModel))}cancel(){this._cancellationTokenSource.cancel()}async getCount(){if(this._cancellationTokenSource.token.isCancellationRequested)return 0;let u=await this.getResult();if(u===void 0||this._cancellationTokenSource.token.isCancellationRequested)return 0;return u.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(u,n,h,g,p){try{let m=await this._commandService.executeCommand("github.copilot.nes.postRename",u.uri,n,h,g,p);if(m===void 0)return{rejectReason:"Rename failed",edits:[]};let v=[];for(let S of m)for(let C of S.changes){let x=new t(C.range.start.line+1,C.range.start.character+1,C.range.end.line+1,C.range.end.character+1),T=new Tc(S.file,new bt(x,C.newText??g));v.push(T)}return{edits:v}}catch(m){return{rejectReason:"Rename failed",edits:[]}}}}var fm=class u extends i{constructor(n,h,g,p,m,v){super();this._commandService=n,this._languageFeaturesService=h,this._languageConfigurationService=g,this._renameSymbolTrackerService=m,this._codeEditorService=v,this._renameInferenceEngine=new tE,this._renameRunnable=void 0,this._register(Te.registerCommand(Wb,async(S,C,x)=>{if(x===void 0||!x.isValid(this._codeEditorService))return;try{let T=await x.getWorkspaceEdit();if(T===void 0)return;p.apply(T,{reason:C})}finally{if(this._renameRunnable===x)this._renameRunnable=void 0}}))}async proposeRenameRefactoring(n,h,g){if(!h.supportsRename||h.action?.kind!=="edit"||g.selectedSuggestionInfo)return h;if(!X1(this._languageFeaturesService.renameProvider,n))return h;let p=uu.create(this._codeEditorService,n);if(p===void 0)return h;let m=Date.now(),v=h.action.textReplacement,S=this._languageConfigurationService.getLanguageConfiguration(n.getLanguageId()),C=this._renameInferenceEngine.inferRename(n,v.range,v.text,S.wordDefinition);if(C===void 0||C.renames.edits.length===0)return h;let{oldName:x,newName:T,position:R,edits:Z}=C.renames,Y=this._renameSymbolTrackerService.trackedWord.get(),Q=void 0;if(Y!==void 0&&Y.model===n&&Y.originalWord===x&&Y.currentWord===T)Q=Y.currentRange;let te=!1,oe=await bM(this.checkRenamePrecondition(h,n,R,x,T,Q),100,()=>{te=!0}),ne=this.isRenamePossible(h,oe,p,n);if(h.setRenameProcessingInfo({createdRename:ne,duration:Date.now()-m,timedOut:te,droppedOtherEdits:ne?C.others.edits.length:void 0,droppedRenameEdits:ne?Z.length-1:void 0}),!ne)return h;if(this._renameRunnable===void 0)this._renameRunnable=new iE(this._languageFeaturesService,this._commandService,h.requestUuid,n,p,R,T,Q,Q!==void 0?x:void 0);let he=Jn.inlineCompletionAccept({nes:h.isInlineEdit,requestUuid:h.requestUuid,providerId:h.source.provider.providerId,languageId:n.getLanguageId(),correlationId:h.getSourceCompletion().correlationId}),ge={id:Wb,title:e(1274,"Rename"),arguments:[he,this._renameRunnable]},_e={label:e(1275,"Rename"),icon:_.replaceAll,command:ge,count:this._renameRunnable.getCount()},Se={kind:"edit",range:Z[0].range,insertText:Z[0].text,snippetInfo:h.snippetInfo,alternativeAction:_e,uri:n.uri},ae=Cr.snapshot(n);return Vc.create(h.withAction(Se),ae,!1)}async checkRenamePrecondition(n,h,g,p,m,v){let S={canRename:Yr.no,timedOut:!1};try{let C=await this._commandService.executeCommand("github.copilot.nes.prepareRename",h.uri,g,p,m,n.requestUuid,v);if(C===void 0)return S;else if(typeof C==="string"){let x=Yr.fromString(C);if(x===Yr.yes||x===Yr.maybe)return{canRename:x,oldName:p,onOldState:!1};else return{canRename:x,timedOut:!1}}else return C}catch(C){return S}}isRenamePossible(n,h,g,p){if(h===void 0||h.canRename===Yr.no)return!1;if(!g.equals(uu.create(this._codeEditorService,p)))return!1;if(this._renameRunnable===void 0)return!0;if(this._renameRunnable.requestUuid===n.requestUuid)return!1;else return this._renameRunnable.cancel(),this._renameRunnable=void 0,!0}};fm=YR([Uc(0,Ue),Uc(1,z),Uc(2,ut),Uc(3,Ec),Uc(4,Y1),Uc(5,Ee)],fm);var JR=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},qc=function(u,n){return function(h,g){n(h,g,u)}},Ew,_m=class u extends i{static{Ew=this}static{this._requestId=0}constructor(n,h,g,p,m,v,S,C,x,T,R){super();if(this._textModel=n,this._versionId=h,this._debounceValue=g,this._cursorPosition=p,this._languageConfigurationService=v,this._logService=S,this._configurationService=C,this._instantiationService=x,this._contextKeyService=T,this._textModelService=R,this._updateOperation=this._register(new ce),this._state=jk(this,{initial:()=>({inlineCompletions:ko.createEmpty(),suggestWidgetInlineCompletions:ko.createEmpty()}),disposeFinal:(Z)=>{Z.inlineCompletions.dispose(),Z.suggestWidgetInlineCompletions.dispose()},changeTracker:KM(()=>({versionId:this._versionId})),update:(Z,Y,Q)=>{let te=_o.compose(Q.changes.map((oe)=>oe.change?$1(oe.change.changes):_o.empty).filter(Qn));if(te.isEmpty())return Y;try{return{inlineCompletions:Y.inlineCompletions.createStateWithAppliedEdit(te,this._textModel),suggestWidgetInlineCompletions:Y.suggestWidgetInlineCompletions.createStateWithAppliedEdit(te,this._textModel)}}finally{Y.inlineCompletions.dispose(),Y.suggestWidgetInlineCompletions.dispose()}}}),this.inlineCompletions=this._state.map(this,(Z)=>Z.inlineCompletions),this.suggestWidgetInlineCompletions=this._state.map(this,(Z)=>Z.suggestWidgetInlineCompletions),this._completionsEnabled=void 0,this.clearOperationOnTextModelChange=f(this,(Z)=>{this._versionId.read(Z),this._updateOperation.clear();return}),this._loadingCount=j(this,0),this.loading=this._loadingCount.map(this,(Z)=>Z>0),this._dataChannelTelemetryService=this._instantiationService.createInstance(am),this._loggingEnabled=FI("editor.inlineSuggest.logFetch",!1,this._configurationService).recomputeInitiallyAndOnChange(this._store),this._sendRequestData=FI("editor.inlineSuggest.emptyResponseInformation",!0,this._configurationService).recomputeInitiallyAndOnChange(this._store),this._structuredFetchLogger=this._register(this._instantiationService.createInstance(Wc.cast(),"editor.inlineSuggest.logFetch.commandId")),this._renameProcessor=this._store.add(this._instantiationService.createInstance(fm)),this.clearOperationOnTextModelChange.recomputeInitiallyAndOnChange(this._store),m)this._updateCompletionsEnablement(m),this._register(this._configurationService.onDidChangeConfiguration((Z)=>{if(Z.affectsConfiguration(m))this._updateCompletionsEnablement(m)}));this._state.recomputeInitiallyAndOnChange(this._store)}_updateCompletionsEnablement(n){let h=this._configurationService.getValue(n);if(!dn(h))this._completionsEnabled=void 0;else this._completionsEnabled=h}_log(n){if(this._loggingEnabled.get())this._logService.info(Ak(n));this._structuredFetchLogger.log(n)}fetch(n,h,g,p,m,v,S){let C=this._cursorPosition.get(),x=new oE(C,g,this._textModel.getVersionId(),new Set(n)),T=g.selectedSuggestionInfo?this.suggestWidgetInlineCompletions.get():this.inlineCompletions.get();if(this._updateOperation.value?.request.satisfies(x))return this._updateOperation.value.promise;else if(T?.request?.satisfies(x))return Promise.resolve(!0);let R=!!this._updateOperation.value;this._updateOperation.clear();let Z=new Ge,Y=(async()=>{let te=new d;this._loadingCount.set(this._loadingCount.get()+1,void 0);let oe=!1,ne=()=>{if(!oe)oe=!0,this._loadingCount.set(this._loadingCount.get()-1,void 0)};te.add(new Ce(()=>ne(),1e4)).schedule();let ge=n.filter((Se)=>Se.providerId),_e=new nE(g,S,ge);try{let Se=this._debounceValue.get(this._textModel),ae=m1(n.map((it)=>it.debounceDelayMs),lM(Vi))??Se;if(R||m&&g.triggerKind===hr.Automatic)await pw(ae,Z.token);if(Z.token.isCancellationRequested||this._store.isDisposed||this._textModel.getVersionId()!==x.versionId)return _e.setNoSuggestionReasonIfNotSet("canceled:beforeFetch"),!1;let Me=Ew._requestId++;if(this._loggingEnabled.get()||this._structuredFetchLogger.isEnabled.get())this._log({sourceId:"InlineCompletions.fetch",kind:"start",requestId:Me,modelUri:this._textModel.uri,modelVersion:this._textModel.getVersionId(),context:{triggerKind:g.triggerKind,suggestInfo:g.selectedSuggestionInfo?!0:void 0},time:Date.now(),provider:h});let Ae=new Date,We=f1(n,this._cursorPosition.get(),this._textModel,g,S,this._languageConfigurationService);xw(Z.token,()=>We.cancelAndDispose({kind:"tokenCancellation"}));let Ie=!1,Ve=!1,tt=[];for await(let it of We.lists){if(!it)continue;it.addRef(),te.add(N(()=>it.removeRef(it.inlineSuggestionsData.length===0?{kind:"empty"}:{kind:"notTaken"})));for(let mt of it.inlineSuggestionsData){if(Ve=!0,!g.includeInlineEdits&&(mt.isInlineEdit||mt.showInlineEditMenu)){mt.setNotShownReason("notInlineEditRequested");continue}if(!g.includeInlineCompletions&&!(mt.isInlineEdit||mt.showInlineEditMenu)){mt.setNotShownReason("notInlineCompletionRequested");continue}mt.addPerformanceMarker("providerReturned");let At=mt.action?.uri,St,vt;if(At&&At.toString()!==this._textModel.uri.toString()){let It=await this._textModelService.createModelReference(At);St=It.object.textEditorModel,vt=It}else St=this._textModel,vt=void 0;let Wt=Cr.snapshot(St),Pt=Vc.create(mt,Wt);if(vt){let It=Pr(Pt.identity.onDispose,()=>{vt?.dispose(),It.dispose()})}if(mt.addPerformanceMarker("itemCreated"),tt.push(Pt),!Pt.isInlineEdit&&!Pt.showInlineEditMenu&&g.triggerKind===hr.Automatic){if(Pt.isVisible(this._textModel,this._cursorPosition.get()))Ie=!0}}if(Ie)break}tt.forEach((it)=>it.addPerformanceMarker("providersResolved"));let qe=await Promise.all(tt.map(async(it)=>this._renameProcessor.proposeRenameRefactoring(this._textModel,it,g)));if(qe.forEach((it)=>it.addPerformanceMarker("renameProcessed")),We.cancelAndDispose({kind:"lostRace"}),this._loggingEnabled.get()||this._structuredFetchLogger.isEnabled.get()){let it=We.didAllProvidersReturn,mt=void 0;if(Z.token.isCancellationRequested||this._store.isDisposed||this._textModel.getVersionId()!==x.versionId)mt="canceled";let At=qe.map((St)=>{let vt=St.getSourceCompletion();if(vt.doNotLog)return;let Wt={insertText:vt.insertText,range:vt.range,additionalTextEdits:vt.additionalTextEdits,uri:vt.uri,command:vt.command,gutterMenuLinkAction:vt.gutterMenuLinkAction,shownCommand:vt.shownCommand,completeBracketPairs:vt.completeBracketPairs,isInlineEdit:vt.isInlineEdit,showInlineEditMenu:vt.showInlineEditMenu,showRange:vt.showRange,warning:vt.warning,hint:vt.hint,supportsRename:vt.supportsRename,correlationId:vt.correlationId,jumpToPosition:vt.jumpToPosition};return{...jv(Wt,(Pt)=>{if(t.isIRange(Pt))return t.lift(Pt).toString();if(s.isIPosition(Pt))return s.lift(Pt).toString();if(Wv.is(Pt))return{$commandId:Pt.id};return Pt}),$providerId:St.source.provider.providerId?.toString()}}).filter((St)=>St!==void 0);this._log({sourceId:"InlineCompletions.fetch",kind:"end",requestId:Me,durationMs:Date.now()-Ae.getTime(),error:mt,result:At,time:Date.now(),didAllProvidersReturn:it})}if(_e.setRequestUuid(We.contextWithUuid.requestUuid),Ve){if(_e.setHasProducedSuggestion(),qe.length>0&&Z.token.isCancellationRequested)qe.forEach((it)=>it.setNotShownReasonIfNotSet("canceled:whileAwaitingOtherProviders"))}else if(Z.token.isCancellationRequested)_e.setNoSuggestionReasonIfNotSet("canceled:whileFetching");else{let it=this._contextKeyService.getContextKeyValue("completionsQuotaExceeded");_e.setNoSuggestionReasonIfNotSet(it?"completionsQuotaExceeded":"noSuggestion")}let rt=g.earliestShownDateTime-Date.now();if(rt>0)await pw(rt,Z.token);if(qe.forEach((it)=>it.addPerformanceMarker("minShowDelayPassed")),Z.token.isCancellationRequested||this._store.isDisposed||this._textModel.getVersionId()!==x.versionId||v.get()){let it=Z.token.isCancellationRequested?"canceled:afterMinShowDelay":this._store.isDisposed?"canceled:disposed":this._textModel.getVersionId()!==x.versionId?"canceled:documentChanged":v.get()?"canceled:userJumped":"unknown";return qe.forEach((mt)=>mt.setNotShownReasonIfNotSet(it)),!1}let $e=new Date;this._debounceValue.update(this._textModel,$e.getTime()-Ae.getTime());let Ot=this._cursorPosition.get();this._updateOperation.clear(),Ye((it)=>{let mt=this._state.get();if(g.selectedSuggestionInfo)this._state.set({inlineCompletions:ko.createEmpty(),suggestWidgetInlineCompletions:mt.suggestWidgetInlineCompletions.createStateWithAppliedResults(qe,x,this._textModel,Ot,p)},it);else this._state.set({inlineCompletions:mt.inlineCompletions.createStateWithAppliedResults(qe,x,this._textModel,Ot,p),suggestWidgetInlineCompletions:ko.createEmpty()},it);mt.inlineCompletions.dispose(),mt.suggestWidgetInlineCompletions.dispose()})}finally{te.dispose(),ne(),this._sendInlineCompletionsRequestTelemetry(_e)}return!0})(),Q=new rE(x,Z,Y);return this._updateOperation.value=Q,Y}clear(n){if(this._store.isDisposed)return;this._updateOperation.clear();let h=this._state.get();this._state.set({inlineCompletions:ko.createEmpty(),suggestWidgetInlineCompletions:ko.createEmpty()},n),h.inlineCompletions.dispose(),h.suggestWidgetInlineCompletions.dispose()}seedInlineCompletionsWithSuggestWidget(){let n=this.inlineCompletions.get(),h=this.suggestWidgetInlineCompletions.get();if(!h)return;Ye((g)=>{if(!n||(h.request?.versionId??-1)>(n.request?.versionId??-1)){n?.dispose();let p=this._state.get();this._state.set({inlineCompletions:h.clone(),suggestWidgetInlineCompletions:ko.createEmpty()},g),p.inlineCompletions.dispose(),p.suggestWidgetInlineCompletions.dispose()}this.clearSuggestWidgetInlineCompletions(g)})}seedWithCompletion(n,h){let g=this._state.get();this._state.set({inlineCompletions:new ko([n],void 0),suggestWidgetInlineCompletions:ko.createEmpty()},h),g.inlineCompletions.dispose(),g.suggestWidgetInlineCompletions.dispose()}_sendInlineCompletionsRequestTelemetry(n){if(!this._sendRequestData.get()&&!this._contextKeyService.getContextKeyValue("isRunningUnificationExperiment"))return;if(n.requestUuid===void 0||n.hasProducedSuggestion)return;if(!$I(this._completionsEnabled,this._textModel.getLanguageId()))return;if(!n.providers.some((g)=>ww(g.providerId?.extensionId)))return;let h={opportunityId:n.requestUuid,noSuggestionReason:n.noSuggestionReason??"unknown",extensionId:"vscode-core",extensionVersion:"0.0.0",groupId:"empty",shown:!1,skuPlan:n.requestInfo.sku?.plan,skuType:n.requestInfo.sku?.type,editorType:n.requestInfo.editorType,requestReason:n.requestInfo.reason,typingInterval:n.requestInfo.typingInterval,typingIntervalCharacterCount:n.requestInfo.typingIntervalCharacterCount,languageId:n.requestInfo.languageId,selectedSuggestionInfo:!!n.context.selectedSuggestionInfo,availableProviders:n.providers.map((g)=>g.providerId?.toString()).filter(Qn).join(","),...Zk(n.providers.some((g)=>ww(g.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};Xk(this._dataChannelTelemetryService,h)}clearSuggestWidgetInlineCompletions(n){if(this._updateOperation.value?.request.context.selectedSuggestionInfo)this._updateOperation.clear()}cancelUpdate(){this._updateOperation.clear()}};_m=Ew=JR([qc(5,ut),qc(6,Ze),qc(7,re),qc(8,A),qc(9,G),qc(10,Dn)],_m);class oE{constructor(u,n,h,g){this.position=u,this.context=n,this.versionId=h,this.providers=g}satisfies(u){return this.position.equals(u.position)&&SI(this.context.selectedSuggestionInfo,u.context.selectedSuggestionInfo,cf())&&(u.context.triggerKind===hr.Automatic||this.context.triggerKind===hr.Explicit)&&this.versionId===u.versionId&&QR(u.providers,this.providers)}}class nE{constructor(u,n,h){this.context=u,this.requestInfo=n,this.providers=h,this.hasProducedSuggestion=!1}setRequestUuid(u){this.requestUuid=u}setNoSuggestionReasonIfNotSet(u){this.noSuggestionReason??=u}setHasProducedSuggestion(){this.hasProducedSuggestion=!0}}function QR(u,n){return[...u].every((h)=>n.has(h))}class rE{constructor(u,n,h){this.request=u,this.cancellationTokenSource=n,this.promise=h}dispose(){this.cancellationTokenSource.cancel()}}class ko extends i{static createEmpty(){return new ko([],void 0)}constructor(u,n){super();this.inlineCompletions=u,this.request=n;for(let h of this.inlineCompletions)h.addRef();this._register({dispose:()=>{for(let h of this.inlineCompletions)h.removeRef()}})}_findById(u){return this.inlineCompletions.find((n)=>n.identity===u)}_findByHash(u){return this.inlineCompletions.find((n)=>n.hash===u)}createStateWithAppliedEdit(u,n){let h=this.inlineCompletions.map((g)=>g.withEdit(u,n)).filter(Qn);return new ko(h,this.request)}createStateWithAppliedResults(u,n,h,g,p){let m=void 0;if(p){let C=this._findById(p);if(C&&C.canBeReused(h,n.position)){m=C;let x=u.find((T)=>T.hash===C.hash);if(x)u=tN(x,u);else u=[C,...u]}}let v=m?!m.isInlineEdit:u.some((C)=>!C.isInlineEdit&&C.isVisible(h,g)),S=[];for(let C of u){let x=this._findByHash(C.hash),T;if(x&&x!==C)T=C.withIdentity(x.identity),C.setIsPreceeded(x),x.setEndOfLifeReason({kind:gl.Ignored,userTypingDisagreed:!1,supersededBy:C.getSourceCompletion()});else T=C;if(v!==T.isInlineEdit)S.push(T)}return S.sort(jn((C)=>C.showInlineEditMenu,n1)),S=eN(S,(C)=>C.semanticId),new ko(S,n)}clone(){return new ko(this.inlineCompletions,this.request)}}function eN(u,n){let h=new Set;return u.filter((g)=>{let p=n(g);if(h.has(p))return!1;return h.add(p),!0})}function tN(u,n){let h=n.indexOf(u);if(h>-1)return[u,...n.slice(0,h),...n.slice(h+1)];return n}class Jr extends i{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(u){super();this._textModel=u,this._typingSessions=[],this._currentSession=null,this._lastChangeTime=0,this._cachedTypingIntervalResult=null,this._cacheInvalidated=!0,this._register(this._textModel.onDidChangeContent((n)=>this._updateTypingSpeed(n)))}_updateTypingSpeed(u){let n=Date.now();if(!this._isUserTyping(u)){this._finalizeCurrentSession();return}if(this._currentSession&&n-this._lastChangeTime>Jr.MAX_SESSION_GAP_MS)this._finalizeCurrentSession();if(!this._currentSession)this._currentSession={startTime:n,endTime:n,characterCount:0};this._currentSession.endTime=n,this._currentSession.characterCount+=this._getActualCharacterCount(u),this._lastChangeTime=n,this._cacheInvalidated=!0}_getActualCharacterCount(u){let n=0;for(let h of u.changes)n+=Math.max(h.text.length,h.rangeLength);return n}_isUserTyping(u){if(!u.detailedReasons||u.detailedReasons.length===0)return!1;for(let n of u.detailedReasons)if(this._isUserTypingReason(n))return!0;return!1}_isUserTypingReason(u){if(u.metadata.isUndoing||u.metadata.isRedoing)return!1;switch(u.metadata.source){case"cursor":{let n=u.metadata.kind;return n==="type"||n==="compositionType"||n==="compositionEnd"}default:return!1}}_finalizeCurrentSession(){if(!this._currentSession)return;if(this._currentSession.endTime-this._currentSession.startTime>=Jr.MIN_SESSION_DURATION_MS&&this._currentSession.characterCount>0){if(this._typingSessions.push(this._currentSession),this._typingSessions.length>Jr.SESSION_HISTORY_LIMIT)this._typingSessions.shift()}this._currentSession=null}_calculateTypingInterval(){if(this._currentSession){let u={...this._currentSession};if(u.endTime-u.startTime>=Jr.MIN_SESSION_DURATION_MS&&u.characterCount>0){let h=[...this._typingSessions,u];return this._calculateSpeedFromSessions(h)}}return this._calculateSpeedFromSessions(this._typingSessions)}_calculateSpeedFromSessions(u){if(u.length===0)return{averageInterval:0,characterCount:0};let n=[...u].sort((x,T)=>T.endTime-x.endTime),h=Date.now()-Jr.TYPING_SPEED_WINDOW_MS,g=n.filter((x)=>x.endTime>h),p=n.splice(g.length),m=Fv(g.map((x)=>x.characterCount));for(let x=0;x<p.length&&m<Jr.MIN_CHARS_FOR_RELIABLE_SPEED;x++)g.push(p[x]),m+=p[x].characterCount;let v=Fv(g.map((x)=>x.endTime-x.startTime));if(v===0||m<=1)return{averageInterval:0,characterCount:m};let S=Math.max(1,m-1),C=v/S;return{averageInterval:Math.round(C),characterCount:m}}dispose(){this._finalizeCurrentSession(),super.dispose()}}var iN=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},ea=function(u,n){return function(h,g){n(h,g,u)}},bm=class u extends i{get isAcceptingPartially(){return this._isAcceptingPartially}get editor(){return this._editor}constructor(n,h,g,p,m,v,S,C,x,T,R,Z,Y,Q,te,oe){super();this.textModel=n,this._selectedSuggestItem=h,this._textModelVersionId=g,this._positions=p,this._debounceValue=m,this._enabled=v,this._isSuppressed=S,this._editor=C,this._instantiationService=x,this._commandService=T,this._languageConfigurationService=R,this._accessibilityService=Z,this._languageFeaturesService=Y,this._codeEditorService=Q,this._inlineCompletionsService=te,this._isActive=j(this,!1),this._onlyRequestInlineEditsSignal=so(this),this._forceUpdateExplicitlySignal=so(this),this._noDelaySignal=so(this),this._fetchSpecificProviderSignal=so(this),this._selectedInlineCompletionId=j(this,void 0),this.primaryPosition=f(this,(ae)=>this._positions.read(ae)[0]??new s(1,1)),this.allPositions=f(this,(ae)=>this._positions.read(ae)),this.sku=j(this,void 0),this._isAcceptingPartially=!1,this._appearedInsideViewport=f(this,(ae)=>{let pe=this.state.read(ae);if(!pe||!pe.inlineSuggestion)return!1;return Tw(this._editor,pe.inlineSuggestion,ae)}),this._onDidAccept=this._register(new o),this.onDidAccept=this._onDidAccept.event,this._lastShownInlineCompletionInfo=void 0,this._lastAcceptedInlineCompletionInfo=void 0,this._didUndoInlineEdits=l1({owner:this,changeTracker:{createChangeSummary:()=>({didUndo:!1}),handleChange:(ae,pe)=>(pe.didUndo=ae.didChange(this._textModelVersionId)&&!!ae.change?.isUndoing,!0)}},(ae,pe)=>{let Me=this._textModelVersionId.read(ae);if(Me!==null&&this._lastAcceptedInlineCompletionInfo&&this._lastAcceptedInlineCompletionInfo.textModelVersionIdAfter===Me-1&&this._lastAcceptedInlineCompletionInfo.inlineCompletion.isInlineEdit&&pe.didUndo)return this._lastAcceptedInlineCompletionInfo=void 0,!0;return!1}),this._preserveCurrentCompletionReasons=new Set([rs.Redo,rs.Undo,rs.AcceptWord]),this.dontRefetchSignal=so(this),this._fetchInlineCompletionsPromise=l1({owner:this,changeTracker:{createChangeSummary:()=>({dontRefetch:!1,preserveCurrentCompletion:!1,inlineCompletionTriggerKind:hr.Automatic,onlyRequestInlineEdits:!1,shouldDebounce:!0,provider:void 0,changeHint:void 0,textChange:!1,changeReason:""}),handleChange:(ae,pe)=>{if(ae.didChange(this._textModelVersionId)){if(this._preserveCurrentCompletionReasons.has(this._getReason(ae.change)))pe.preserveCurrentCompletion=!0;let Me=ae.change?.detailedReasons??[];pe.changeReason=Me.length>0?Me[0].getType():"",pe.textChange=!0}else if(ae.didChange(this._forceUpdateExplicitlySignal))pe.preserveCurrentCompletion=!0,pe.inlineCompletionTriggerKind=hr.Explicit;else if(ae.didChange(this.dontRefetchSignal))pe.dontRefetch=!0;else if(ae.didChange(this._onlyRequestInlineEditsSignal))pe.onlyRequestInlineEdits=!0;else if(ae.didChange(this._fetchSpecificProviderSignal))pe.provider=ae.change?.provider,pe.changeHint=ae.change?.changeHint;return!0}}},(ae,pe)=>{if(this._source.clearOperationOnTextModelChange.read(ae),this._noDelaySignal.read(ae),this.dontRefetchSignal.read(ae),this._onlyRequestInlineEditsSignal.read(ae),this._forceUpdateExplicitlySignal.read(ae),this._fetchSpecificProviderSignal.read(ae),!(!this._isSuppressed()&&(this._enabled.read(ae)&&this._selectedSuggestItem.read(ae)||this._isActive.read(ae))&&(!this._inlineCompletionsService.isSnoozing()||pe.inlineCompletionTriggerKind===hr.Explicit))){this._source.cancelUpdate();return}this._textModelVersionId.read(ae);let Ae=this._source.suggestWidgetInlineCompletions.read(void 0),We=this._selectedSuggestItem.read(ae);if(this._shouldShowOnSuggestConflict.read(void 0))We=void 0;if(Ae&&!We)this._source.seedInlineCompletionsWithSuggestWidget();if(pe.dontRefetch)return Promise.resolve(!0);if(this._didUndoInlineEdits.read(ae)&&pe.inlineCompletionTriggerKind!==hr.Explicit){Ye((At)=>{this._source.clear(At)});return}let Ie="";if(pe.provider)Ie+="providerOnDidChange";else if(pe.inlineCompletionTriggerKind===hr.Explicit)Ie+="explicit";if(pe.changeReason)Ie+=Ie.length>0?`:${pe.changeReason}`:pe.changeReason;let Ve=this._typing.getTypingInterval(),tt={editorType:this.editorType,startTime:Date.now(),languageId:this.textModel.getLanguageId(),reason:Ie,typingInterval:Ve.averageInterval,typingIntervalCharacterCount:Ve.characterCount,availableProviders:[],sku:this.sku.read(void 0)},qe={triggerKind:pe.inlineCompletionTriggerKind,selectedSuggestionInfo:We?.toSelectedSuggestionInfo(),includeInlineCompletions:!pe.onlyRequestInlineEdits,includeInlineEdits:this._inlineEditsEnabled.read(ae),requestIssuedDateTime:tt.startTime,earliestShownDateTime:tt.startTime+(pe.inlineCompletionTriggerKind===hr.Explicit||this.inAcceptFlow.read(void 0)?0:this._minShowDelay.read(void 0)),changeHint:pe.changeHint};if(qe.triggerKind===hr.Automatic&&pe.textChange){if(this.textModel.getAlternativeVersionId()===this._lastShownInlineCompletionInfo?.alternateTextModelVersionId)qe={...qe,includeInlineCompletions:!this._lastShownInlineCompletionInfo.inlineCompletion.isInlineEdit,includeInlineEdits:this._lastShownInlineCompletionInfo.inlineCompletion.isInlineEdit}}let rt=this.selectedInlineCompletion.read(void 0)??this._inlineSuggestionItems.read(void 0)?.inlineEdit,$e=pe.preserveCurrentCompletion||rt?.forwardStable?rt:void 0,Ot=this._jumpedToId.map((At)=>!!At&&At===this._inlineSuggestionItems.read(void 0)?.inlineEdit?.semanticId),it=pe.provider?{providers:[pe.provider],label:"single:"+pe.provider.providerId?.toString()}:{providers:this._languageFeaturesService.inlineCompletionsProvider.all(this.textModel),label:void 0},mt=this.getAvailableProviders(it.providers);return tt.availableProviders=mt.map((At)=>At.providerId).filter(Qn),this._source.fetch(mt,it.label,qe,$e?.identity,pe.shouldDebounce,Ot,tt)}),this._inlineSuggestionItems=Rn({owner:this},(ae)=>{let pe=this._source.inlineCompletions.read(ae);if(!pe)return;let Me=this.primaryPosition.read(ae),Ae=void 0,We=[];for(let Ie of pe.inlineCompletions)if(!Ie.isInlineEdit){if(Ie.isVisible(this.textModel,Me))We.push(Ie)}else Ae=Ie;if(We.length!==0)Ae=void 0;return{inlineCompletions:We,inlineEdit:Ae}}),this._inlineCompletionItems=Rn({owner:this,equalsFn:Hh()},(ae)=>this._inlineSuggestionItems.read(ae)?.inlineCompletions??[]),this.selectedInlineCompletionIndex=f(this,(ae)=>{let pe=this._selectedInlineCompletionId.read(ae),Me=this._inlineCompletionItems.read(ae),Ae=this._selectedInlineCompletionId===void 0?-1:Me.findIndex((We)=>We.semanticId===pe);if(Ae===-1)return this._selectedInlineCompletionId.set(void 0,void 0),0;return Ae}),this.selectedInlineCompletion=f(this,(ae)=>{let pe=this._inlineCompletionItems.read(ae),Me=this.selectedInlineCompletionIndex.read(ae);return pe[Me]}),this.activeCommands=Rn({owner:this,equalsFn:Hh()},(ae)=>this.selectedInlineCompletion.read(ae)?.source.inlineSuggestions.commands??[]),this.inlineCompletionsCount=f(this,(ae)=>{if(this.lastTriggerKind.read(ae)===hr.Explicit)return this._inlineCompletionItems.read(ae).length;else return}),this._hasVisiblePeekWidgets=f(this,(ae)=>this._editorObs.openedPeekWidgets.read(ae)>0),this._shouldShowOnSuggestConflict=f(this,(ae)=>{let pe=this._showOnSuggestConflict.read(ae);if(pe!=="never"){if(!!this.selectedInlineCompletion.read(ae)){let Ae=this._selectedSuggestItem.read(ae);if(!Ae)return!1;if(pe==="whenSuggestListIsIncomplete")return Ae.listIncomplete;return!0}}return!1}),this.state=Rn({owner:this,equalsFn:(ae,pe)=>{if(!ae||!pe)return ae===pe;if(ae.kind==="ghostText"&&pe.kind==="ghostText")return fw(ae.ghostTexts,pe.ghostTexts)&&ae.inlineSuggestion===pe.inlineSuggestion&&ae.suggestItem===pe.suggestItem;else if(ae.kind==="inlineEdit"&&pe.kind==="inlineEdit")return ae.inlineSuggestion===pe.inlineSuggestion;return!1}},(ae)=>{let pe=this.textModel;if(this._suppressInSnippetMode.read(ae)&&this._isInSnippetMode.read(ae))return;let Me=this._inlineSuggestionItems.read(ae),Ae=Me?.inlineEdit;if(Ae){if(this._hasVisiblePeekWidgets.read(ae))return;let Ie=this.primaryPosition.map((rt)=>ee.fromRangeInclusive(Ae.targetRange).addMargin(1,1).contains(rt.lineNumber)),Ve=Ae.action?.kind==="edit"?Ae.action.stringEdit:void 0,tt=Ve?Fo.fromStringEdit(Ve,new tp(this.textModel)).replacements:[],qe=(Me.inlineEdit?.command?.id==="vscode.open"||Me.inlineEdit?.command?.id==="_workbench.open")&&Me.inlineEdit?.command.arguments?.length?q.from(Me.inlineEdit?.command.arguments[0]):void 0;if(!Ae.originalTextRef.targets(this.textModel))qe=Ae.originalTextRef.uri;return{kind:"inlineEdit",inlineSuggestion:Ae,edits:tt,cursorAtInlineEdit:Ie,nextEditUri:qe}}let We=this._selectedSuggestItem.read(ae);if(!this._shouldShowOnSuggestConflict.read(ae)&&We){let Ie=Uo(We.getSingleTextEdit(),pe),Ve=this._computeAugmentation(Ie,ae);if(!this._suggestPreviewEnabled.read(ae)&&!Ve)return;let qe=Ve?.edit??Ie,rt=Ve?Ve.edit.text.length-Ie.text.length:0,$e=this._suggestPreviewMode.read(ae),Ot=this._positions.read(ae),mt=[qe,...Dw(this.textModel,Ot,qe)].map((Wt,Pt)=>({edit:Wt,ghostText:Wt?bw(Wt,pe,$e,Ot[Pt],rt):void 0})).filter(({edit:Wt,ghostText:Pt})=>Wt!==void 0&&Pt!==void 0),At=mt.map(({edit:Wt})=>Wt),St=mt.map(({ghostText:Wt})=>Wt),vt=St[0]??new Xr(qe.range.endLineNumber,[]);return{kind:"ghostText",edits:At,primaryGhostText:vt,ghostTexts:St,inlineSuggestion:Ve?.completion,suggestItem:We}}else{if(!this._isActive.read(ae))return;let Ie=this.selectedInlineCompletion.read(ae);if(!Ie)return;let Ve=Ie.getSingleTextEdit(),tt=this._inlineSuggestMode.read(ae),qe=this._positions.read(ae),$e=[Ve,...Dw(this.textModel,qe,Ve)].map((mt,At)=>({edit:mt,ghostText:mt?bw(mt,pe,tt,qe[At],0):void 0})).filter(({edit:mt,ghostText:At})=>mt!==void 0&&At!==void 0),Ot=$e.map(({edit:mt})=>mt),it=$e.map(({ghostText:mt})=>mt);if(!it[0])return;return{kind:"ghostText",edits:Ot,primaryGhostText:it[0],ghostTexts:it,inlineSuggestion:Ie,suggestItem:void 0}}}),this.status=f(this,(ae)=>{if(this._source.loading.read(ae))return"loading";let pe=this.state.read(ae);if(pe?.kind==="ghostText")return"ghostText";if(pe?.kind==="inlineEdit")return"inlineEdit";return"noSuggestion"}),this.inlineCompletionState=f(this,(ae)=>{let pe=this.state.read(ae);if(!pe||pe.kind!=="ghostText")return;if(this._editorObs.inComposition.read(ae))return;return pe}),this.inlineEditState=f(this,(ae)=>{let pe=this.state.read(ae);if(!pe||pe.kind!=="inlineEdit")return;return pe}),this.inlineEditAvailable=f(this,(ae)=>!!this.inlineEditState.read(ae)),this.warning=f(this,(ae)=>this.inlineCompletionState.read(ae)?.inlineSuggestion?.warning),this.ghostTexts=Rn({owner:this,equalsFn:fw},(ae)=>{let pe=this.inlineCompletionState.read(ae);if(!pe)return;return pe.ghostTexts}),this.primaryGhostText=Rn({owner:this,equalsFn:_w},(ae)=>{let pe=this.inlineCompletionState.read(ae);if(!pe)return;return pe?.primaryGhostText}),this.showCollapsed=f(this,(ae)=>{let pe=this.state.read(ae);if(!pe||pe.kind!=="inlineEdit")return!1;if(pe.inlineSuggestion.hint||pe.inlineSuggestion.action?.kind==="jumpTo")return!1;let Me=pe.inlineSuggestion.updatedEditModelVersion===this._textModelVersionId.read(ae);return(this._inlineEditsShowCollapsedEnabled.read(ae)||!Me)&&this._jumpedToId.read(ae)!==pe.inlineSuggestion.semanticId&&!this._inAcceptFlow.read(ae)}),this._tabShouldIndent=f(this,(ae)=>{if(this._inAcceptFlow.read(ae))return!1;function pe(We){return We.startLineNumber!==We.endLineNumber}function Me(We,Ie){let Ve=We.getLineIndentColumn(Ie),tt=We.getLineLastNonWhitespaceColumn(Ie),qe=Math.max(tt,Ve);return new t(Ie,Ve,Ie,qe)}return this._editorObs.selections.read(ae)?.some((We)=>{if(We.isEmpty())return this.textModel.getLineLength(We.startLineNumber)===0;else return pe(We)||We.containsRange(Me(this.textModel,We.startLineNumber))})}),this.tabShouldJumpToInlineEdit=f(this,(ae)=>{if(this._tabShouldIndent.read(ae))return!1;let pe=this.inlineEditState.read(ae);if(!pe)return!1;if(pe.inlineSuggestion.action?.kind==="jumpTo")return!0;if(this.showCollapsed.read(ae))return!0;if(this._inAcceptFlow.read(ae)&&this._appearedInsideViewport.read(ae))return!1;return!pe.cursorAtInlineEdit.read(ae)}),this.tabShouldAcceptInlineEdit=f(this,(ae)=>{let pe=this.inlineEditState.read(ae);if(!pe)return!1;if(pe.inlineSuggestion.action?.kind==="jumpTo")return!1;if(this.showCollapsed.read(ae))return!1;if(this._tabShouldIndent.read(ae))return!1;if(this._inAcceptFlow.read(ae)&&this._appearedInsideViewport.read(ae))return!0;if(pe.inlineSuggestion.targetRange.startLineNumber===this._editorObs.cursorLineNumber.read(ae))return!0;if(this._jumpedToId.read(ae)===pe.inlineSuggestion.semanticId)return!0;return pe.cursorAtInlineEdit.read(ae)}),this._jumpedToId=j(this,void 0),this._inAcceptFlow=j(this,!1),this.inAcceptFlow=this._inAcceptFlow,this._source=this._register(this._instantiationService.createInstance(_m,this.textModel,this._textModelVersionId,this._debounceValue,this.primaryPosition,gf.defaultChatAgent?.completionsEnablementSetting)),this.lastTriggerKind=this._source.inlineCompletions.map(this,(ae)=>ae?.request?.context.triggerKind),this._editorObs=ct(this._editor);let ne=this._editorObs.getOption(134);this._suggestPreviewEnabled=ne.map((ae)=>ae.preview),this._suggestPreviewMode=ne.map((ae)=>ae.previewMode);let he=this._editorObs.getOption(71);this._inlineSuggestMode=he.map((ae)=>ae.mode),this._suppressedInlineCompletionGroupIds=he.map((ae)=>new Set(ae.experimental.suppressInlineSuggestions.split(","))),this._inlineEditsEnabled=he.map((ae)=>!!ae.edits.enabled),this._inlineEditsShowCollapsedEnabled=he.map((ae)=>ae.edits.showCollapsed),this._triggerCommandOnProviderChange=he.map((ae)=>ae.triggerCommandOnProviderChange),this._minShowDelay=he.map((ae)=>ae.minShowDelay),this._showOnSuggestConflict=he.map((ae)=>ae.experimental.showOnSuggestConflict),this._suppressInSnippetMode=he.map((ae)=>ae.suppressInSnippetMode);let ge=Bt.get(this._editor);this._isInSnippetMode=ge?.isInSnippetObservable??Ne(!1),oe.getDefaultAccount().then(oN((ae)=>this.sku.set(sE(ae),void 0),this._store)),this._register(oe.onDidChangeDefaultAccount((ae)=>this.sku.set(sE(ae),void 0))),this._typing=this._register(new Jr(this.textModel)),this._register(this._inlineCompletionsService.onDidChangeIsSnoozing((ae)=>{if(ae)this.stop()}));{let ae=this.textModel.uri.scheme===se.vscodeNotebookCell,[pe]=this._codeEditorService.listDiffEditors().filter((Me)=>Me.getOriginalEditor().getId()===this._editor.getId()||Me.getModifiedEditor().getId()===this._editor.getId());this.isInDiffEditor=!!pe,this.editorType=ae?Nt.Notebook:this.isInDiffEditor?Nt.DiffEditor:Nt.TextEditor}this._register(Bh(this.state,(ae)=>{if(ae&&ae.inlineSuggestion)this._inlineCompletionsService.reportNewCompletion(ae.inlineSuggestion.requestUuid)})),this._register(Bh(this._fetchInlineCompletionsPromise)),this._register(W((ae)=>{this._editorObs.versionId.read(ae),this._inAcceptFlow.set(!1,void 0)})),this._register(W((ae)=>{if(this.state.map((Me,Ae)=>!Me||Me.kind==="inlineEdit"&&!Me.cursorAtInlineEdit.read(Ae)).read(ae))this._jumpedToId.set(void 0,void 0)})),this._register(W((ae)=>{let pe=this.state.map((Me)=>Me?.inlineSuggestion).read(ae);if(pe)pe.addPerformanceMarker("activeSuggestion")}));let _e=this.inlineEditState.map((ae)=>ae?.inlineSuggestion.semanticId);this._register(W((ae)=>{if(_e.read(ae))this._editor.pushUndoStop(),this._lastShownInlineCompletionInfo={alternateTextModelVersionId:this.textModel.getAlternativeVersionId(),inlineCompletion:this.state.get().inlineSuggestion}}));let Se=Pe(this._languageFeaturesService.inlineCompletionsProvider.onDidChange,()=>this._languageFeaturesService.inlineCompletionsProvider.all(n));dd(this,Se,(ae,pe)=>{if(!ae.onDidChangeInlineCompletions)return;pe.add(ae.onDidChangeInlineCompletions((Me)=>{if(!this._enabled.get())return;if((this._codeEditorService.getFocusedCodeEditor()||this._codeEditorService.getActiveCodeEditor())!==this._editor)return;if(this._triggerCommandOnProviderChange.get()){this.trigger(void 0,{onlyFetchInlineEdits:!0});return}let We=this.state.get();if(We&&(We.inlineSuggestion||We.edits)&&We.inlineSuggestion?.source.provider!==ae)return;Ye((Ie)=>{this._fetchSpecificProviderSignal.trigger(Ie,{provider:ae,changeHint:Me??void 0}),this.trigger(Ie)})}))}).recomputeInitiallyAndOnChange(this._store),this._didUndoInlineEdits.recomputeInitiallyAndOnChange(this._store)}getIndentationInfo(n){let h=!1,g=!0,p=this?.primaryGhostText.read(n);if(!!this?._selectedSuggestItem&&p&&p.parts.length>0){let{column:m,lines:v}=p.parts[0],S=v[0].line,C=this.textModel.getLineIndentColumn(p.lineNumber);if(m<=C){let T=Gn(S);if(T===-1)T=S.length-1;h=T>0;let R=this.textModel.getOptions().tabSize;g=Lt.visibleColumnFromColumn(S,T+1,R)<R}}return{startsWithIndentation:h,startsWithIndentationLessThanTabSize:g}}_getReason(n){if(n?.isUndoing)return rs.Undo;if(n?.isRedoing)return rs.Redo;if(this.isAcceptingPartially)return rs.AcceptWord;return rs.Other}getAvailableProviders(n){let h=this._suppressedInlineCompletionGroupIds.get(),g=n.filter((v)=>!(v.groupId&&h.has(v.groupId))),p=new Set;for(let v of g)v.excludesGroupIds?.forEach((S)=>p.add(S));let m=[];for(let v of g){if(v.groupId&&p.has(v.groupId))continue;m.push(v)}return m}async trigger(n,h={}){cd(n,(g)=>{if(h.onlyFetchInlineEdits)this._onlyRequestInlineEditsSignal.trigger(g);if(h.noDelay)this._noDelaySignal.trigger(g);if(this._isActive.set(!0,g),h.explicit)this._inAcceptFlow.set(!0,g),this._forceUpdateExplicitlySignal.trigger(g);if(h.provider)this._fetchSpecificProviderSignal.trigger(g,{provider:h.provider,changeHint:h.changeHint})}),await this._fetchInlineCompletionsPromise.get()}async triggerExplicitly(n,h=!1){return this.trigger(n,{onlyFetchInlineEdits:h,explicit:!0})}stop(n="automatic",h){cd(h,(g)=>{if(n==="explicitCancel"){let p=this.state.get()?.inlineSuggestion;if(p)p.reportEndOfLife({kind:gl.Rejected})}this._isActive.set(!1,g),this._source.clear(g)})}_computeAugmentation(n,h){let g=this.textModel,p=this._source.suggestWidgetInlineCompletions.read(h),m=p?p.inlineCompletions.filter((S)=>!S.isInlineEdit):[this.selectedInlineCompletion.read(h)].filter(Qn);return IM(m,(S)=>{let C=S.getSingleTextEdit();return C=Uo(C,g,t.fromPositions(C.range.getStartPosition(),n.range.getEndPosition())),rm(C,n)?{completion:S,edit:C}:void 0})}async _deltaSelectedInlineCompletionIndex(n){await this.triggerExplicitly();let h=this._inlineCompletionItems.get()||[];if(h.length>0){let g=(this.selectedInlineCompletionIndex.get()+n+h.length)%h.length;this._selectedInlineCompletionId.set(h[g].semanticId,void 0)}else this._selectedInlineCompletionId.set(void 0,void 0)}async next(){await this._deltaSelectedInlineCompletionIndex(1)}async previous(){await this._deltaSelectedInlineCompletionIndex(-1)}_getMetadata(n,h,g=void 0){if(g)return Jn.inlineCompletionPartialAccept({nes:n.isInlineEdit,requestUuid:n.requestUuid,providerId:n.source.provider.providerId,languageId:h,type:g,correlationId:n.getSourceCompletion().correlationId});else return Jn.inlineCompletionAccept({nes:n.isInlineEdit,requestUuid:n.requestUuid,correlationId:n.getSourceCompletion().correlationId,providerId:n.source.provider.providerId,languageId:h})}async accept(n=this._editor,h=!1){if(n.getModel()!==this.textModel)throw new H;let g,p=!1,m=this.state.get();if(m?.kind==="ghostText"){if(!m||m.primaryGhostText.isEmpty()||!m.inlineSuggestion)return;g=m.inlineSuggestion}else if(m?.kind==="inlineEdit")g=m.inlineSuggestion,p=!!m.nextEditUri;else return;g.addRef();try{let v=!1;if(n.pushUndoStop(),!g.originalTextRef.targets(this.textModel)){let S=await this._codeEditorService.openCodeEditor({resource:g.originalTextRef.uri},this._editor);if(S){let x=tm(S)?.model.get();S.focus(),x?.transplantCompletion(g),S.revealLineInCenter(g.targetRange.startLineNumber)}}else if(p);else if(g.action?.kind==="edit"){let S=g.action;if(h&&S.alternativeAction){v=!0;let C=S.alternativeAction.command;await this._commandService.executeCommand(C.id,...C.arguments||[]).then(void 0,yt)}else if(S.snippetInfo){let C=bt.delete(S.textReplacement.range),x=g.additionalTextEdits.map((R)=>new bt(t.lift(R.range),R.text??"")),T=Fo.fromParallelReplacementsUnsorted([C,...x]);n.edit(T,this._getMetadata(g,this.textModel.getLanguageId())),n.setPosition(S.snippetInfo.range.getStartPosition(),"inlineCompletionAccept"),Bt.get(n)?.insert(S.snippetInfo.snippet,{undoStopBefore:!1})}else{let C=m.edits,x=C;if(m.kind==="ghostText")x=Bk(C,this.textModel);let T=uw(x).map((Y)=>F.fromPositions(Y)),R=g.additionalTextEdits.map((Y)=>new bt(t.lift(Y.range),Y.text??"")),Z=Fo.fromParallelReplacementsUnsorted([...C,...R]);if(n.edit(Z,this._getMetadata(g,this.textModel.getLanguageId())),g.hint===void 0)n.setSelections(m.kind==="inlineEdit"?T.slice(-1):T,"inlineCompletionAccept");if(m.kind==="inlineEdit"&&!this._accessibilityService.isMotionReduced()){let Y=Z.getNewRanges(),Q=this._store.add(new aE(n,Y,()=>{this._store.delete(Q)}))}}}if(this._onDidAccept.fire(),this.stop(),g.command)await this._commandService.executeCommand(g.command.id,...g.command.arguments||[]).then(void 0,yt);if(v)this.trigger(void 0);g.reportEndOfLife({kind:gl.Accepted,alternativeAction:h})}finally{g.removeRef(),this._inAcceptFlow.set(!0,void 0),this._lastAcceptedInlineCompletionInfo={textModelVersionIdAfter:this.textModel.getVersionId(),inlineCompletion:g}}}async acceptNextWord(){await this._acceptNext(this._editor,"word",(n,h)=>{let g=this.textModel.getLanguageIdAtPosition(n.lineNumber,n.column),p=this._languageConfigurationService.getLanguageConfiguration(g),m=new RegExp(p.wordDefinition.source,p.wordDefinition.flags.replace("g","")),v=h.match(m),S=0;if(v&&v.index!==void 0)if(v.index===0)S=v[0].length;else S=v.index;else S=h.length;let x=/\s+/g.exec(h);if(x&&x.index!==void 0){if(x.index+x[0].length<S)S=x.index+x[0].length}return S},0)}async acceptNextLine(){await this._acceptNext(this._editor,"line",(n,h)=>{let g=h.match(/\n/);if(g&&g.index!==void 0)return g.index+1;return h.length},1)}async _acceptNext(n,h,g,p){if(n.getModel()!==this.textModel)throw new H;let m=this.inlineCompletionState.get();if(!m||m.primaryGhostText.isEmpty()||!m.inlineSuggestion)return;let{primaryGhostText:v,inlineSuggestion:S}=m;if(S.snippetInfo){await this.accept(n);return}let C=v.parts[0],x=new s(v.lineNumber,C.column),T=C.text,R=g(x,T);if(R===T.length&&v.parts.length===1){this.accept(n);return}let Z=T.substring(0,R),Y=this._positions.get(),Q=Y[0];S.addRef();try{this._isAcceptingPartially=!0;try{n.pushUndoStop();let he=t.fromPositions(Q,x),ge=n.getModel().getValueInRange(he)+Z,_e=new bt(he,ge),Se=[_e,...Dw(this.textModel,Y,_e)].filter(Qn),ae=uw(Se).map((pe)=>F.fromPositions(pe));n.edit(Fo.fromParallelReplacementsUnsorted(Se),this._getMetadata(S,this.textModel.getLanguageId(),h)),n.setSelections(ae,"inlineCompletionPartialAccept"),n.revealPositionInCenterIfOutsideViewport(n.getPosition(),0)}finally{this._isAcceptingPartially=!1}let te=t.fromPositions(S.editRange.getStartPosition(),Gt.ofText(Z).addToPosition(x)),ne=n.getModel().getValueInRange(te,1).length;S.reportPartialAccept(ne,{kind:p,acceptedLength:ne},{characters:R,ratio:R/T.length,count:1})}finally{S.removeRef()}}handleSuggestAccepted(n){let h=Uo(n.getSingleTextEdit(),this.textModel),g=this._computeAugmentation(h,void 0);if(!g)return;let m=this.textModel.getValueInRange(g.completion.editRange,1).length+h.text.length;g.completion.reportPartialAccept(h.text.length,{kind:2,acceptedLength:m},{characters:h.text.length,count:1,ratio:1})}extractReproSample(){let n=this.textModel.getValue(),h=this.state.get()?.inlineSuggestion;return{documentValue:n,inlineCompletion:h?.getSourceCompletion()}}jump(){let n=this.inlineEditState.get();if(!n)return;let h=n.inlineSuggestion;if(!h.originalTextRef.targets(this.textModel)){this.accept(this._editor);return}h.addRef();try{Ye((g)=>{if(h.action?.kind==="jumpTo")this.stop(void 0,g),h.reportEndOfLife({kind:gl.Accepted,alternativeAction:!1});this._jumpedToId.set(n.inlineSuggestion.semanticId,g),this.dontRefetchSignal.trigger(g);let p=n.inlineSuggestion.targetRange,m=p.getStartPosition();if(this._editor.setPosition(m,"inlineCompletions.jump"),p.isSingleLine()&&(n.inlineSuggestion.hint||n.inlineSuggestion.action?.kind==="edit"&&!n.inlineSuggestion.action.textReplacement.text.includes(`
|
|
41
|
+
`))||n.inlineSuggestion.action?.kind==="jumpTo")this._editor.revealPosition(m,0);else{let S=new t(p.startLineNumber-1,1,p.endLineNumber+1,1);this._editor.revealRange(S,0)}n.inlineSuggestion.identity.setJumpTo(g),this._editor.focus()})}finally{h.removeRef()}}async handleInlineSuggestionShown(n,h,g,p){await n.reportInlineEditShown(this._commandService,h,g,this.textModel,p)}transplantCompletion(n){Ye((h)=>{this._source.seedWithCompletion(n,h),this._isActive.set(!0,h),this._inAcceptFlow.set(!0,h),this.dontRefetchSignal.trigger(h)})}};bm=iN([ea(8,A),ea(9,Ue),ea(10,ut),ea(11,sn),ea(12,z),ea(13,Ee),ea(14,O0),ea(15,B1)],bm);var rs;(function(u){u[u.Undo=0]="Undo",u[u.Redo=1]="Redo",u[u.AcceptWord=2]="AcceptWord",u[u.Other=3]="Other"})(rs||(rs={}));function Dw(u,n,h){if(n.length===1)return[];let g=new tp(u),p=g.getTransformer(),m=p.getOffset(n[0]),v=n.slice(1).map((Z)=>p.getOffset(Z));h=h.removeCommonPrefixAndSuffix(g);let S=p.getStringReplacement(h),C=S.replaceRange.start-m,x=S.replaceRange.join(V.emptyAt(m)),T=g.getValueOfOffsetRange(x);return v.map((Z)=>{let Y=Z+C,Q=Y+S.replaceRange.length,te=new V(Y,Q),oe=te.join(V.emptyAt(Z));if(g.getValueOfOffsetRange(oe)!==T)return;let he=new li(te,S.newText);return p.getTextReplacement(he)}).filter(Qn)}class aE extends i{constructor(u,n,h){super();if(h)this._register({dispose:()=>h()});this._register(ct(u).setDecorations(Ne(n.map((p)=>({range:p,options:{description:"animation",className:"edits-fadeout-decoration",zIndex:1}})))));let g=new mw(nm.startNow(1,0,1000,Kk));this._register(W((p)=>{let m=g.getValue(p);if(u.getContainerDomNode().style.setProperty("--animation-opacity",m.toString()),g.isFinished(p))this.dispose()}))}}function Tw(u,n,h=void 0){let g=n.targetRange;ct(u).scrollTop.read(h);let p=u.getVisibleRanges();if(p.length<1)return!1;return new t(p[0].startLineNumber,p[0].startColumn,p[p.length-1].endLineNumber,p[p.length-1].endColumn).containsRange(g)}function sE(u){if(u?.entitlementsData?.access_type_sku&&u?.entitlementsData?.copilot_plan)return{type:u.entitlementsData.access_type_sku,plan:u.entitlementsData.copilot_plan};return}class dE{constructor(u){this.handler=(n)=>this._cb?.(n),this._cb=u}dispose(){this._cb=void 0}}function oN(u,n){let h=new dE(u);return n.add(h),h.handler}var nN=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},rN=function(u,n){return function(h,g){n(h,g,u)}},Rw,_u=class u{static{Rw=this}static{this.AtEnd=new M("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(n,h){this._editor=n,this._enabled=!1,this._ckAtEnd=Rw.AtEnd.bindTo(h),this._configListener=this._editor.onDidChangeConfiguration((g)=>g.hasChanged(139)&&this._update()),this._update()}dispose(){this._configListener.dispose(),this._selectionListener?.dispose(),this._ckAtEnd.reset()}_update(){let n=this._editor.getOption(139)==="on";if(this._enabled===n)return;if(this._enabled=n,this._enabled){let h=()=>{if(!this._editor.hasModel()){this._ckAtEnd.set(!1);return}let g=this._editor.getModel(),p=this._editor.getSelection(),m=g.getWordAtPosition(p.getStartPosition());if(!m){this._ckAtEnd.set(!1);return}this._ckAtEnd.set(m.endColumn===p.getStartPosition().column&&p.getStartPosition().lineNumber===p.getEndPosition().lineNumber)};this._selectionListener=this._editor.onDidChangeCursorSelection(h),h()}else if(this._selectionListener)this._ckAtEnd.reset(),this._selectionListener.dispose(),this._selectionListener=void 0}};_u=Rw=nN([rN(1,G)],_u);var sN=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},aN=function(u,n){return function(h,g){n(h,g,u)}},bu,Dd=class u{static{bu=this}static{this.OtherSuggestions=new M("hasOtherSuggestions",!1)}constructor(n,h){this._editor=n,this._index=0,this._ckOtherSuggestions=bu.OtherSuggestions.bindTo(h)}dispose(){this.reset()}reset(){this._ckOtherSuggestions.reset(),this._listener?.dispose(),this._model=void 0,this._acceptNext=void 0,this._ignore=!1}set({model:n,index:h},g){if(n.items.length===0){this.reset();return}if(bu._moveIndex(!0,n,h)===h){this.reset();return}this._acceptNext=g,this._model=n,this._index=h,this._listener=this._editor.onDidChangeCursorPosition(()=>{if(!this._ignore)this.reset()}),this._ckOtherSuggestions.set(!0)}static _moveIndex(n,h,g){let p=g;for(let m=h.items.length;m>0;m--){if(p=(p+h.items.length+(n?1:-1))%h.items.length,p===g)break;if(!h.items[p].completion.additionalTextEdits)break}return p}next(){this._move(!0)}prev(){this._move(!1)}_move(n){if(!this._model)return;try{this._ignore=!0,this._index=bu._moveIndex(n,this._model,this._index),this._acceptNext({index:this._index,item:this._model.items[this._index],model:this._model})}finally{this._ignore=!1}}};Dd=bu=sN([aN(1,G)],Dd);class Nw{constructor(u,n,h,g){this._disposables=new d,this._disposables.add(h.onDidSuggest((p)=>{if(p.completionModel.items.length===0)this.reset()})),this._disposables.add(h.onDidCancel((p)=>{this.reset()})),this._disposables.add(n.onDidShow(()=>this._onItem(n.getFocusedItem()))),this._disposables.add(n.onDidFocus(this._onItem,this)),this._disposables.add(n.onDidHide(this.reset,this)),this._disposables.add(u.onWillType((p)=>{if(this._active&&!n.isFrozen()&&h.state!==0){let m=p.charCodeAt(p.length-1);if(this._active.acceptCharacters.has(m)&&u.getOption(0))g(this._active.item)}}))}_onItem(u){if(!u||!qn(u.item.completion.commitCharacters)){this.reset();return}if(this._active&&this._active.item.item===u.item)return;let n=new bf;for(let h of u.item.completion.commitCharacters)if(h.length>0)n.add(h.charCodeAt(0));this._active={acceptCharacters:n,item:u}}reset(){this._active=void 0}dispose(){this._disposables.dispose()}}class vm{static{this._maxSelectionLength=51200}constructor(u,n){this._disposables=new d,this._lastOvertyped=[],this._locked=!1,this._disposables.add(u.onWillType(()=>{if(this._locked||!u.hasModel())return;let h=u.getSelections(),g=h.length,p=!1;for(let v=0;v<g;v++)if(!h[v].isEmpty()){p=!0;break}if(!p){if(this._lastOvertyped.length!==0)this._lastOvertyped.length=0;return}this._lastOvertyped=[];let m=u.getModel();for(let v=0;v<g;v++){let S=h[v];if(m.getValueLengthInRange(S)>vm._maxSelectionLength)return;this._lastOvertyped[v]={value:m.getValueInRange(S),multiline:S.startLineNumber!==S.endLineNumber}}})),this._disposables.add(n.onDidTrigger((h)=>{this._locked=!0})),this._disposables.add(n.onDidCancel((h)=>{this._locked=!1}))}getLastOvertypedInfo(u){if(u>=0&&u<this._lastOvertyped.length)return this._lastOvertyped[u];return}dispose(){this._disposables.dispose()}}var dN=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Mw=function(u,n){return function(h,g){n(h,g,u)}},wm=class u{constructor(n,h,g,p,m,v){this._menuId=h,this._menuService=m,this._contextKeyService=v,this._menuDisposables=new d,this.element=k(n,w(".suggest-status-bar"));let S=(C)=>{if(g?.showIconsNoKeybindings)return C instanceof Ki?p.createInstance($l,C,void 0):void 0;else return C instanceof Ki?p.createInstance(H1,C,{useComma:!1}):void 0};this._leftActions=new Qi(this.element,{actionViewItemProvider:S}),this._rightActions=new Qi(this.element,{actionViewItemProvider:S}),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 n=this._menuService.createMenu(this._menuId,this._contextKeyService),h=()=>{let g=[],p=[];for(let[m,v]of n.getActions())if(m==="left")g.push(...v);else p.push(...v);this._leftActions.clear(),this._leftActions.push(g),this._rightActions.clear(),this._rightActions.push(p)};this._menuDisposables.add(n.onDidChange(()=>h())),this._menuDisposables.add(n)}hide(){this._menuDisposables.clear()}};wm=dN([Mw(3,A),Mw(4,Oi),Mw(5,G)],wm);var cN=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},cE=function(u,n){return function(h,g){n(h,g,u)}};function wu(u){return!!u&&Boolean(u.completion.documentation||u.completion.detail&&u.completion.detail!==u.completion.label)}var Sm=class u{constructor(n,h,g){this._editor=n,this._themeService=h,this._markdownRendererService=g,this._onDidClose=new o,this.onDidClose=this._onDidClose.event,this._onDidChangeContents=new o,this.onDidChangeContents=this._onDidChangeContents.event,this._disposables=new d,this._renderDisposeable=new d,this._size=new at(330,0),this.domNode=w(".suggest-details"),this.domNode.classList.add("no-docs"),this._body=w(".body"),this._scrollbar=new El(this._body,{alwaysConsumeMouseWheel:!0}),k(this.domNode,this._scrollbar.getDomNode()),this._disposables.add(this._scrollbar),this._header=k(this._body,w(".header")),this._close=k(this._header,w("span"+J.asCSSSelector(_.close))),this._close.title=e(1563,"Close"),this._close.ariaLabel=e(1564,"Close"),this._close.role="button",this._close.tabIndex=-1,this._type=k(this._header,w("p.type")),this._docs=k(this._body,w("p.docs")),this._configureFont(),this._disposables.add(this._editor.onDidChangeConfiguration((p)=>{if(p.hasChanged(59))this._configureFont()}))}dispose(){this._disposables.dispose(),this._renderDisposeable.dispose(),this._onDidClose.dispose(),this._onDidChangeContents.dispose()}_configureFont(){let n=this._editor.getOptions(),h=n.get(59),g=h.getMassagedFontFamily(),p=n.get(135)||h.fontSize,m=n.get(136)||h.lineHeight,v=h.fontWeight,S=`${p}px`,C=`${m}px`;this.domNode.style.fontSize=S,this.domNode.style.lineHeight=`${m/p}`,this.domNode.style.fontWeight=v,this.domNode.style.fontFeatureSettings=h.fontFeatureSettings,this._type.style.fontFamily=g,this._close.style.height=C,this._close.style.width=C}getLayoutInfo(){let n=this._editor.getOption(136)||this._editor.getOption(59).lineHeight,h=br(this._themeService.getColorTheme().type)?2:1,g=h*2;return{lineHeight:n,borderWidth:h,borderHeight:g,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(n,h){this._renderDisposeable.clear();let{detail:g,documentation:p}=n.completion;if(h){let m="";m+=`score: ${n.score[0]}
|
|
42
|
+
`,m+=`prefix: ${n.word??"(no prefix)"}
|
|
43
|
+
`,m+=`word: ${n.completion.filterText?n.completion.filterText+" (filterText)":n.textLabel}
|
|
44
|
+
`,m+=`distance: ${n.distance} (localityBonus-setting)
|
|
45
|
+
`,m+=`index: ${n.idx}, based on ${n.completion.sortText&&`sortText: "${n.completion.sortText}"`||"label"}
|
|
46
|
+
`,m+=`commit_chars: ${n.completion.commitCharacters?.join("")}
|
|
47
|
+
`,p=new Mn().appendCodeblock("empty",m),g=`Provider: ${n.provider._debugDisplayName}`}if(!h&&!wu(n)){this.clearContents();return}if(this.domNode.classList.remove("no-docs","no-type"),g){let m=g.length>1e5?`${g.substr(0,1e5)}…`:g;this._type.textContent=m,this._type.title=m,Mo(this._type),this._type.classList.toggle("auto-wrap",!/\r?\n^\s+/gmi.test(m))}else mn(this._type),this._type.title="",fo(this._type),this.domNode.classList.add("no-type");if(mn(this._docs),typeof p==="string")this._docs.classList.remove("markdown-docs"),this._docs.textContent=p;else if(p){this._docs.classList.add("markdown-docs"),mn(this._docs);let m=this._markdownRendererService.render(p,{context:this._editor,asyncRenderCallback:()=>{this.layout(this._size.width,this._type.clientHeight+this._docs.clientHeight),this._onDidChangeContents.fire(this)}});this._docs.appendChild(m.element),this._renderDisposeable.add(m)}this.domNode.classList.toggle("detail-and-doc",!!g&&!!p),this.domNode.style.userSelect="text",this.domNode.tabIndex=-1,this._close.onmousedown=(m)=>{m.preventDefault(),m.stopPropagation()},this._close.onclick=(m)=>{m.preventDefault(),m.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(n,h){let g=new at(n,h);if(!at.equals(g,this._size))this._size=g,SM(this.domNode,n,h);this._scrollbar.scanDomNode()}scrollDown(n=8){this._body.scrollTop+=n}scrollUp(n=8){this._body.scrollTop-=n}scrollTop(){this._body.scrollTop=0}scrollBottom(){this._body.scrollTop=this._body.scrollHeight}pageDown(){this.scrollDown(80)}pageUp(){this.scrollUp(80)}focus(){this.domNode.focus()}};Sm=cN([cE(1,Be),cE(2,zo)],Sm);class Ow{constructor(u,n){this.widget=u,this._editor=n,this.allowEditorOverflow=!0,this._disposables=new d,this._added=!1,this._preferAlignAtTop=!0,this._resizable=new td,this._resizable.domNode.classList.add("suggest-details-container"),this._resizable.domNode.appendChild(u.domNode),this._resizable.enableSashes(!1,!0,!0,!1);let h,g,p=0,m=0;this._disposables.add(this._resizable.onDidWillResize(()=>{h=this._topLeft,g=this._resizable.size})),this._disposables.add(this._resizable.onDidResize((v)=>{if(h&&g){this.widget.layout(v.dimension.width,v.dimension.height);let S=!1;if(v.west)m=g.width-v.dimension.width,S=!0;if(v.north)p=g.height-v.dimension.height,S=!0;if(S)this._applyTopLeft({top:h.top+p,left:h.left+m})}if(v.done)h=void 0,g=void 0,p=0,m=0,this._userSize=v.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(u=!1){if(this._resizable.clearSashHoverState(),this._added)this._editor.removeOverlayWidget(this),this._added=!1,this._anchorBox=void 0,this._topLeft=void 0;if(u)this._userSize=void 0,this.widget.clearContents()}placeAtAnchor(u,n){let h=u.getBoundingClientRect();this._anchorBox=h,this._preferAlignAtTop=n,this._placeAtAnchor(this._anchorBox,this._userSize??this.widget.size,n)}_placeAtAnchor(u,n,h){let g=la(this.getDomNode().ownerDocument.body),p=this.widget.getLayoutInfo(),m=new at(220,2*p.lineHeight),v=u.top,S=function(){let ae=g.width-(u.left+u.width+p.borderWidth+p.horizontalPadding),pe=-p.borderWidth+u.left+u.width,Me=new at(ae,g.height-u.top-p.borderHeight-p.verticalPadding),Ae=Me.with(void 0,u.top+u.height-p.borderHeight-p.verticalPadding);return{top:v,left:pe,fit:ae-n.width,maxSizeTop:Me,maxSizeBottom:Ae,minSize:m.with(Math.min(ae,m.width))}}(),C=function(){let ae=u.left-p.borderWidth-p.horizontalPadding,pe=Math.max(p.horizontalPadding,u.left-n.width-p.borderWidth),Me=new at(ae,g.height-u.top-p.borderHeight-p.verticalPadding),Ae=Me.with(void 0,u.top+u.height-p.borderHeight-p.verticalPadding);return{top:v,left:pe,fit:ae-n.width,maxSizeTop:Me,maxSizeBottom:Ae,minSize:m.with(Math.min(ae,m.width))}}(),x=function(){let ae=u.left,pe=-p.borderWidth+u.top+u.height,Me=new at(u.width-p.borderHeight,g.height-u.top-u.height-p.verticalPadding);return{top:pe,left:ae,fit:Me.height-n.height,maxSizeBottom:Me,maxSizeTop:Me,minSize:m.with(Me.width)}}(),T=function(){let ae=u.left,pe=new at(u.width-p.borderHeight,u.top-p.verticalPadding);return{top:Math.max(p.verticalPadding,u.top-n.height),left:ae,fit:pe.height-n.height,maxSizeTop:pe,maxSizeBottom:pe,minSize:m.with(pe.width)}}(),Z=[S,C,h?x:T],Y=Z.find((ae)=>ae.fit>=0)??Z.sort((ae,pe)=>pe.fit-ae.fit)[0],Q=u.top+u.height-p.borderHeight,te,oe=n.height,ne=Math.max(Y.maxSizeTop.height,Y.maxSizeBottom.height);if(oe>ne)oe=ne;let he;if(h)if(oe<=Y.maxSizeTop.height)te=!0,he=Y.maxSizeTop;else te=!1,he=Y.maxSizeBottom;else if(oe<=Y.maxSizeBottom.height)te=!1,he=Y.maxSizeBottom;else te=!0,he=Y.maxSizeTop;let{top:ge,left:_e}=Y;if(Y===T)ge=u.top-oe+p.borderWidth;else if(!te&&oe>u.height)ge=Q-oe;let Se=this._editor.getDomNode();if(Se){let ae=Se.getBoundingClientRect();ge-=ae.top,_e-=ae.left}if(this._applyTopLeft({left:_e,top:ge}),Y===T)this._resizable.enableSashes(!0,!1,!1,!0);else this._resizable.enableSashes(!te,Y===S,te,Y!==S);this._resizable.minSize=Y.minSize,this._resizable.maxSize=he,this._resizable.layout(oe,Math.min(he.width,n.width)),this.widget.layout(this._resizable.size.width,this._resizable.size.height)}_applyTopLeft(u){this._topLeft=u,this._editor.layoutOverlayWidget(this)}}var yI=ie("fileService"),Eo;(function(u){u[u.FILE=0]="FILE",u[u.FOLDER=1]="FOLDER",u[u.ROOT_FOLDER=2]="ROOT_FOLDER"})(Eo||(Eo={}));var lN=/(?:\/|^)(?:([^\/]+)\/)?([^\/]+)$/;function Td(u,n,h,g,p){if(J.isThemeIcon(p))return[`codicon-${p.id}`,"predefined-file-icon"];if(q.isUri(p))return[];let m=g===Eo.ROOT_FOLDER?["rootfolder-icon"]:g===Eo.FOLDER?["folder-icon"]:["file-icon"];if(h){let v;if(h.scheme===se.data)v=cu.parseMetaData(h).get(cu.META_DATA_LABEL);else{let S=h.path.match(lN);if(S){if(v=Cm(S[2].toLowerCase()),S[1])m.push(`${Cm(S[1].toLowerCase())}-name-dir-icon`)}else v=Cm(h.authority.toLowerCase())}if(g===Eo.ROOT_FOLDER)m.push(`${v}-root-name-folder-icon`);else if(g===Eo.FOLDER)m.push(`${v}-name-folder-icon`);else{if(v){if(m.push(`${v}-name-file-icon`),m.push("name-file-icon"),v.length<=255){let C=v.split(".");for(let x=1;x<C.length;x++)m.push(`${C.slice(x).join(".")}-ext-file-icon`)}m.push("ext-file-icon")}let S=hN(u,n,h);if(S)m.push(`${Cm(S)}-lang-file-icon`)}}return m}function hN(u,n,h){if(!h)return null;let g=null;if(h.scheme===se.data){let m=cu.parseMetaData(h).get(cu.META_DATA_MIME);if(m)g=n.getLanguageIdByMimeType(m)}else{let p=u.getModel(h);if(p)g=p.getLanguageId()}if(g&&g!==lo)return g;return n.guessLanguageIdByFilepathOrFirstLine(h)}function Cm(u){return u.replace(/[\s]/g,"/")}var uN=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Pw=function(u,n){return function(h,g){n(h,g,u)}},gN=Ht("suggest-more-info",_.chevronRight,e(1566,"Icon for more information in the suggest widget.")),pN=new class u{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(`^${u._regexRelaxed.source}$`,"i")}extract(n,h){if(n.textLabel.match(u._regexStrict))return h[0]=n.textLabel,!0;if(n.completion.detail&&n.completion.detail.match(u._regexStrict))return h[0]=n.completion.detail,!0;if(n.completion.documentation){let g=typeof n.completion.documentation==="string"?n.completion.documentation:n.completion.documentation.value,p=u._regexRelaxed.exec(g);if(p&&(p.index===0||p.index+p[0].length===g.length))return h[0]=p[0],!0}return!1}},ym=class u{constructor(n,h,g,p){this._editor=n,this._modelService=h,this._languageService=g,this._themeService=p,this._onDidToggleDetails=new o,this.onDidToggleDetails=this._onDidToggleDetails.event,this.templateId="suggestion"}dispose(){this._onDidToggleDetails.dispose()}renderTemplate(n){let h=new d,g=n;g.classList.add("show-file-icons");let p=k(n,w(".icon")),m=k(p,w("span.colorspan")),v=k(n,w(".contents")),S=k(v,w(".main")),C=k(S,w(".icon-label.codicon")),x=k(S,w("span.left")),T=k(S,w("span.right")),R=new yu(x,{supportHighlights:!0,supportIcons:!0});h.add(R);let Z=k(x,w("span.signature-label")),Y=k(x,w("span.qualifier-label")),Q=k(T,w("span.details-label")),te=k(T,w("span.readMore"+J.asCSSSelector(gN)));return te.title=e(1567,"Read More"),{root:g,left:x,right:T,icon:p,colorspan:m,iconLabel:R,iconContainer:C,parametersLabel:Z,qualifierLabel:Y,detailsLabel:Q,readMore:te,disposables:h,configureFont:()=>{let ne=this._editor.getOptions(),he=ne.get(59),ge=he.getMassagedFontFamily(),{fontFeatureSettings:_e,fontVariationSettings:Se}=he,ae=ne.get(135)||he.fontSize,pe=ne.get(136)||he.lineHeight,{fontWeight:Me,letterSpacing:Ae}=he,We=`${ae}px`,Ie=`${pe}px`,Ve=`${Ae}px`;g.style.fontSize=We,g.style.fontWeight=Me,g.style.letterSpacing=Ve,S.style.fontFamily=ge,S.style.fontFeatureSettings=_e,S.style.fontVariationSettings=Se,S.style.lineHeight=Ie,p.style.height=Ie,p.style.width=Ie,te.style.height=Ie,te.style.width=Ie}}}renderElement(n,h,g){g.configureFont();let{completion:p}=n;g.colorspan.style.backgroundColor="";let m={labelEscapeNewLines:!0,matches:Zh(n.score)},v=[];if(p.kind===19&&pN.extract(n,v))g.icon.className="icon customcolor",g.iconContainer.className="icon hide",g.colorspan.style.backgroundColor=v[0];else if(p.kind===20&&this._themeService.getFileIconTheme().hasFileIcons){g.icon.className="icon hide",g.iconContainer.className="icon hide";let S=Td(this._modelService,this._languageService,q.from({scheme:"fake",path:n.textLabel}),Eo.FILE),C=Td(this._modelService,this._languageService,q.from({scheme:"fake",path:p.detail}),Eo.FILE);m.extraClasses=S.length>C.length?S:C}else if(p.kind===23&&this._themeService.getFileIconTheme().hasFolderIcons)g.icon.className="icon hide",g.iconContainer.className="icon hide",m.extraClasses=[Td(this._modelService,this._languageService,q.from({scheme:"fake",path:n.textLabel}),Eo.FOLDER),Td(this._modelService,this._languageService,q.from({scheme:"fake",path:p.detail}),Eo.FOLDER)].flat();else g.icon.className="icon hide",g.iconContainer.className="",g.iconContainer.classList.add("suggest-icon",...J.asClassNameArray(Ph.toIcon(p.kind)));if(p.tags&&p.tags.indexOf(1)>=0)m.extraClasses=(m.extraClasses||[]).concat(["deprecated"]),m.matches=[];if(g.iconLabel.setLabel(n.textLabel,void 0,m),typeof p.label==="string")g.parametersLabel.textContent="",g.detailsLabel.textContent=Aw(p.detail||""),g.root.classList.add("string-label");else g.parametersLabel.textContent=Aw(p.label.detail||""),g.detailsLabel.textContent=Aw(p.label.description||""),g.root.classList.remove("string-label");if(this._editor.getOption(134).showInlineDetails)Mo(g.detailsLabel);else fo(g.detailsLabel);if(wu(n))g.right.classList.add("can-expand-details"),Mo(g.readMore),g.readMore.onmousedown=(S)=>{S.stopPropagation(),S.preventDefault()},g.readMore.onclick=(S)=>{S.stopPropagation(),S.preventDefault(),this._onDidToggleDetails.fire()};else g.right.classList.remove("can-expand-details"),fo(g.readMore),g.readMore.onmousedown=null,g.readMore.onclick=null}disposeTemplate(n){n.disposables.dispose()}};ym=uN([Pw(1,Et),Pw(2,xt),Pw(3,Be)],ym);function Aw(u){return u.replace(/\r\n|\r|\n/g,"")}var mN=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},xm=function(u,n){return function(h,g){n(h,g,u)}},jc,Im=a("editorSuggestWidget.background",Bo,e(1545,"Background color of the suggest widget."));a("editorSuggestWidget.border",xf,e(1546,"Border color of the suggest widget."));var Fw=a("editorSuggestWidget.foreground",za,e(1547,"Foreground color of the suggest widget.")),lE=a("editorSuggestWidget.selectedForeground",{dark:fd,light:fd,hcDark:Im,hcLight:Im},e(1548,"Foreground color of the selected entry in the suggest widget."));a("editorSuggestWidget.selectedIconForeground",{dark:gg,light:gg,hcDark:Im,hcLight:Im},e(1549,"Icon foreground color of the selected entry in the suggest widget."));var fN=a("editorSuggestWidget.selectedBackground",{dark:md,light:md,hcDark:Fw,hcLight:Fw},e(1550,"Background color of the selected entry in the suggest widget.")),_N=a("editorSuggestWidget.focusOutline",Zt,e(1551,"Outline color of the focused (keyboard-navigated) entry in the suggest widget."));a("editorSuggestWidget.highlightForeground",kf,e(1552,"Color of the match highlights in the suggest widget."));a("editorSuggestWidget.focusHighlightForeground",{dark:_0,light:_0,hcDark:lE,hcLight:lE},e(1553,"Color of the match highlights in the suggest widget when an item is focused."));a("editorSuggestWidgetStatus.foreground",be(Fw,0.5),e(1554,"Foreground color of the suggest widget status."));class hE{constructor(u,n){this._service=u,this._key=`suggestWidget.size/${n.getEditorType()}/${n instanceof Ni}`}restore(){let u=this._service.get(this._key,0)??"";try{let n=JSON.parse(u);if(at.is(n))return at.lift(n)}catch{}return}store(u){this._service.store(this._key,JSON.stringify(u),0,1)}reset(){this._service.remove(this._key,0)}}var Lm=class u{static{jc=this}static{this.LOADING_MESSAGE=e(1555,"Loading...")}static{this.NO_SUGGESTIONS_MESSAGE=e(1556,"No suggestions.")}constructor(n,h,g,p,m){this.editor=n,this._storageService=h,this._state=0,this._isAuto=!1,this._loadingTimeout=new ce,this._pendingLayout=new ce,this._pendingShowDetails=new ce,this._ignoreFocusEvents=!1,this._forceRenderingAbove=!1,this._explainMode=!1,this._showTimeout=new ai,this._disposables=new d,this._onDidSelect=new cc,this._onDidFocus=new cc,this._onDidHide=new o,this._onDidShow=new o,this.onDidSelect=this._onDidSelect.event,this.onDidFocus=this._onDidFocus.event,this.onDidHide=this._onDidHide.event,this.onDidShow=this._onDidShow.event,this._onDetailsKeydown=new o,this.element=new td,this.element.domNode.classList.add("editor-widget","suggest-widget"),this._contentWidget=new uE(this,n),this._persistedSize=new hE(h,n);class v{constructor(Q,te,oe=!1,ne=!1){this.persistedSize=Q,this.currentSize=te,this.persistHeight=oe,this.persistWidth=ne}}let S;this._disposables.add(this.element.onDidWillResize(()=>{this._contentWidget.lockPreference(),S=new v(this._persistedSize.restore(),this.element.size)})),this._disposables.add(this.element.onDidResize((Q)=>{if(this._resize(Q.dimension.width,Q.dimension.height),S)S.persistHeight=S.persistHeight||!!Q.north||!!Q.south,S.persistWidth=S.persistWidth||!!Q.east||!!Q.west;if(!Q.done)return;if(S){let{itemHeight:te,defaultSize:oe}=this.getLayoutInfo(),ne=Math.round(te/2),{width:he,height:ge}=this.element.size;if(!S.persistHeight||Math.abs(S.currentSize.height-ge)<=ne)ge=S.persistedSize?.height??oe.height;if(!S.persistWidth||Math.abs(S.currentSize.width-he)<=ne)he=S.persistedSize?.width??oe.width;this._persistedSize.store(new at(he,ge))}this._contentWidget.unlockPreference(),S=void 0})),this._messageElement=k(this.element.domNode,w(".message")),this._listElement=k(this.element.domNode,w(".tree"));let C=this._disposables.add(m.createInstance(Sm,this.editor));C.onDidClose(()=>this.toggleDetails(),this,this._disposables),this._details=new Ow(C,this.editor);let x=()=>this.element.domNode.classList.toggle("no-icons",!this.editor.getOption(134).showIcons);x();let T=()=>this.element.domNode.classList.toggle("fit-width-to-details",this.editor.getOption(134).fitWidthToDetails);T();let R=m.createInstance(ym,this.editor);this._disposables.add(R),this._disposables.add(R.onDidToggleDetails(()=>this.toggleDetails())),this._list=new Co("SuggestWidget",this._listElement,{getHeight:(Q)=>this.getLayoutInfo().itemHeight,getTemplateId:(Q)=>"suggestion"},[R],{alwaysConsumeMouseWheel:!0,useShadows:!1,mouseSupport:!1,multipleSelectionSupport:!1,accessibilityProvider:{getRole:()=>rn?"listitem":"option",getWidgetAriaLabel:()=>e(1557,"Suggest"),getWidgetRole:()=>"listbox",getAriaLabel:(Q)=>{let te=Q.textLabel,oe=Ph.toLabel(Q.completion.kind);if(typeof Q.completion.label!=="string"){let{detail:_e,description:Se}=Q.completion.label;if(_e&&Se)te=e(1558,"{0} {1}, {2}, {3}",te,_e,Se,oe);else if(_e)te=e(1559,"{0} {1}, {2}",te,_e,oe);else if(Se)te=e(1560,"{0}, {1}, {2}",te,Se,oe)}else te=e(1561,"{0}, {1}",te,oe);if(!Q.isResolved||!this._isDetailsVisible())return te;let{documentation:ne,detail:he}=Q.completion,ge=Ha("{0}{1}",he||"",ne?typeof ne==="string"?ne:ne.value:"");return e(1562,"{0}, docs: {1}",te,ge)}}}),this._list.style(wd({listInactiveFocusBackground:fN,listInactiveFocusOutline:_N})),this._status=m.createInstance(wm,this.element.domNode,Xn,void 0);let Z=()=>this.element.domNode.classList.toggle("with-status-bar",this.editor.getOption(134).showStatusBar);Z(),this._disposables.add(this._list.onMouseDown((Q)=>this._onListMouseDownOrTap(Q))),this._disposables.add(this._list.onTap((Q)=>this._onListMouseDownOrTap(Q))),this._disposables.add(this._list.onDidChangeSelection((Q)=>this._onListSelection(Q))),this._disposables.add(this._list.onDidChangeFocus((Q)=>this._onListFocus(Q))),this._disposables.add(this.editor.onDidChangeCursorSelection(()=>this._onCursorSelectionChanged())),this._disposables.add(this.editor.onDidChangeConfiguration((Q)=>{if(Q.hasChanged(134))Z(),x(),T();if(this._completionModel&&(Q.hasChanged(59)||Q.hasChanged(135)||Q.hasChanged(136)))this._list.splice(0,this._list.length,this._completionModel.items)})),this._ctxSuggestWidgetVisible=ze.Visible.bindTo(g),this._ctxSuggestWidgetDetailsVisible=ze.DetailsVisible.bindTo(g),this._ctxSuggestWidgetMultipleSuggestions=ze.MultipleSuggestions.bindTo(g),this._ctxSuggestWidgetHasFocusedSuggestion=ze.HasFocusedSuggestion.bindTo(g),this._ctxSuggestWidgetDetailsFocused=ze.DetailsFocused.bindTo(g);let Y=gi(this._details.widget.domNode);this._disposables.add(Y),this._disposables.add(Y.onDidFocus(()=>this._ctxSuggestWidgetDetailsFocused.set(!0))),this._disposables.add(Y.onDidBlur(()=>this._ctxSuggestWidgetDetailsFocused.set(!1))),this._disposables.add(Ct(this._details.widget.domNode,"keydown",(Q)=>{this._onDetailsKeydown.fire(Q)})),this._disposables.add(this.editor.onMouseDown((Q)=>this._onEditorMouseDown(Q)))}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(n){if(this._details.widget.domNode.contains(n.target.element))this._details.widget.domNode.focus();else if(this.element.domNode.contains(n.target.element))this.editor.focus()}_onCursorSelectionChanged(){if(this._state!==0)this._contentWidget.layout()}_onListMouseDownOrTap(n){if(typeof n.element>"u"||typeof n.index>"u")return;n.browserEvent.preventDefault(),n.browserEvent.stopPropagation(),this._select(n.element,n.index)}_onListSelection(n){if(n.elements.length)this._select(n.elements[0],n.indexes[0])}_select(n,h){let g=this._completionModel;if(g)this._onDidSelect.fire({item:n,index:h,model:g}),this.editor.focus()}_onListFocus(n){if(this._ignoreFocusEvents)return;if(this._state===5)this._setState(3);if(!n.elements.length){if(this._currentSuggestionDetails)this._currentSuggestionDetails.cancel(),this._currentSuggestionDetails=void 0,this._focusedItem=void 0;this.editor.setAriaOptions({activeDescendant:void 0}),this._ctxSuggestWidgetHasFocusedSuggestion.set(!1);return}if(!this._completionModel)return;this._ctxSuggestWidgetHasFocusedSuggestion.set(!0);let h=n.elements[0],g=n.indexes[0];if(h!==this._focusedItem)this._currentSuggestionDetails?.cancel(),this._currentSuggestionDetails=void 0,this._focusedItem=h,this._list.reveal(g),this._currentSuggestionDetails=Yt(async(p)=>{let m=fi(()=>{if(this._isDetailsVisible())this._showDetails(!0,!1)},250),v=p.onCancellationRequested(()=>m.dispose());try{return await h.resolve(p)}finally{m.dispose(),v.dispose()}}),this._currentSuggestionDetails.then(()=>{if(g>=this._list.length||h!==this._list.element(g))return;if(this._ignoreFocusEvents=!0,this._list.splice(g,1,[h]),this._list.setFocus([g]),this._ignoreFocusEvents=!1,this._isDetailsVisible())this._showDetails(!1,!1);else this.element.domNode.classList.remove("docs-side");this.editor.setAriaOptions({activeDescendant:this._list.getElementID(g)})}).catch(X);this._onDidFocus.fire({item:h,index:g,model:this._completionModel})}_setState(n){if(this._state===n)return;switch(this._state=n,this.element.domNode.classList.toggle("frozen",n===4),this.element.domNode.classList.remove("message"),n){case 0:fo(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=jc.LOADING_MESSAGE,fo(this._listElement,this._status.element),Mo(this._messageElement),this._details.hide(),this._show(),this._focusedItem=void 0,Ho(jc.LOADING_MESSAGE);break;case 2:this.element.domNode.classList.add("message"),this._messageElement.textContent=jc.NO_SUGGESTIONS_MESSAGE,fo(this._listElement,this._status.element),Mo(this._messageElement),this._details.hide(),this._show(),this._focusedItem=void 0,Ho(jc.NO_SUGGESTIONS_MESSAGE);break;case 3:fo(this._messageElement),Mo(this._listElement,this._status.element),this._show();break;case 4:fo(this._messageElement),Mo(this._listElement,this._status.element),this._show();break;case 5:fo(this._messageElement),Mo(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(n,h){if(this._state!==0)return;if(this._contentWidget.setPosition(this.editor.getPosition()),this._isAuto=!!n,!this._isAuto)this._loadingTimeout.value=fi(()=>this._setState(1),h)}showSuggestions(n,h,g,p,m){if(this._contentWidget.setPosition(this.editor.getPosition()),this._loadingTimeout.clear(),this._currentSuggestionDetails?.cancel(),this._currentSuggestionDetails=void 0,this._completionModel!==n)this._completionModel=n;if(g&&this._state!==2&&this._state!==0){this._setState(4);return}let v=this._completionModel.items.length,S=v===0;if(this._ctxSuggestWidgetMultipleSuggestions.set(v>1),S){this._setState(p?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(g?4:3),this._list.reveal(h,0,h===0?0:this.getLayoutInfo().itemHeight*0.33),this._list.setFocus(m?[]:[h])}finally{this._onDidFocus.resume(),this._onDidSelect.resume()}this._pendingLayout.value=qv(B(this.element.domNode),()=>{this._pendingLayout.clear(),this._layout(this.element.size),this._details.widget.domNode.classList.remove("focused")})}focusSelected(){if(this._list.length>0)this._list.setFocus([0])}selectNextPage(){switch(this._state){case 0:return!1;case 5:return this._details.widget.pageDown(),!0;case 1:return!this._isAuto;default:return this._list.focusNextPage(),!0}}selectNext(){switch(this._state){case 0:return!1;case 1:return!this._isAuto;default:return this._list.focusNext(1,!0),!0}}selectLast(){switch(this._state){case 0:return!1;case 5:return this._details.widget.scrollBottom(),!0;case 1:return!this._isAuto;default:return this._list.focusLast(),!0}}selectPreviousPage(){switch(this._state){case 0:return!1;case 5:return this._details.widget.pageUp(),!0;case 1:return!this._isAuto;default:return this._list.focusPreviousPage(),!0}}selectPrevious(){switch(this._state){case 0:return!1;case 1:return!this._isAuto;default:return this._list.focusPrevious(1,!0),!1}}selectFirst(){switch(this._state){case 0:return!1;case 5:return this._details.widget.scrollTop(),!0;case 1:return!this._isAuto;default:return this._list.focusFirst(),!0}}getFocusedItem(){if(this._state!==0&&this._state!==2&&this._state!==1&&this._completionModel&&this._list.getFocus().length>0)return{item:this._list.getFocusedElements()[0],index:this._list.getFocus()[0],model:this._completionModel};return}toggleDetailsFocus(){if(this._state===5)this._list.setFocus(this._list.getFocus()),this._setState(3);else if(this._state===3)if(this._setState(5),!this._isDetailsVisible())this.toggleDetails(!0);else this._details.widget.focus()}toggleDetails(n=!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((wu(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,n)}_showDetails(n,h){this._pendingShowDetails.value=qv(B(this.element.domNode),()=>{this._pendingShowDetails.clear(),this._details.show();let g=!1;if(n)this._details.widget.renderLoading();else this._details.widget.renderItem(this._list.getFocusedElements()[0],this._explainMode);if(!this._details.widget.isEmpty){if(this._positionDetails(),this.element.domNode.classList.add("shows-details"),h)this._details.widget.focus(),g=!0}else this._details.hide();if(!g)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 n=this._persistedSize.restore(),h=Math.ceil(this.getLayoutInfo().itemHeight*4.3);if(n&&n.height<h)this._persistedSize.store(n.with(void 0,h))}isFrozen(){return this._state===4}_afterRender(n){if(n===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(n){if(!this.editor.hasModel())return;if(!this.editor.getDomNode())return;let h=la(this.element.domNode.ownerDocument.body),g=this.getLayoutInfo();if(!n)n=g.defaultSize;let p=n.height,m=n.width;if(this._status.element.style.height=`${g.itemHeight}px`,this._state===2||this._state===1)p=g.itemHeight+g.borderHeight,m=g.defaultSize.width/2,this.element.enableSashes(!1,!1,!1,!1),this.element.minSize=this.element.maxSize=new at(m,p),this._contentWidget.setPreference(2);else{let v=h.width-g.borderHeight-2*g.horizontalPadding;if(m>v)m=v;let S=this._completionModel?this._completionModel.stats.pLabelLen*g.typicalHalfwidthCharacterWidth:m;if(this.editor.getOption(134).fitWidthToDetails&&this._completionModel&&!this._persistedSize.restore()){let he=Math.min(v,this.editor.getLayoutInfo().width),ge=Math.min(he,this._measureContentWidth(g));m=Math.max(m,ge),S=Math.max(S,ge)}let C=g.statusBarHeight+this._list.contentHeight+g.borderHeight,x=g.itemHeight+g.statusBarHeight,T=kt(this.editor.getDomNode()),R=this.editor.getScrolledVisiblePosition(this.editor.getPosition()),Z=T.top+R.top+R.height,Y=Math.min(h.height-Z-g.verticalPadding,C),Q=T.top+R.top-g.verticalPadding,te=Math.min(Q,C),oe=Math.min(Math.max(te,Y)+g.borderHeight,C);if(p===this._cappedHeight?.capped)p=this._cappedHeight.wanted;if(p<x)p=x;if(p>oe)p=oe;let ne=150;if(p>Y&&te>Y||this._forceRenderingAbove&&Q>ne)this._contentWidget.setPreference(1),this.element.enableSashes(!0,!0,!1,!1),oe=te;else this._contentWidget.setPreference(2),this.element.enableSashes(!1,!0,!0,!1),oe=Y;this.element.preferredSize=new at(S,g.defaultSize.height),this.element.maxSize=new at(v,oe),this.element.minSize=new at(220,x),this._cappedHeight=p===C?{wanted:this._cappedHeight?.wanted??n.height,capped:p}:void 0}this._resize(m,p)}_resize(n,h){let{width:g,height:p}=this.element.maxSize;n=Math.min(g,n),h=Math.min(p,h);let{statusBarHeight:m}=this.getLayoutInfo();this._list.layout(h-m,n),this._listElement.style.height=`${h-m}px`,this.element.layout(h,n),this._contentWidget.layout(),this._positionDetails()}_positionDetails(){if(this._isDetailsVisible())this._details.placeAtAnchor(this.element.domNode,this._contentWidget.getPosition()?.preference[0]===2)}_measureContentWidth(n){let h=this._completionModel;if(!h)return 0;if(this._fitContentWidth?.model===h)return this._fitContentWidth.width;if(this._measureContext===void 0)this._measureContext=w("canvas").getContext("2d");let g;if(this._measureContext){let v=this.editor.getOptions(),S=v.get(59),C=v.get(135)||S.fontSize;this._measureContext.font=`${S.fontWeight} ${C}px ${S.getMassagedFontFamily()}`,g=0;for(let x of h.items){let{completion:T}=x,R=x.textLabel;if(typeof T.label==="string")R+=T.detail??"";else R+=(T.label.detail??"")+(T.label.description??"");g=Math.max(g,this._measureContext.measureText(R).width)}}else g=h.stats.pLabelLen*n.typicalHalfwidthCharacterWidth;let p=2*n.itemHeight+2*n.horizontalPadding+20,m=g+p;return this._fitContentWidth={model:h,width:m},m}getLayoutInfo(){let n=this.editor.getOption(59),h=Gi(this.editor.getOption(136)||n.lineHeight,8,1000),g=!this.editor.getOption(134).showStatusBar||this._state===2||this._state===1?0:h,p=this._details.widget.getLayoutInfo().borderWidth,m=2*p;return{itemHeight:h,statusBarHeight:g,borderWidth:p,borderHeight:m,typicalHalfwidthCharacterWidth:n.typicalHalfwidthCharacterWidth,verticalPadding:22,horizontalPadding:14,defaultSize:new at(430,g+12*h)}}_isDetailsVisible(){return this._storageService.getBoolean("expandSuggestionDocs",0,!1)}_setDetailsVisible(n){this._storageService.store("expandSuggestionDocs",n,0,0)}forceRenderingAbove(){if(!this._forceRenderingAbove)this._forceRenderingAbove=!0,this._layout(this._persistedSize.restore())}stopForceRenderingAbove(){this._forceRenderingAbove=!1}};Lm=jc=mN([xm(1,Pn),xm(2,G),xm(3,Be),xm(4,A)],Lm);class uE{constructor(u,n){this._widget=u,this._editor=n,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:u,width:n}=this._widget.element.size,{borderWidth:h,horizontalPadding:g}=this._widget.getLayoutInfo();return new at(n+2*h+g,u+2*h)}afterRender(u){this._widget._afterRender(u)}setPreference(u){if(!this._preferenceLocked)this._preference=u}lockPreference(){this._preferenceLocked=!0}unlockPreference(){this._preferenceLocked=!1}setPosition(u){this._position=u}}var bN=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},$c=function(u,n){return function(h,g){n(h,g,u)}},Hw;class gE{constructor(u,n){if(this._model=u,this._position=n,this._decorationOptions=de.register({description:"suggest-line-suffix",stickiness:1}),u.getLineMaxColumn(n.lineNumber)!==n.column){let g=u.getOffsetAt(n),p=u.getPositionAt(g+1);u.changeDecorations((m)=>{if(this._marker)m.removeDecoration(this._marker);this._marker=m.addDecoration(t.fromPositions(n,p),this._decorationOptions)})}}dispose(){if(this._marker&&!this._model.isDisposed())this._model.changeDecorations((u)=>{u.removeDecoration(this._marker),this._marker=void 0})}delta(u){if(this._model.isDisposed()||this._position.lineNumber!==u.lineNumber)return 0;if(this._marker){let n=this._model.getDecorationRange(this._marker);return this._model.getOffsetAt(n.getStartPosition())-this._model.getOffsetAt(u)}else return this._model.getLineMaxColumn(u.lineNumber)-u.column}}var wn=class u{static{Hw=this}static{this.ID="editor.contrib.suggestController"}static get(n){return n.getContribution(Hw.ID)}get onWillInsertSuggestItem(){return this._onWillInsertSuggestItem.event}constructor(n,h,g,p,m,v,S){this._memoryService=h,this._commandService=g,this._contextKeyService=p,this._instantiationService=m,this._logService=v,this._telemetryService=S,this._lineSuffix=new ce,this._toDispose=new d,this._selectors=new pE((R)=>R.priority),this._onWillInsertSuggestItem=new o,this._wantsForceRenderingAbove=!1,this.editor=n,this.model=m.createInstance(Hc,this.editor),this._selectors.register({priority:0,select:(R,Z,Y)=>this._memoryService.select(R,Z,Y)});let C=ze.InsertMode.bindTo(p);C.set(n.getOption(134).insertMode),this._toDispose.add(this.model.onDidTrigger(()=>C.set(n.getOption(134).insertMode))),this.widget=this._toDispose.add(new h0(B(n.getDomNode()),()=>{let R=this._instantiationService.createInstance(Lm,this.editor);this._toDispose.add(R),this._toDispose.add(R.onDidSelect((oe)=>this._insertSuggestion(oe,0),this));let Z=new Nw(this.editor,R,this.model,(oe)=>this._insertSuggestion(oe,2));this._toDispose.add(Z);let Y=ze.MakesTextEdit.bindTo(this._contextKeyService),Q=ze.HasInsertAndReplaceRange.bindTo(this._contextKeyService),te=ze.CanResolve.bindTo(this._contextKeyService);if(this._toDispose.add(N(()=>{Y.reset(),Q.reset(),te.reset()})),this._toDispose.add(R.onDidFocus(({item:oe})=>{let ne=this.editor.getPosition(),he=oe.editStart.column,ge=ne.column,_e=!0;if(this.editor.getOption(1)==="smart"&&this.model.state===2&&!oe.completion.additionalTextEdits&&!(oe.completion.insertTextRules&4)&&ge-he===oe.completion.insertText.length)_e=this.editor.getModel().getValueInRange({startLineNumber:ne.lineNumber,startColumn:he,endLineNumber:ne.lineNumber,endColumn:ge})!==oe.completion.insertText;Y.set(_e),Q.set(!s.equals(oe.editInsertEnd,oe.editReplaceEnd)),te.set(Boolean(oe.provider.resolveCompletionItem)||Boolean(oe.completion.documentation)||oe.completion.detail!==oe.completion.label)})),this._wantsForceRenderingAbove)R.forceRenderingAbove();return R})),this._overtypingCapturer=this._toDispose.add(new h0(B(n.getDomNode()),()=>this._toDispose.add(new vm(this.editor,this.model)))),this._alternatives=this._toDispose.add(new h0(B(n.getDomNode()),()=>this._toDispose.add(new Dd(this.editor,this._contextKeyService)))),this._toDispose.add(m.createInstance(_u,n)),this._toDispose.add(this.model.onDidTrigger((R)=>{this.widget.value.showTriggered(R.auto,R.shy?250:50),this._lineSuffix.value=new gE(this.editor.getModel(),R.position)})),this._toDispose.add(this.model.onDidSuggest((R)=>{if(R.triggerOptions.shy)return;let Z=-1;for(let Q of this._selectors.itemsOrderedByPriorityDesc)if(Z=Q.select(this.editor.getModel(),this.editor.getPosition(),R.completionModel.items),Z!==-1)break;if(Z===-1)Z=0;if(this.model.state===0)return;let Y=!1;if(R.triggerOptions.auto){let Q=this.editor.getOption(134);if(Q.selectionMode==="never"||Q.selectionMode==="always")Y=Q.selectionMode==="never";else if(Q.selectionMode==="whenTriggerCharacter")Y=R.triggerOptions.triggerKind!==1;else if(Q.selectionMode==="whenQuickSuggestion")Y=R.triggerOptions.triggerKind===1&&!R.triggerOptions.refilter}this.widget.value.showSuggestions(R.completionModel,Z,R.isFrozen,R.triggerOptions.auto,Y)})),this._toDispose.add(this.model.onDidCancel((R)=>{if(!R.retrigger)this.widget.value.hideWidget()})),this._toDispose.add(this.editor.onDidBlurEditorWidget(()=>{this.model.cancel(),this.model.clear()}));let x=ze.AcceptSuggestionsOnEnter.bindTo(p),T=()=>{let R=this.editor.getOption(1);x.set(R==="on"||R==="smart")};this._toDispose.add(this.editor.onDidChangeConfiguration(()=>T())),T()}dispose(){this._alternatives.dispose(),this._toDispose.dispose(),this.widget.dispose(),this.model.dispose(),this._lineSuffix.dispose(),this._onWillInsertSuggestItem.dispose()}_insertSuggestion(n,h){if(!n||!n.item){this._alternatives.value.reset(),this.model.cancel(),this.model.clear();return}if(!this.editor.hasModel())return;let g=Bt.get(this.editor);if(!g)return;this._onWillInsertSuggestItem.fire({item:n.item});let p=this.editor.getModel(),m=p.getAlternativeVersionId(),{item:v}=n,S=[],C=new Ge;if(!(h&1))this.editor.pushUndoStop();let x=this.getOverwriteInfo(v,Boolean(h&8));this._memoryService.memorize(p,this.editor.getPosition(),v);let T=v.isResolved,R=-1,Z=-1;if(Array.isArray(v.completion.additionalTextEdits)){this.model.cancel();let Q=os.capture(this.editor);this.editor.executeEdits("suggestController.additionalTextEdits.sync",v.completion.additionalTextEdits.map((te)=>{let oe=t.lift(te.range);if(oe.startLineNumber===v.position.lineNumber&&oe.startColumn>v.position.column){let ne=this.editor.getPosition().column-v.position.column,he=ne,ge=t.spansMultipleLines(oe)?0:ne;oe=new t(oe.startLineNumber,oe.startColumn+he,oe.endLineNumber,oe.endColumn+ge)}return Kt.replaceMove(oe,te.text)})),Q.restoreRelativeVerticalPositionOfCursor(this.editor)}else if(!T){let Q=new un,te,oe=p.onDidChangeContent((_e)=>{if(_e.isFlush){C.cancel(),oe.dispose();return}for(let Se of _e.changes){let ae=t.getEndPosition(Se.range);if(!te||s.isBefore(ae,te))te=ae}}),ne=h;h|=2;let he=!1,ge=this.editor.onWillType(()=>{if(ge.dispose(),he=!0,!(ne&2))this.editor.pushUndoStop()});S.push(v.resolve(C.token).then(()=>{if(!v.completion.additionalTextEdits||C.token.isCancellationRequested)return;if(te&&v.completion.additionalTextEdits.some((Se)=>s.isBefore(te,t.getStartPosition(Se.range))))return!1;if(he)this.editor.pushUndoStop();let _e=os.capture(this.editor);if(this.editor.executeEdits("suggestController.additionalTextEdits.async",v.completion.additionalTextEdits.map((Se)=>Kt.replaceMove(t.lift(Se.range),Se.text))),_e.restoreRelativeVerticalPositionOfCursor(this.editor),he||!(ne&2))this.editor.pushUndoStop();return!0}).then((_e)=>{this._logService.trace("[suggest] async resolving of edits DONE (ms, applied?)",Q.elapsed(),_e),Z=_e===!0?1:_e===!1?0:-2}).finally(()=>{oe.dispose(),ge.dispose()}))}let{insertText:Y}=v.completion;if(!(v.completion.insertTextRules&4))Y=no.escape(Y);if(this.model.cancel(),g.insert(Y,{overwriteBefore:x.overwriteBefore,overwriteAfter:x.overwriteAfter,undoStopBefore:!1,undoStopAfter:!1,adjustWhitespace:!(v.completion.insertTextRules&1),clipboardText:n.model.clipboardText,overtypingCapturer:this._overtypingCapturer.value,reason:Jn.suggest({providerId:zv.fromExtensionId(v.extensionId?.value)})}),!(h&2))this.editor.pushUndoStop();if(v.completion.command)if(v.completion.command.id===km.id)this.model.trigger({auto:!0,retrigger:!0});else{let Q=new un;S.push(this._commandService.executeCommand(v.completion.command.id,...v.completion.command.arguments?[...v.completion.command.arguments]:[]).catch((te)=>{if(v.completion.extensionId)yt(te);else X(te)}).finally(()=>{R=Q.elapsed()}))}if(h&4)this._alternatives.value.set(n,(Q)=>{C.cancel();while(p.canUndo()){if(m!==p.getAlternativeVersionId())p.undo();this._insertSuggestion(Q,3|(h&8?8:0));break}});this._alertCompletionItem(v),Promise.all(S).finally(()=>{this._reportSuggestionAcceptedTelemetry(v,p,T,R,Z,n.index,n.model.items),this.model.clear(),C.dispose()})}_reportSuggestionAcceptedTelemetry(n,h,g,p,m,v,S){if(Math.random()>0.0001)return;let C=new Map;for(let Z=0;Z<Math.min(30,S.length);Z++){let Y=S[Z].textLabel;if(C.has(Y))C.get(Y).push(Z);else C.set(Y,[Z])}let x=C.get(n.textLabel),R=x&&x.length>1?x[0]:-1;this._telemetryService.publicLog2("suggest.acceptedSuggestion",{extensionId:n.extensionId?.value??"unknown",providerId:n.provider._debugDisplayName??"unknown",kind:n.completion.kind,basenameHash:ru(Mi(h.uri)).toString(16),languageId:h.getLanguageId(),fileExtension:TM(h.uri),resolveInfo:!n.provider.resolveCompletionItem?-1:g?1:0,resolveDuration:n.resolveDuration,commandDuration:p,additionalEditsAsync:m,index:v,firstIndex:R})}getOverwriteInfo(n,h){Fe(this.editor.hasModel());let g=this.editor.getOption(134).insertMode==="replace";if(h)g=!g;let p=n.position.column-n.editStart.column,m=(g?n.editReplaceEnd.column:n.editInsertEnd.column)-n.position.column,v=this.editor.getPosition().column-n.position.column,S=this._lineSuffix.value?this._lineSuffix.value.delta(this.editor.getPosition()):0;return{overwriteBefore:p+v,overwriteAfter:m+S}}_alertCompletionItem(n){if(qn(n.completion.additionalTextEdits)){let h=e(1534,"Accepting '{0}' made {1} additional edits",n.textLabel,n.completion.additionalTextEdits.length);zn(h)}}triggerSuggest(n,h,g){if(this.editor.hasModel())this.model.trigger({auto:h??!1,completionOptions:{providerFilter:n,kindFilter:g?new Set:void 0}}),this.editor.revealPosition(this.editor.getPosition(),0),this.editor.focus()}triggerSuggestAndAcceptBest(n){if(!this.editor.hasModel())return;let h=this.editor.getPosition(),g=()=>{if(h.equals(this.editor.getPosition()))this._commandService.executeCommand(n.fallback)},p=(m)=>{if(m.completion.insertTextRules&4||m.completion.additionalTextEdits)return!0;let v=this.editor.getPosition(),S=m.editStart.column,C=v.column;if(C-S!==m.completion.insertText.length)return!0;return this.editor.getModel().getValueInRange({startLineNumber:v.lineNumber,startColumn:S,endLineNumber:v.lineNumber,endColumn:C})!==m.completion.insertText};I.once(this.model.onDidTrigger)((m)=>{let v=[];I.any(this.model.onDidTrigger,this.model.onDidCancel)(()=>{He(v),g()},void 0,v),this.model.onDidSuggest(({completionModel:S})=>{if(He(v),S.items.length===0){g();return}let C=this._memoryService.select(this.editor.getModel(),this.editor.getPosition(),S.items),x=S.items[C];if(!p(x)){g();return}this.editor.pushUndoStop(),this._insertSuggestion({index:C,item:x,model:S},7)},void 0,v)}),this.model.trigger({auto:!1,shy:!0}),this.editor.revealPosition(h,0),this.editor.focus()}acceptSelectedSuggestion(n,h){let g=this.widget.value.getFocusedItem(),p=0;if(n)p|=4;if(h)p|=8;this._insertSuggestion(g,p)}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(n){return this._selectors.register(n)}};wn=Hw=bN([$c(1,Fc),$c(2,Ue),$c(3,G),$c(4,A),$c(5,Ze),$c(6,Bn)],wn);class pE{constructor(u){this.prioritySelector=u,this._items=[]}register(u){if(this._items.indexOf(u)!==-1)throw Error("Value is already registered");return this._items.push(u),this._items.sort((n,h)=>this.prioritySelector(h)-this.prioritySelector(n)),{dispose:()=>{let n=this._items.indexOf(u);if(n>=0)this._items.splice(n,1)}}}get itemsOrderedByPriorityDesc(){return this._items}}class km extends U{static{this.id="editor.action.triggerSuggest"}constructor(){super({id:km.id,label:b(1543,"Trigger Suggest"),precondition:L.and(r.writable,r.hasCompletionItemProvider,ze.Visible.toNegated()),kbOpts:{kbExpr:r.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[521,2087]},weight:100}})}run(u,n,h){let g=wn.get(n);if(!g)return;let p;if(h&&typeof h==="object"){if(h.auto===!0)p=!0}g.triggerSuggest(void 0,p,void 0)}}fe(wn.ID,wn,2);O(km);var to=190,Wi=nn.bindToContribution(wn.get);K(new Wi({id:"acceptSelectedSuggestion",precondition:L.and(ze.Visible,ze.HasFocusedSuggestion),handler(u){u.acceptSelectedSuggestion(!0,!1)},kbOpts:[{primary:2,kbExpr:L.and(ze.Visible,r.textInputFocus),weight:to},{primary:3,kbExpr:L.and(ze.Visible,r.textInputFocus,ze.AcceptSuggestionsOnEnter,ze.MakesTextEdit),weight:to}],menuOpts:[{menuId:Xn,title:e(1535,"Insert"),group:"left",order:1,when:L.and(ze.HasFocusedSuggestion,ze.HasInsertAndReplaceRange.toNegated())},{menuId:Xn,title:e(1536,"Insert"),group:"left",order:1,when:L.and(ze.HasFocusedSuggestion,ze.HasInsertAndReplaceRange,ze.InsertMode.isEqualTo("insert"))},{menuId:Xn,title:e(1537,"Replace"),group:"left",order:1,when:L.and(ze.HasFocusedSuggestion,ze.HasInsertAndReplaceRange,ze.InsertMode.isEqualTo("replace"))}]}));K(new Wi({id:"acceptAlternativeSelectedSuggestion",precondition:L.and(ze.Visible,r.textInputFocus,ze.HasFocusedSuggestion),kbOpts:{weight:to,kbExpr:r.textInputFocus,primary:1027,secondary:[1026]},handler(u){u.acceptSelectedSuggestion(!1,!0)},menuOpts:[{menuId:Xn,group:"left",order:2,when:L.and(ze.HasFocusedSuggestion,ze.HasInsertAndReplaceRange,ze.InsertMode.isEqualTo("insert")),title:e(1538,"Replace")},{menuId:Xn,group:"left",order:2,when:L.and(ze.HasFocusedSuggestion,ze.HasInsertAndReplaceRange,ze.InsertMode.isEqualTo("replace")),title:e(1539,"Insert")}]}));Te.registerCommandAlias("acceptSelectedSuggestionOnEnter","acceptSelectedSuggestion");K(new Wi({id:"hideSuggestWidget",precondition:ze.Visible,handler:(u)=>u.cancelSuggestWidget(),kbOpts:{weight:to,kbExpr:r.textInputFocus,primary:9,secondary:[1033]}}));K(new Wi({id:"selectNextSuggestion",precondition:L.and(ze.Visible,L.or(ze.MultipleSuggestions,ze.HasFocusedSuggestion.negate())),handler:(u)=>u.selectNextSuggestion(),kbOpts:{weight:to,kbExpr:r.textInputFocus,primary:18,secondary:[2066],mac:{primary:18,secondary:[2066,300]}},menuOpts:{menuId:Xn,group:"left",order:0,when:ze.HasFocusedSuggestion.toNegated(),title:e(1540,"Select")}}));K(new Wi({id:"selectNextPageSuggestion",precondition:L.and(ze.Visible,L.or(ze.MultipleSuggestions,ze.HasFocusedSuggestion.negate())),handler:(u)=>u.selectNextPageSuggestion(),kbOpts:{weight:to,kbExpr:r.textInputFocus,primary:12,secondary:[2060]}}));K(new Wi({id:"selectLastSuggestion",precondition:L.and(ze.Visible,L.or(ze.MultipleSuggestions,ze.HasFocusedSuggestion.negate())),handler:(u)=>u.selectLastSuggestion()}));K(new Wi({id:"selectPrevSuggestion",precondition:L.and(ze.Visible,L.or(ze.MultipleSuggestions,ze.HasFocusedSuggestion.negate())),handler:(u)=>u.selectPrevSuggestion(),kbOpts:{weight:to,kbExpr:r.textInputFocus,primary:16,secondary:[2064],mac:{primary:16,secondary:[2064,302]}}}));K(new Wi({id:"selectPrevPageSuggestion",precondition:L.and(ze.Visible,L.or(ze.MultipleSuggestions,ze.HasFocusedSuggestion.negate())),handler:(u)=>u.selectPrevPageSuggestion(),kbOpts:{weight:to,kbExpr:r.textInputFocus,primary:11,secondary:[2059]}}));K(new Wi({id:"selectFirstSuggestion",precondition:L.and(ze.Visible,L.or(ze.MultipleSuggestions,ze.HasFocusedSuggestion.negate())),handler:(u)=>u.selectFirstSuggestion()}));K(new Wi({id:"focusSuggestion",precondition:L.and(ze.Visible,ze.HasFocusedSuggestion.negate()),handler:(u)=>u.focusSuggestion(),kbOpts:{weight:to,kbExpr:r.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[2087]}}}));K(new Wi({id:"focusAndAcceptSuggestion",precondition:L.and(ze.Visible,ze.HasFocusedSuggestion.negate()),handler:(u)=>{u.focusSuggestion(),u.acceptSelectedSuggestion(!0,!1)}}));K(new Wi({id:"toggleSuggestionDetails",precondition:L.and(ze.Visible,ze.HasFocusedSuggestion),handler:(u)=>u.toggleSuggestionDetails(),kbOpts:{weight:to,kbExpr:r.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[2087]}},menuOpts:[{menuId:Xn,group:"right",order:1,when:L.and(ze.DetailsVisible,ze.CanResolve),title:e(1541,"Show Less")},{menuId:Xn,group:"right",order:1,when:L.and(ze.DetailsVisible.toNegated(),ze.CanResolve),title:e(1542,"Show More")}]}));K(new Wi({id:"toggleExplainMode",precondition:ze.Visible,handler:(u)=>u.toggleExplainMode(),kbOpts:{weight:100,primary:2138}}));K(new Wi({id:"toggleSuggestionFocus",precondition:ze.Visible,handler:(u)=>u.toggleSuggestionFocus(),kbOpts:{weight:to,kbExpr:r.textInputFocus,primary:2570,mac:{primary:778}}}));K(new Wi({id:"insertBestCompletion",precondition:L.and(r.textInputFocus,L.equals("config.editor.tabCompletion","on"),_u.AtEnd,ze.Visible.toNegated(),Dd.OtherSuggestions.toNegated(),Bt.InSnippetMode.toNegated()),handler:(u,n)=>{u.triggerSuggestAndAcceptBest(dn(n)?{fallback:"tab",...n}:{fallback:"tab"})},kbOpts:{weight:to,primary:2}}));K(new Wi({id:"insertNextSuggestion",precondition:L.and(r.textInputFocus,L.equals("config.editor.tabCompletion","on"),Dd.OtherSuggestions,ze.Visible.toNegated(),Bt.InSnippetMode.toNegated()),handler:(u)=>u.acceptNextSuggestion(),kbOpts:{weight:to,kbExpr:r.textInputFocus,primary:2}}));K(new Wi({id:"insertPrevSuggestion",precondition:L.and(r.textInputFocus,L.equals("config.editor.tabCompletion","on"),Dd.OtherSuggestions,ze.Visible.toNegated(),Bt.InSnippetMode.toNegated()),handler:(u)=>u.acceptPrevSuggestion(),kbOpts:{weight:to,kbExpr:r.textInputFocus,primary:1026}}));K(new class extends nn{constructor(){super({id:"suggestWidgetCopy",precondition:ze.DetailsFocused,kbOpts:{weight:to+10,kbExpr:ze.DetailsFocused,primary:2081,win:{primary:2081,secondary:[2067]}}})}runEditorCommand(u,n){B(n.getDomNode()).document.execCommand("copy")}});O(class extends U{constructor(){super({id:"editor.action.resetSuggestSize",label:b(1544,"Reset Suggest Widget Size"),precondition:void 0})}run(u,n){wn.get(n)?.resetWidgetSize()}});class mE extends i{get selectedItem(){return this._currentSuggestItemInfo}constructor(u,n,h){super();this.editor=u,this.suggestControllerPreselector=n,this.onWillAccept=h,this.isSuggestWidgetVisible=!1,this.isShiftKeyPressed=!1,this._isActive=!1,this._currentSuggestItemInfo=void 0,this._onDidSelectedItemChange=this._register(new o),this.onDidSelectedItemChange=this._onDidSelectedItemChange.event,this._register(u.onKeyDown((p)=>{if(p.shiftKey&&!this.isShiftKeyPressed)this.isShiftKeyPressed=!0,this.update(this._isActive)})),this._register(u.onKeyUp((p)=>{if(p.shiftKey&&this.isShiftKeyPressed)this.isShiftKeyPressed=!1,this.update(this._isActive)}));let g=wn.get(this.editor);if(g){this._register(g.registerSelector({priority:100,select:(v,S,C)=>{let x=this.editor.getModel();if(!x)return-1;let T=this.suggestControllerPreselector(),R=T?Uo(T,x):void 0;if(!R)return-1;let Z=s.lift(S),Y=C.map((te,oe)=>{let ne=Su.fromSuggestion(g,x,Z,te,this.isShiftKeyPressed),he=Uo(ne.getSingleTextEdit(),x),ge=rm(R,he);return{index:oe,valid:ge,prefixLength:he.text.length,suggestItem:te}}).filter((te)=>te&&te.valid&&te.prefixLength>0),Q=g0(Y,jn((te)=>te.prefixLength,Vi));return Q?Q.index:-1}}));let p=!1,m=()=>{if(p)return;p=!0,this._register(g.widget.value.onDidShow(()=>{this.isSuggestWidgetVisible=!0,this.update(!0)})),this._register(g.widget.value.onDidHide(()=>{this.isSuggestWidgetVisible=!1,this.update(!1)})),this._register(g.widget.value.onDidFocus(()=>{this.isSuggestWidgetVisible=!0,this.update(!0)}))};this._register(I.once(g.model.onDidTrigger)((v)=>{m()})),this._register(g.onWillInsertSuggestItem((v)=>{let S=this.editor.getPosition(),C=this.editor.getModel();if(!S||!C)return;let x=Su.fromSuggestion(g,C,S,v.item,this.isShiftKeyPressed);this.onWillAccept(x)}))}this.update(this._isActive)}update(u){let n=this.getSuggestItemInfo();if(this._isActive!==u||!vN(this._currentSuggestItemInfo,n))this._isActive=u,this._currentSuggestItemInfo=n,this._onDidSelectedItemChange.fire()}getSuggestItemInfo(){let u=wn.get(this.editor);if(!u||!this.isSuggestWidgetVisible)return;let n=u.widget.value.getFocusedItem(),h=this.editor.getPosition(),g=this.editor.getModel();if(!n||!h||!g)return;return Su.fromSuggestion(u,g,h,n.item,this.isShiftKeyPressed)}stopForceRenderingAbove(){wn.get(this.editor)?.stopForceRenderingAbove()}forceRenderingAbove(){wn.get(this.editor)?.forceRenderingAbove()}}class Su{static fromSuggestion(u,n,h,g,p){let{insertText:m}=g.completion,v=!1;if(g.completion.insertTextRules&4){let C=new no().parse(m);if(C.children.length<100)Ac.adjustWhitespace(n,h,!0,C);m=C.toString(),v=!0}let S=u.getOverwriteInfo(g,p);return new Su(t.fromPositions(h.delta(0,-S.overwriteBefore),h.delta(0,Math.max(S.overwriteAfter,0))),m,g.completion.kind,v,g.container.incomplete??!1)}constructor(u,n,h,g,p){this.range=u,this.insertText=n,this.completionItemKind=h,this.isSnippetText=g,this.listIncomplete=p}equals(u){return this.range.equalsRange(u.range)&&this.insertText===u.insertText&&this.completionItemKind===u.completionItemKind&&this.isSnippetText===u.isSnippetText}toSelectedSuggestionInfo(){return new r0(this.range,this.insertText,this.completionItemKind,this.isSnippetText)}getSingleTextEdit(){return new bt(this.range,this.insertText)}}function vN(u,n){if(u===n)return!0;if(!u||!n)return!1;return u.equals(n)}class Ww extends i{constructor(u,n,h){super();this._editorObs=u,this._handleSuggestAccepted=n,this._suggestControllerPreselector=h,this._suggestWidgetAdaptor=this._register(new mE(this._editorObs.editor,()=>(this._editorObs.forceUpdate(),this._suggestControllerPreselector()),(g)=>this._editorObs.forceUpdate((p)=>{this._handleSuggestAccepted(g)}))),this.selectedItem=Pe(this,(g)=>this._suggestWidgetAdaptor.onDidSelectedItemChange(()=>{this._editorObs.forceUpdate((p)=>g(void 0))}),()=>this._suggestWidgetAdaptor.selectedItem)}stopForceRenderingAbove(){this._suggestWidgetAdaptor.stopForceRenderingAbove()}forceRenderingAbove(){this._suggestWidgetAdaptor.forceRenderingAbove()}}class Bw{constructor(u,n){this.lineNumber=u,this.columnRange=n}}class Em{constructor(u,n){if(this.startColumn=u,this.endColumnExclusive=n,u>n)throw new H(`startColumn ${u} cannot be after endColumnExclusive ${n}`)}toRange(u){return new t(u,this.startColumn,u,this.endColumnExclusive)}equals(u){return this.startColumn===u.startColumn&&this.endColumnExclusive===u.endColumnExclusive}toZeroBasedOffsetRange(){return new V(this.startColumn-1,this.endColumnExclusive-1)}}class ta{static fromLineTokens(u){let n=[];for(let h=0;h<u.getCount();h++)n.push(new Vw(u.getTokenText(h),u.getMetadata(h)));return ta.create(n)}static create(u){return new ta(u)}constructor(u){this._tokenInfo=u}toLineTokens(u){return Tt.createFromTextAndMetadata(this.map((n,h)=>({text:h.text,metadata:h.metadata})),u)}map(u){let n=[],h=0;for(let g of this._tokenInfo){let p=new V(h,h+g.text.length);n.push(u(p,g)),h+=g.text.length}return n}slice(u){let n=[],h=0;for(let g of this._tokenInfo){let p=h,m=p+g.text.length;if(m>u.start){if(p>=u.endExclusive)break;let v=Math.max(0,u.start-p),S=Math.max(0,m-u.endExclusive);n.push(new Vw(g.text.slice(v,g.text.length-S),g.metadata))}h+=g.text.length}return ta.create(n)}append(u){let n=this._tokenInfo.concat(u._tokenInfo);return ta.create(n)}}class Vw{constructor(u,n){this.text=u,this.metadata=n}}var wN=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},SN=function(u,n){return function(h,g){n(h,g,u)}};class Tm{static from(u){if(!u)return;return new Tm(u.icon)}constructor(u=_.warning){this.icon=u}}var bE="ghost-text",na=class u extends i{constructor(n,h,g,p){super();if(this._editor=n,this._data=h,this._languageService=p,this._isDisposed=j(this,!1),this._warningState=f((m)=>{let v=this._data.read(m),S=v?.warning;if(!v||!S)return;let C=v.ghostText;return{lineNumber:C.lineNumber,position:new s(C.lineNumber,C.parts[0].column),icon:S.icon}}),this._onDidClick=this._register(new o),this.onDidClick=this._onDidClick.event,this._nonWhitespaceCount=f(this,(m)=>{let v=this._data.read(m);if(!v)return;return v.ghostText.parts.map((x)=>x.lines.map((T)=>T.line).join("")).join("").replace(/\s/g,"").length}),this._extraClassNames=f(this,(m)=>{let v=this._extraClasses.slice();if(this._warningState.read(m))v.push("warning");let S=this._nonWhitespaceCount.read(m);if(this._highlightShortText&&S&&S<3)v.push("short-text");else if(this._useSyntaxHighlighting.read(m))v.push("syntax-highlighted");return v.map((x)=>` ${x}`).join("")}),this._state=f(this,(m)=>{if(this._isDisposed.read(m))return;let v=this._data.read(m);if(!v)return;let S=this._editorObs.model.read(m);if(!S)return;let C=v.ghostText,x=C instanceof zh?C.columnRange:void 0,T=this._useSyntaxHighlighting.read(m),R=this._extraClassNames.read(m),{inlineTexts:Z,additionalLines:Y,hiddenRange:Q,additionalLinesOriginalSuffix:te}=CN(C,S,bE+R),oe=S.getLineContent(C.lineNumber),ne=new _o(Z.map((We)=>li.insert(We.column-1,We.text))),he=T?S.tokenization.tokenizeLinesAt(C.lineNumber,[ne.apply(oe),...Y.map((We)=>We.content)]):void 0,ge=ne.getNewRanges(),_e=Z.map((We,Ie)=>({...We,tokens:he?.[0]?.getTokensInRange(ge[Ie])})),Se=Y.map((We,Ie)=>{let Ve=he?.[Ie+1]??Tt.createEmpty(We.content,this._languageService.languageIdCodec);if(Ie===Y.length-1&&te){let qe=ta.fromLineTokens(S.tokenization.getLineTokens(te.lineNumber)).slice(te.columnRange.toZeroBasedOffsetRange());Ve=ta.fromLineTokens(Ve).append(qe).toLineTokens(Ve.languageIdCodec)}return new SE(Ve,We.decorations)}),ae=this._editor.getSelection()?.getStartPosition().column,pe=_e.filter((We)=>We.text!==""),Me=pe.length!==0,Ae=new zc((Me?pe[0].column:1)-ae,Me?0:Y.findIndex((We)=>We.content!=="")+1,Me?1:0,Y.length+(Me?1:0),0,Fv(pe.map((We)=>We.text.length))+Fv(Se.map((We)=>We.content.getTextLength())),pe.length+(Y.length>0?1:0),pe.length>1&&Se.length===0?pe.every((We)=>We.text===pe[0].text):void 0);return{replacedRange:x,inlineTexts:_e,additionalLines:Se,hiddenRange:Q,lineNumber:C.lineNumber,additionalReservedLineCount:this._minReservedLineCount.read(m),targetTextModel:S,syntaxHighlightingEnabled:T,telemetryViewData:Ae,handleInlineCompletionShown:v.handleInlineCompletionShown}}),this._decorations=f(this,(m)=>{let v=this._state.read(m);if(!v)return[];let S=[],C=this._extraClassNames.read(m);if(v.replacedRange)S.push({range:v.replacedRange.toRange(v.lineNumber),options:{inlineClassName:"inline-completion-text-to-replace"+C,description:"GhostTextReplacement"}});if(v.hiddenRange)S.push({range:v.hiddenRange.toRange(v.lineNumber),options:{inlineClassName:"ghost-text-hidden",description:"ghost-text-hidden"}});for(let x of v.inlineTexts){let T="";if(this._highlightShortText&&x.text.length<5)T+=" short-text";S.push({range:t.fromPositions(new s(v.lineNumber,x.column)),options:{description:"ghost-text-decoration",after:{content:x.text,tokens:x.tokens,inlineClassName:(x.preview?"ghost-text-decoration-preview":"ghost-text-decoration")+(this._isClickable?" clickable":"")+C+T+x.lineDecorations.map((R)=>" "+R.className).join(" "),cursorStops:ys.Left,attachedData:new Dm(this)},showIfCollapsed:!0}})}return S}),this.isHovered=f(this,(m)=>{if(this._isDisposed.read(m))return!1;return this._isInlineTextHovered.read(m)||this._additionalLinesWidget.isHovered.read(m)}),this._extraClasses=g.extraClasses??[],this._isClickable=g.isClickable??!1,this._shouldKeepCursorStable=g.shouldKeepCursorStable??!1,this._minReservedLineCount=g.minReservedLineCount??Ne(0),this._useSyntaxHighlighting=g.useSyntaxHighlighting??Ne(!0),this._highlightShortText=g.highlightShortSuggestions??!1,this._editorObs=ct(this._editor),this._additionalLinesWidget=this._register(new wE(this._editor,Rn({owner:this,equalsFn:su(cf())},(m)=>{let v=this._state.read(m);return v?new vE(v.lineNumber,v.additionalLines,v.additionalReservedLineCount):void 0}),this._shouldKeepCursorStable,this._isClickable)),this._isInlineTextHovered=this._editorObs.isTargetHovered((m)=>m.target.type===6&&m.target.detail.injectedText?.options.attachedData instanceof Dm&&m.target.detail.injectedText.options.attachedData.owner===this,this._store),this._register(N(()=>{this._isDisposed.set(!0,void 0)})),this._register(this._editorObs.setDecorations(this._decorations)),this._isClickable)this._register(this._additionalLinesWidget.onDidClick((m)=>this._onDidClick.fire(m))),this._register(this._editor.onMouseUp((m)=>{if(m.target.type!==6)return;let v=m.target.detail.injectedText?.options.attachedData;if(v instanceof Dm&&v.owner===this)this._onDidClick.fire(m.event)}));this._register(W((m)=>{let v=this._state.read(m);v?.handleInlineCompletionShown(v.telemetryViewData)})),this._register(ni((m,v)=>{return}))}static getWarningWidgetContext(n){let h=n.ghostTextViewWarningWidgetData;if(h)return h;else if(n.parentElement)return this.getWarningWidgetContext(n.parentElement);return}ownsViewZone(n){return this._additionalLinesWidget.viewZoneId===n}};na=wN([SN(3,xt)],na);class Dm{constructor(u){this.owner=u}}function CN(u,n,h){let g=[],p=[];function m(R,Z){if(p.length>0){let Y=p[p.length-1];if(Z)Y.decorations.push(new Xi(Y.content.length+1,Y.content.length+1+R[0].line.length,Z,0));Y.content+=R[0].line,R=R.slice(1)}for(let Y of R)p.push({content:Y.line,decorations:Z?[new Xi(1,Y.line.length+1,Z,0),...Y.lineDecorations]:[...Y.lineDecorations]})}let v=n.getLineContent(u.lineNumber),S=void 0,C=0;for(let R of u.parts){let Z=R.lines;if(S===void 0)g.push({column:R.column,text:Z[0].line,preview:R.preview,lineDecorations:Z[0].lineDecorations}),Z=Z.slice(1);else m([{line:v.substring(C,R.column-1),lineDecorations:[]}],void 0);if(Z.length>0){if(m(Z,h),S===void 0&&R.column<=v.length)S=R.column}C=R.column-1}let x=void 0;if(S!==void 0)x=new Bw(u.lineNumber,new Em(C+1,v.length+1));let T=S!==void 0?new Em(S,v.length+1):void 0;return{inlineTexts:g,additionalLines:p,hiddenRange:T,additionalLinesOriginalSuffix:x}}class vE{constructor(u,n,h){this.lineNumber=u,this.additionalLines=n,this.minReservedLineCount=h}equals(u){if(this.lineNumber!==u.lineNumber)return!1;if(this.minReservedLineCount!==u.minReservedLineCount)return!1;return ot(this.additionalLines,u.additionalLines,cf())}}class wE extends i{get viewZoneId(){return this._viewZoneInfo?.viewZoneId}constructor(u,n,h,g){super();if(this._editor=u,this._lines=n,this._shouldKeepCursorStable=h,this._isClickable=g,this._viewZoneHeight=j("viewZoneHeight",void 0),this.editorOptionsChanged=Ii("editorOptionChanged",I.filter(this._editor.onDidChangeConfiguration,(p)=>p.hasChanged(40)||p.hasChanged(133)||p.hasChanged(113)||p.hasChanged(108)||p.hasChanged(60)||p.hasChanged(59)||p.hasChanged(75)||p.hasChanged(176))),this._onDidClick=this._register(new o),this.onDidClick=this._onDidClick.event,this._viewZoneListener=this._register(new ce),this.isHovered=ct(this._editor).isTargetHovered((p)=>fE(p.target.element),this._store),this.hasBeenAccepted=!1,this._editor instanceof xc&&this._shouldKeepCursorStable)this._register(this._editor.onBeforeExecuteEdit((p)=>this.hasBeenAccepted=p.source==="inlineCompletionAccept"));this._register(W((p)=>{let m=this._lines.read(p);if(this.editorOptionsChanged.read(p),m)this.hasBeenAccepted=!1,this.updateLines(m.lineNumber,m.additionalLines,m.minReservedLineCount);else this.clear()}))}dispose(){super.dispose(),this.clear()}clear(){this._viewZoneListener.clear(),this._editor.changeViewZones((u)=>{this.removeActiveViewZone(u)})}updateLines(u,n,h){let g=this._editor.getModel();if(!g)return;let{tabSize:p}=g.getOptions();ct(this._editor).transaction((m)=>{this._editor.changeViewZones((v)=>{let S=new d;this.removeActiveViewZone(v);let C=Math.max(n.length,h);if(C>0){let x=document.createElement("div");if(yN(x,p,n,this._editor.getOptions(),this._isClickable),this._isClickable)S.add(c(x,"mousedown",(T)=>{T.preventDefault()})),S.add(c(x,"click",(T)=>{if(fE(T.target))this._onDidClick.fire(new si(B(T),T))}));this.addViewZone(v,u,C,x)}this._viewZoneListener.value=S})})}addViewZone(u,n,h,g){let p=u.addZone({afterLineNumber:n,heightInLines:h,domNode:g,afterColumnAffinity:1,onComputedHeight:(m)=>{this._viewZoneHeight.set(m,void 0)}});this.keepCursorStable(n,h),this._viewZoneInfo={viewZoneId:p,heightInLines:h,lineNumber:n}}removeActiveViewZone(u){if(this._viewZoneInfo){if(u.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(u,n){if(!this._shouldKeepCursorStable)return;let h=this._editor.getSelection()?.getStartPosition()?.lineNumber;if(h!==void 0&&u<h)this._editor.setScrollTop(this._editor.getScrollTop()+n*this._editor.getOption(75))}}function fE(u){return Le(u)&&u.classList.contains(bE)}class SE{constructor(u,n){this.content=u,this.decorations=n}equals(u){if(!this.content.equals(u.content))return!1;return Xi.equalsArr(this.decorations,u.decorations)}}function yN(u,n,h,g,p){let m=g.get(40),v=g.get(133),S="none",C=g.get(108),x=g.get(60),T=g.get(59),R=g.get(75),Z=g.get(176)==="twoCells",Y="suggest-preview-text";if(p)Y+=" clickable";let Q=new vs(1e4);Q.appendString(`<div class="${Y}">`);for(let ne=0,he=h.length;ne<he;ne++){let ge=h[ne],_e=ge.content;Q.appendString('<div class="view-line'),Q.appendString('" style="top:'),Q.appendString(String(ne*R)),Q.appendString('px;width:1000000px;">');let Se=_e.getLineContent(),ae=ou(Se),pe=yl(Se);hd(new ws(T.isMonospace&&!m,T.canUseHalfwidthRightwardsArrow,Se,!1,ae,pe,0,_e,ge.decorations.slice(),n,0,T.spaceWidth,T.middotWidth,T.wsmiddotWidth,v,"none",C,x!==Nr.OFF,null,null,0,!1,Z),Q),Q.appendString("</div>")}Q.appendString("</div>"),Sn(u,T);let te=Q.build(),oe=_E?_E.createHTML(te):te;u.innerHTML=oe}var _E=jo("editorGhostText",{createHTML:(u)=>u});class sa{constructor(u,n){this.width=u,this.height=n}toString(){return`(${this.width},${this.height})`}transpose(){return new sa(this.height,this.width)}toDimension(){return{width:this.width,height:this.height}}}class st{static fromPoints(u,n){return new st(u.x,u.y,n.x,n.y)}static fromPointSize(u,n){return new st(u.x,u.y,u.x+n.x,u.y+n.y)}static fromLeftTopRightBottom(u,n,h,g){return new st(u,n,h,g)}static fromLeftTopWidthHeight(u,n,h,g){return new st(u,n,u+h,n+g)}static fromRanges(u,n){return new st(u.start,n.start,u.endExclusive,n.endExclusive)}static hull(u){let{MAX_SAFE_INTEGER:n,MAX_SAFE_INTEGER:h,MIN_SAFE_INTEGER:g,MIN_SAFE_INTEGER:p}=Number;for(let m of u)n=Math.min(n,m.left),h=Math.min(h,m.top),g=Math.max(g,m.right),p=Math.max(p,m.bottom);return new st(n,h,g,p)}get width(){return this.right-this.left}get height(){return this.bottom-this.top}constructor(u,n,h,g){if(this.left=u,this.top=n,this.right=h,this.bottom=g,u>h)throw new H("Invalid arguments: Horizontally offset by "+(u-h));if(n>g)throw new H("Invalid arguments: Vertically offset by "+(n-g))}withMargin(u,n,h,g){let p,m,v,S;if(n===void 0&&h===void 0&&g===void 0)p=m=v=S=u;else if(h===void 0&&g===void 0)p=m=n,v=S=u;else p=g,m=n,v=u,S=h;return new st(this.left-p,this.top-v,this.right+m,this.bottom+S)}intersectVertical(u){let n=Math.max(this.top,u.start),h=Math.min(this.bottom,u.endExclusive);return new st(this.left,n,this.right,Math.max(n,h))}intersectHorizontal(u){let n=Math.max(this.left,u.start),h=Math.min(this.right,u.endExclusive);return new st(n,this.top,Math.max(n,h),this.bottom)}toString(){return`Rect{(${this.left},${this.top}), (${this.right},${this.bottom})}`}intersect(u){let n=Math.max(this.left,u.left),h=Math.min(this.right,u.right),g=Math.max(this.top,u.top),p=Math.min(this.bottom,u.bottom);if(n>h||g>p)return;return new st(n,g,h,p)}containsRect(u){return this.left<=u.left&&this.top<=u.top&&this.right>=u.right&&this.bottom>=u.bottom}containsPoint(u){return this.left<=u.x&&this.top<=u.y&&this.right>=u.x&&this.bottom>=u.y}moveToBeContainedIn(u){let n=this.width,h=this.height,g=this.left,p=this.top;if(g<u.left)g=u.left;else if(g+n>u.right)g=u.right-n;if(p<u.top)p=u.top;else if(p+h>u.bottom)p=u.bottom-h;return new st(g,p,g+n,p+h)}withWidth(u){return new st(this.left,this.top,this.left+u,this.bottom)}withHeight(u){return new st(this.left,this.top,this.right,this.top+u)}withTop(u){return new st(this.left,u,this.right,this.bottom)}withLeft(u){return new st(u,this.top,this.right,this.bottom)}translateX(u){return new st(this.left+u,this.top,this.right+u,this.bottom)}translateY(u){return new st(this.left,this.top+u,this.right,this.bottom+u)}getLeftBottom(){return new vi(this.left,this.bottom)}getRightBottom(){return new vi(this.right,this.bottom)}getRightTop(){return new vi(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(u){return new st(u.start,this.top,u.endExclusive,this.bottom)}getSize(){return new sa(this.width,this.height)}}class Gc{constructor(u,n,h,g=null){this.startLineNumbers=u,this.endLineNumbers=n,this.lastLineRelativePosition=h,this.showEndForLine=g}equals(u){return!!u&&this.lastLineRelativePosition===u.lastLineRelativePosition&&this.showEndForLine===u.showEndForLine&&ot(this.startLineNumbers,u.startLineNumbers)&&ot(this.endLineNumbers,u.endLineNumbers)}static get Empty(){return new Gc([],[],0)}}var CE=jo("stickyScrollViewLayer",{createHTML:(u)=>u}),zw="data-sticky-line-index",yE="data-sticky-is-line",xN="data-sticky-is-line-number",xE="data-sticky-is-folding-icon";class Kw extends i{get height(){return this._height}constructor(u){super();this._foldingIconStore=this._register(new d),this._rootDomNode=document.createElement("div"),this._lineNumbersDomNode=document.createElement("div"),this._linesDomNodeScrollable=document.createElement("div"),this._linesDomNode=document.createElement("div"),this._renderedStickyLines=[],this._lineNumbers=[],this._lastLineRelativePosition=0,this._minContentWidthInPx=0,this._isOnGlyphMargin=!1,this._height=-1,this._onDidChangeStickyScrollHeight=this._register(new o),this.onDidChangeStickyScrollHeight=this._onDidChangeStickyScrollHeight.event,this._editor=u,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",u instanceof Ni),this._rootDomNode.appendChild(this._lineNumbersDomNode),this._rootDomNode.appendChild(this._linesDomNodeScrollable),this._setHeight(0);let n=()=>{this._linesDomNode.style.left=this._editor.getOption(131).scrollWithEditor?`-${this._editor.getScrollLeft()}px`:"0px"};this._register(this._editor.onDidChangeConfiguration((h)=>{if(h.hasChanged(131))n()})),this._register(this._editor.onDidScrollChange((h)=>{if(h.scrollLeftChanged)n();if(h.scrollWidthChanged)this._updateWidgetWidth()})),this._register(this._editor.onDidChangeModel(()=>{n(),this._updateWidgetWidth()})),n(),this._register(this._editor.onDidLayoutChange((h)=>{this._updateWidgetWidth()})),this._updateWidgetWidth()}get lineNumbers(){return this._lineNumbers}get lineNumberCount(){return this._lineNumbers.length}getRenderedStickyLine(u){return this._renderedStickyLines.find((n)=>n.lineNumber===u)}getCurrentLines(){return this._lineNumbers}setState(u,n,h){let g=!this._state&&!u,p=this._state&&this._state.equals(u);if(h===void 0&&(g||p))return;let m=this._findRenderingData(u),v=this._lineNumbers;this._lineNumbers=m.lineNumbers,this._lastLineRelativePosition=m.lastLineRelativePosition;let S=this._findIndexToRebuildFrom(v,this._lineNumbers,h);this._renderRootNode(this._lineNumbers,this._lastLineRelativePosition,n,S),this._state=u}_findRenderingData(u){if(!u)return{lineNumbers:[],lastLineRelativePosition:0};let n=[...u.startLineNumbers];if(u.showEndForLine!==null)n[u.showEndForLine]=u.endLineNumbers[u.showEndForLine];let h=0;for(let g=0;g<n.length;g++){let p=new s(n[g],1),m=this._editor._getViewModel();if(m&&p.lineNumber<=m.getLineCount())h+=this._editor.getLineHeightForPosition(new s(n[g],1))}if(h===0)return{lineNumbers:[],lastLineRelativePosition:0};return{lineNumbers:n,lastLineRelativePosition:u.lastLineRelativePosition}}_findIndexToRebuildFrom(u,n,h){if(n.length===0)return 0;if(h!==void 0)return h;let g=n.findIndex((p)=>!u.includes(p));return g===-1?0:g}_updateWidgetWidth(){let u=this._editor.getLayoutInfo(),n=u.contentLeft;this._lineNumbersDomNode.style.width=`${n}px`,this._linesDomNodeScrollable.style.setProperty("--vscode-editorStickyScroll-scrollableWidth",`${this._editor.getScrollWidth()-u.verticalScrollbarWidth}px`),this._rootDomNode.style.width=`${u.width-u.verticalScrollbarWidth}px`}_useFoldingOpacityTransition(u){this._lineNumbersDomNode.style.setProperty("--vscode-editorStickyScroll-foldingOpacityTransition",`opacity ${u?0.5:0}s`)}_setFoldingIconsVisibility(u){for(let n of this._renderedStickyLines){let h=n.foldingIcon;if(!h)continue;h.setVisible(u?!0:h.isCollapsed)}}async _renderRootNode(u,n,h,g){let p=this._editor._getViewModel();if(!p){this._clearWidget();return}if(u.length===0){this._clearWidget();return}let m=[],v=u[u.length-1],S=0;for(let x=0;x<this._renderedStickyLines.length;x++)if(x<g){let T=this._renderedStickyLines[x];m.push(this._updatePosition(T,S,T.lineNumber===v)),S+=T.height}else{let T=this._renderedStickyLines[x];T.lineNumberDomNode.remove(),T.lineDomNode.remove()}let C=this._editor.getLayoutInfo();for(let x=g;x<u.length;x++){let T=u[x];if(T>p.getLineCount())continue;let R=this._renderChildNode(p,x,T,S,v===T,h,C);S+=R.height,this._linesDomNode.appendChild(R.lineDomNode),this._lineNumbersDomNode.appendChild(R.lineNumberDomNode),m.push(R)}if(h)this._setFoldingHoverListeners(),this._useFoldingOpacityTransition(!this._isOnGlyphMargin);this._minContentWidthInPx=Math.max(...this._renderedStickyLines.map((x)=>x.scrollWidth))+C.verticalScrollbarWidth,this._renderedStickyLines=m,this._setHeight(S+n),this._editor.layoutOverlayWidget(this)}_clearWidget(){for(let u=0;u<this._renderedStickyLines.length;u++){let n=this._renderedStickyLines[u];n.lineNumberDomNode.remove(),n.lineDomNode.remove()}this._setHeight(0)}_setHeight(u){if(this._height===u)return;if(this._height=u,this._height===0)this._rootDomNode.style.display="none";else this._rootDomNode.style.display="block",this._lineNumbersDomNode.style.height=`${this._height}px`,this._linesDomNodeScrollable.style.height=`${this._height}px`,this._rootDomNode.style.height=`${this._height}px`;this._onDidChangeStickyScrollHeight.fire({height:this._height})}_setFoldingHoverListeners(){if(this._foldingIconStore.clear(),this._editor.getOption(126)!=="mouseover")return;this._foldingIconStore.clear(),this._foldingIconStore.add(c(this._lineNumbersDomNode,E.MOUSE_ENTER,()=>{this._isOnGlyphMargin=!0,this._setFoldingIconsVisibility(!0)})),this._foldingIconStore.add(c(this._lineNumbersDomNode,E.MOUSE_LEAVE,()=>{this._isOnGlyphMargin=!1,this._useFoldingOpacityTransition(!0),this._setFoldingIconsVisibility(!1)}))}_renderChildNode(u,n,h,g,p,m,v){let S=new IE(this._editor,u,v,m,this._isOnGlyphMargin,n,h);return this._updatePosition(S,g,p)}_updatePosition(u,n,h){let{lineDomNode:g,lineNumberDomNode:p}=u;if(h){g.style.zIndex="0",p.style.zIndex="0";let v=`${n+this._lastLineRelativePosition+(u.foldingIcon?.isCollapsed?1:0)}px`;g.style.top=v,p.style.top=v}else g.style.zIndex="1",p.style.zIndex="1",g.style.top=`${n}px`,p.style.top=`${n}px`;return u}getId(){return"editor.contrib.stickyScrollWidget"}getDomNode(){return this._rootDomNode}getPosition(){return{preference:2,stackOrdinal:10}}getMinContentWidthInPx(){return this._minContentWidthInPx}focusLineWithIndex(u){if(0<=u&&u<this._renderedStickyLines.length)this._renderedStickyLines[u].lineDomNode.focus()}getEditorPositionFromNode(u){if(!u||u.children.length>0)return null;let n=this._getRenderedStickyLineFromChildDomNode(u);if(!n)return null;let h=Kh(n.characterMapping,u,0);return new s(n.lineNumber,h)}getLineNumberFromChildDomNode(u){return this._getRenderedStickyLineFromChildDomNode(u)?.lineNumber??null}_getRenderedStickyLineFromChildDomNode(u){let n=this.getLineIndexFromChildDomNode(u);if(n===null||n<0||n>=this._renderedStickyLines.length)return null;return this._renderedStickyLines[n]}getLineIndexFromChildDomNode(u){let n=this._getAttributeValue(u,zw);return n?parseInt(n,10):null}isInStickyLine(u){return this._getAttributeValue(u,yE)!==void 0}isInFoldingIconDomNode(u){return this._getAttributeValue(u,xE)!==void 0}_getAttributeValue(u,n){while(u&&u!==this._rootDomNode){let h=u.getAttribute(n);if(h!==null)return h;u=u.parentElement}return}}class IE{constructor(u,n,h,g,p,m,v){this.index=m,this.lineNumber=v;let S=n.coordinatesConverter.convertModelPositionToViewPosition(new s(v,1)).lineNumber,C=n.getViewLineRenderingData(S),x=u.getOption(76),T=u.getOption(117).verticalScrollbarSize,R;try{R=Xi.filter(C.inlineDecorations,S,C.minColumn,C.maxColumn)}catch(pe){R=[]}let Z=u.getLineHeightForPosition(new s(v,1)),Y=n.getTextDirection(v),Q=u.getOption(59),te=new ws(!0,!0,C.content,C.continuesWithWrappedLine,C.isBasicASCII,C.containsRTL,0,C.tokens,R,C.tabSize,C.startVisibleColumn,Q.spaceWidth,1,1,500,"none",!0,!0,null,Y,T,!1,u.getOption(176)==="twoCells"),oe=new vs(2000),ne=hd(te,oe);this.characterMapping=ne.characterMapping;let he;if(CE)he=CE.createHTML(oe.build());else he=oe.build();let ge=document.createElement("span");ge.setAttribute(zw,String(m)),ge.setAttribute(yE,""),ge.setAttribute("role","listitem"),ge.tabIndex=0,ge.className="sticky-line-content",ge.classList.add(`stickyLine${v}`),ge.style.lineHeight=`${Z}px`,ge.innerHTML=he;let _e=document.createElement("span");_e.setAttribute(zw,String(m)),_e.setAttribute(xN,""),_e.className="sticky-line-number",_e.style.lineHeight=`${Z}px`;let Se=h.contentLeft;_e.style.width=`${Se}px`;let ae=document.createElement("span");if(x.renderType===1||x.renderType===3&&v%10===0)ae.innerText=v.toString();else if(x.renderType===2)ae.innerText=Math.abs(v-u.getPosition().lineNumber).toString();if(ae.className="sticky-line-number-inner",ae.style.width=`${h.lineNumbersWidth}px`,ae.style.paddingLeft=`${h.lineNumbersLeft}px`,_e.appendChild(ae),this.foldingIcon=this._renderFoldingIconForLine(u,g,v,Z,p),this.foldingIcon)_e.appendChild(this.foldingIcon.domNode),this.foldingIcon.domNode.style.left=`${h.lineNumbersWidth+h.lineNumbersLeft}px`,this.foldingIcon.domNode.style.lineHeight=`${Z}px`;u.applyFontInfo(ge),u.applyFontInfo(_e),_e.style.lineHeight=`${Z}px`,ge.style.lineHeight=`${Z}px`,_e.style.height=`${Z}px`,ge.style.height=`${Z}px`,this.scrollWidth=ge.scrollWidth,this.lineDomNode=ge,this.lineNumberDomNode=_e,this.height=Z}_renderFoldingIconForLine(u,n,h,g,p){let m=u.getOption(126);if(!n||m==="never")return;let v=n.regions,S=v.findRange(h),C=v.getStartLineNumber(S);if(h!==C)return;let T=v.isCollapsed(S),R=new LE(T,C,v.getEndLineNumber(S),g);return R.setVisible(p?!0:T||m==="always"),R.domNode.setAttribute(xE,""),R}}class LE{constructor(u,n,h,g){this.isCollapsed=u,this.foldingStartLine=n,this.foldingEndLine=h,this.dimension=g,this.domNode=document.createElement("div"),this.domNode.style.width="26px",this.domNode.style.height=`${g}px`,this.domNode.style.lineHeight=`${g}px`,this.domNode.className=J.asClassName(u?zl:Vl)}setVisible(u){this.domNode.style.cursor=u?"pointer":"default",this.domNode.style.opacity=u?"1":"0"}}var IN=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Uw=function(u,n){return function(h,g){n(h,g,u)}};class Rd{remove(){this.parent?.children.delete(this.id)}static findId(u,n){let h;if(typeof u==="string")h=`${n.id}/${u}`;else if(h=`${n.id}/${u.name}`,n.children.get(h)!==void 0)h=`${n.id}/${u.name}_${u.range.startLineNumber}_${u.range.startColumn}`;let g=h;for(let p=0;n.children.get(g)!==void 0;p++)g=`${h}_${p}`;return g}static empty(u){return u.children.size===0}}class Cu extends Rd{constructor(u,n,h){super();this.id=u,this.parent=n,this.symbol=h,this.children=new Map}}class Rm extends Rd{constructor(u,n,h,g){super();this.id=u,this.parent=n,this.label=h,this.order=g,this.children=new Map}}class yr extends Rd{static create(u,n,h){let g=new Ge(h),p=new yr(n.uri),m=u.ordered(n),v=m.map((C,x)=>{let T=Rd.findId(`provider_${x}`,p),R=new Rm(T,p,C.displayName??"Unknown Outline Provider",x);return Promise.resolve(C.provideDocumentSymbols(n,g.token)).then((Z)=>{for(let Y of Z||[])yr._makeOutlineElement(Y,R);return R},(Z)=>(yt(Z),R)).then((Z)=>{if(!Rd.empty(Z))p._groups.set(T,Z);else Z.remove()})}),S=u.onDidChange(()=>{let C=u.ordered(n);if(!ot(C,m))g.cancel()});return Promise.all(v).then(()=>{if(g.token.isCancellationRequested&&!h.isCancellationRequested)return yr.create(u,n,h);else return p._compact()}).finally(()=>{g.dispose(),S.dispose(),g.dispose()})}static _makeOutlineElement(u,n){let h=Rd.findId(u,n),g=new Cu(h,n,u);if(u.children)for(let p of u.children)yr._makeOutlineElement(p,g);n.children.set(g.id,g)}constructor(u){super();this.uri=u,this.id="root",this.parent=void 0,this._groups=new Map,this.children=new Map,this.id="root",this.parent=void 0}_compact(){let u=0;for(let[n,h]of this._groups)if(h.children.size===0)this._groups.delete(n);else u+=1;if(u!==1)this.children=this._groups;else{let n=De.first(this._groups.values());for(let[,h]of n.children)h.parent=this,this.children.set(h.id,h)}return this}getTopLevelSymbols(){let u=[];for(let n of this.children.values())if(n instanceof Cu)u.push(n.symbol);else u.push(...De.map(n.children.values(),(h)=>h.symbol));return u.sort((n,h)=>t.compareRangesUsingStarts(n.range,h.range))}asListOfDocumentSymbols(){let u=this.getTopLevelSymbols(),n=[];return yr._flattenDocumentSymbols(n,u,""),n.sort((h,g)=>s.compare(t.getStartPosition(h.range),t.getStartPosition(g.range))||s.compare(t.getEndPosition(g.range),t.getEndPosition(h.range)))}static _flattenDocumentSymbols(u,n,h){for(let g of n)if(u.push({kind:g.kind,tags:g.tags,name:g.name,detail:g.detail,containerName:g.containerName||h,range:g.range,selectionRange:g.selectionRange,children:void 0}),g.children)yr._flattenDocumentSymbols(u,g.children,g.name)}}var Ah=ie("IOutlineModelService"),qw=class u{constructor(n,h,g){this._languageFeaturesService=n,this._disposables=new d,this._cache=new Ji(15,0.7),this._debounceInformation=h.for(n.documentSymbolProvider,"DocumentSymbols",{min:350}),this._disposables.add(g.onModelRemoved((p)=>{this._cache.delete(p.id)}))}dispose(){this._disposables.dispose()}async getOrCreate(n,h){let g=this._languageFeaturesService.documentSymbolProvider,p=g.ordered(n),m=this._cache.get(n.id);if(!m||m.versionId!==n.getVersionId()||!ot(m.provider,p)){let S=new Ge;m={versionId:n.getVersionId(),provider:p,promiseCnt:0,source:S,promise:yr.create(g,n,S.token),model:void 0},this._cache.set(n.id,m);let C=Date.now();m.promise.then((x)=>{m.model=x,this._debounceInformation.update(n,Date.now()-C)}).catch((x)=>{this._cache.delete(n.id)})}if(m.model)return m.model;m.promiseCnt+=1;let v=h.onCancellationRequested(()=>{if(--m.promiseCnt===0)m.source.cancel(),this._cache.delete(n.id)});try{return await m.promise}finally{v.dispose()}}};qw=IN([Uw(0,z),Uw(1,uo),Uw(2,Et)],qw);xe(Ah,qw,1);class ua{constructor(u,n){this.startLineNumber=u,this.endLineNumber=n}}class Zc{constructor(u,n,h){this.range=u,this.children=n,this.parent=h}}class Nm{constructor(u,n,h,g){this.uri=u,this.version=n,this.element=h,this.outlineProviderId=g}}var Om=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Lu=function(u,n){return function(h,g){n(h,g,u)}},Iu;(function(u){u.OUTLINE_MODEL="outlineModel",u.FOLDING_PROVIDER_MODEL="foldingProviderModel",u.INDENTATION_MODEL="indentationModel"})(Iu||(Iu={}));var pa;(function(u){u[u.VALID=0]="VALID",u[u.INVALID=1]="INVALID",u[u.CANCELED=2]="CANCELED"})(pa||(pa={}));var Mm=class u extends i{constructor(n,h,g,p){super();switch(this._editor=n,this._modelProviders=[],this._modelPromise=null,this._updateScheduler=this._register(new qi(300)),this._updateOperation=this._register(new d),this._editor.getOption(131).defaultModel){case Iu.OUTLINE_MODEL:this._modelProviders.push(new jw(this._editor,p));case Iu.FOLDING_PROVIDER_MODEL:this._modelProviders.push(new Gw(this._editor,h,p));case Iu.INDENTATION_MODEL:this._modelProviders.push(new $w(this._editor,g));break}}dispose(){this._modelProviders.forEach((n)=>n.dispose()),this._updateOperation.clear(),this._cancelModelPromise(),super.dispose()}_cancelModelPromise(){if(this._modelPromise)this._modelPromise.cancel(),this._modelPromise=null}async update(n){return this._updateOperation.clear(),this._updateOperation.add({dispose:()=>{this._cancelModelPromise(),this._updateScheduler.cancel()}}),this._cancelModelPromise(),await this._updateScheduler.trigger(async()=>{for(let h of this._modelProviders){let{statusPromise:g,modelPromise:p}=h.computeStickyModel(n);this._modelPromise=p;let m=await g;if(this._modelPromise!==p)return null;switch(m){case pa.CANCELED:return this._updateOperation.clear(),null;case pa.VALID:return h.stickyModel}}return null}).catch((h)=>(X(h),null))}};Mm=Om([Lu(2,A),Lu(3,z)],Mm);class Zw extends i{constructor(u){super();this._editor=u,this._stickyModel=null}get stickyModel(){return this._stickyModel}_invalid(){return this._stickyModel=null,pa.INVALID}computeStickyModel(u){if(u.isCancellationRequested||!this.isProviderValid())return{statusPromise:this._invalid(),modelPromise:null};let n=Yt((h)=>this.createModelFromProvider(h));return{statusPromise:n.then((h)=>{if(!this.isModelValid(h))return this._invalid();if(u.isCancellationRequested)return pa.CANCELED;return this._stickyModel=this.createStickyModel(u,h),pa.VALID}).then(void 0,(h)=>(X(h),pa.CANCELED)),modelPromise:n}}isModelValid(u){return!0}isProviderValid(){return!0}}var jw=class u extends Zw{constructor(n,h){super(n);this._languageFeaturesService=h}createModelFromProvider(n){return yr.create(this._languageFeaturesService.documentSymbolProvider,this._editor.getModel(),n)}createStickyModel(n,h){let{stickyOutlineElement:g,providerID:p}=this._stickyModelFromOutlineModel(h,this._stickyModel?.outlineProviderId),m=this._editor.getModel();return new Nm(m.uri,m.getVersionId(),g,p)}isModelValid(n){return n&&n.children.size>0}_stickyModelFromOutlineModel(n,h){let g;if(De.first(n.children.values())instanceof Rm){let S=De.find(n.children.values(),(C)=>C.id===h);if(S)g=S.children;else{let C="",x=-1,T=void 0;for(let[R,Z]of n.children.entries()){let Y=this._findSumOfRangesOfGroup(Z);if(Y>x)T=Z,x=Y,C=Z.id}h=C,g=T.children}}else g=n.children;let p=[],m=Array.from(g.values()).sort((S,C)=>{let x=new ua(S.symbol.range.startLineNumber,S.symbol.range.endLineNumber),T=new ua(C.symbol.range.startLineNumber,C.symbol.range.endLineNumber);return this._comparator(x,T)});for(let S of m)p.push(this._stickyModelFromOutlineElement(S,S.symbol.selectionRange.startLineNumber));return{stickyOutlineElement:new Zc(void 0,p,void 0),providerID:h}}_stickyModelFromOutlineElement(n,h){let g=[];for(let m of n.children.values())if(m.symbol.selectionRange.startLineNumber!==m.symbol.range.endLineNumber)if(m.symbol.selectionRange.startLineNumber!==h)g.push(this._stickyModelFromOutlineElement(m,m.symbol.selectionRange.startLineNumber));else for(let v of m.children.values())g.push(this._stickyModelFromOutlineElement(v,m.symbol.selectionRange.startLineNumber));g.sort((m,v)=>this._comparator(m.range,v.range));let p=new ua(n.symbol.selectionRange.startLineNumber,n.symbol.range.endLineNumber);return new Zc(p,g,void 0)}_comparator(n,h){if(n.startLineNumber!==h.startLineNumber)return n.startLineNumber-h.startLineNumber;else return h.endLineNumber-n.endLineNumber}_findSumOfRangesOfGroup(n){let h=0;for(let g of n.children.values())h+=this._findSumOfRangesOfGroup(g);if(n instanceof Cu)return h+n.symbol.range.endLineNumber-n.symbol.selectionRange.startLineNumber;else return h}};jw=Om([Lu(1,z)],jw);class Xw extends Zw{constructor(u){super(u);this._foldingLimitReporter=this._register(new qg(u))}createStickyModel(u,n){let h=this._fromFoldingRegions(n),g=this._editor.getModel();return new Nm(g.uri,g.getVersionId(),h,void 0)}isModelValid(u){return u!==null}_fromFoldingRegions(u){let n=u.length,h=[],g=new Zc(void 0,[],void 0);for(let p=0;p<n;p++){let m=u.getParentIndex(p),v;if(m!==-1)v=h[m];else v=g;let S=new Zc(new ua(u.getStartLineNumber(p),u.getEndLineNumber(p)+1),[],v);v.children.push(S),h.push(S)}return g}}var $w=class u extends Xw{constructor(n,h){super(n);this._languageConfigurationService=h,this.provider=this._register(new Xd(n.getModel(),this._languageConfigurationService,this._foldingLimitReporter))}async createModelFromProvider(n){return this.provider.compute(n)}};$w=Om([Lu(1,ut)],$w);var Gw=class u extends Xw{constructor(n,h,g){super(n);this._languageFeaturesService=g,this.provider=this._register(new ce),this._register(this._languageFeaturesService.foldingRangeProvider.onDidChange(()=>{this._updateProvider(n,h)})),this._updateProvider(n,h)}_updateProvider(n,h){let g=cr.getFoldingRangeProviders(this._languageFeaturesService,n.getModel());if(g.length===0)return;this.provider.value=new Jd(n.getModel(),g,h,this._foldingLimitReporter,void 0)}isProviderValid(){return this.provider!==void 0}async createModelFromProvider(n){return this.provider.value?.compute(n)??null}};Gw=Om([Lu(2,z)],Gw);var LN=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},kE=function(u,n){return function(h,g){n(h,g,u)}};class EE{constructor(u,n,h,g){this.startLineNumber=u,this.endLineNumber=n,this.top=h,this.height=g}}var Pm=class u extends i{constructor(n,h,g){super();this._languageFeaturesService=h,this._languageConfigurationService=g,this._onDidChangeStickyScroll=this._register(new o),this.onDidChangeStickyScroll=this._onDidChangeStickyScroll.event,this._model=null,this._cts=null,this._stickyModelProvider=null,this._editor=n,this._sessionStore=this._register(new d),this._updateSoon=this._register(new Ce(()=>this.update(),50)),this._register(this._editor.onDidChangeConfiguration((p)=>{if(p.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(N(()=>{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 Mm(this._editor,()=>this._updateSoon.schedule(),this._languageConfigurationService,this._languageFeaturesService)}async update(){this._cts?.dispose(!0),this._cts=new Ge,await this.updateStickyModel(this._cts.token),this._onDidChangeStickyScroll.fire()}async updateStickyModel(n){if(!this._editor.hasModel()||!this._stickyModelProvider||this._editor.getModel().isTooLargeForTokenization()){this._model=null;return}let h=await this._stickyModelProvider.update(n);if(!n.isCancellationRequested)this._model=h}getCandidateStickyLinesIntersecting(n){if(!this._model?.element)return[];let h=[];return this.getCandidateStickyLinesIntersectingFromStickyModel(n,this._model.element,h,0,0,-1),this.filterHiddenRanges(h)}getCandidateStickyLinesIntersectingFromStickyModel(n,h,g,p,m,v){let S=this._editor.getModel();if(!S)return;if(h.children.length===0)return;let C=v,x=[];for(let Z=0;Z<h.children.length;Z++){let Y=h.children[Z];if(Y.range)x.push(Y.range.startLineNumber)}let T=this.updateIndex(Zm(x,n.startLineNumber,(Z,Y)=>Z-Y)),R=this.updateIndex(Zm(x,n.endLineNumber,(Z,Y)=>Z-Y));for(let Z=T;Z<=R;Z++){let Y=h.children[Z];if(!Y||!Y.range)continue;let{startLineNumber:Q,endLineNumber:te}=Y.range;if(te>Q+1&&n.startLineNumber<=te+1&&Q-1<=n.endLineNumber&&Q!==C&&S.isValidRange(new t(Q,1,te,1))){C=Q;let oe=this._editor.getLineHeightForPosition(new s(Q,1));g.push(new EE(Q,te-1,m,oe)),this.getCandidateStickyLinesIntersectingFromStickyModel(n,Y,g,p+1,m+oe,Q)}}}filterHiddenRanges(n){let h=this._editor._getViewModel()?.getHiddenAreas();if(!h)return n;return n.filter((g)=>!h.some((p)=>g.startLineNumber>=p.startLineNumber&&g.endLineNumber<=p.endLineNumber+1))}updateIndex(n){if(n===-1)return 0;else if(n<0)return-n-2;return n}};Pm=LN([kE(1,z),kE(2,ut)],Pm);var kN=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Xc=function(u,n){return function(h,g){n(h,g,u)}},Yw,Is=class u extends i{static{Yw=this}static{this.ID="store.contrib.stickyScrollController"}constructor(n,h,g,p,m,v,S){super();this._editor=n,this._contextMenuService=h,this._languageFeaturesService=g,this._instaService=p,this._contextKeyService=S,this._sessionStore=new d,this._maxStickyLines=Number.MAX_SAFE_INTEGER,this._candidateDefinitionsLength=-1,this._focusedStickyElementIndex=-1,this._enabled=!1,this._focused=!1,this._positionRevealed=!1,this._onMouseDown=!1,this._endLineNumbers=[],this._mouseTarget=null,this._onDidChangeStickyScrollHeight=this._register(new o),this.onDidChangeStickyScrollHeight=this._onDidChangeStickyScrollHeight.event,this._stickyScrollWidget=new Kw(this._editor),this._stickyLineCandidateProvider=new Pm(this._editor,g,m),this._register(this._stickyScrollWidget),this._register(this._stickyLineCandidateProvider),this._widgetState=Gc.Empty;let C=this._stickyScrollWidget.getDomNode();this._register(this._editor.onDidChangeLineHeight((T)=>{T.changes.forEach((R)=>{let Z=R.lineNumber;if(this._widgetState.startLineNumbers.includes(Z))this._renderStickyScroll(Z)})})),this._register(this._editor.onDidChangeFont((T)=>{T.changes.forEach((R)=>{let Z=R.lineNumber;if(this._widgetState.startLineNumbers.includes(Z))this._renderStickyScroll(Z)})})),this._register(this._editor.onDidChangeConfiguration((T)=>{this._readConfigurationChange(T)})),this._register(c(C,E.CONTEXT_MENU,async(T)=>{this._onContextMenu(B(C),T)})),this._stickyScrollFocusedContextKey=r.stickyScrollFocused.bindTo(this._contextKeyService),this._stickyScrollVisibleContextKey=r.stickyScrollVisible.bindTo(this._contextKeyService);let x=this._register(gi(C));this._register(x.onDidBlur((T)=>{if(this._positionRevealed===!1&&C.clientHeight===0)this._focusedStickyElementIndex=-1,this.focus();else this._disposeFocusStickyScrollStore()})),this._register(x.onDidFocus((T)=>{this.focus()})),this._registerMouseListeners(),this._register(c(C,E.MOUSE_DOWN,(T)=>{this._onMouseDown=!0})),this._register(this._stickyScrollWidget.onDidChangeStickyScrollHeight((T)=>{this._onDidChangeStickyScrollHeight.fire(T)})),this._onDidResize(),this._readConfiguration()}get stickyScrollWidgetHeight(){return this._stickyScrollWidget.height}static get(n){return n.getContribution(Yw.ID)}_disposeFocusStickyScrollStore(){this._stickyScrollFocusedContextKey.set(!1),this._focusDisposableStore?.dispose(),this._focused=!1,this._positionRevealed=!1,this._onMouseDown=!1}isFocused(){return this._focused}focus(){if(this._onMouseDown){this._onMouseDown=!1,this._editor.focus();return}if(this._stickyScrollFocusedContextKey.get()===!0)return;this._focused=!0,this._focusDisposableStore=new d,this._stickyScrollFocusedContextKey.set(!0),this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumbers.length-1,this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex)}focusNext(){if(this._focusedStickyElementIndex<this._stickyScrollWidget.lineNumberCount-1)this._focusNav(!0)}focusPrevious(){if(this._focusedStickyElementIndex>0)this._focusNav(!1)}selectEditor(){this._editor.focus()}_focusNav(n){this._focusedStickyElementIndex=n?this._focusedStickyElementIndex+1:this._focusedStickyElementIndex-1,this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex)}goToFocused(){let n=this._stickyScrollWidget.lineNumbers;this._disposeFocusStickyScrollStore(),this._revealPosition({lineNumber:n[this._focusedStickyElementIndex],column:1})}_revealPosition(n){this._reveaInEditor(n,()=>this._editor.revealPosition(n))}_revealLineInCenterIfOutsideViewport(n){this._reveaInEditor(n,()=>this._editor.revealLineInCenterIfOutsideViewport(n.lineNumber,0))}_reveaInEditor(n,h){if(this._focused)this._disposeFocusStickyScrollStore();this._positionRevealed=!0,h(),this._editor.setSelection(t.fromPositions(n)),this._editor.focus()}_registerMouseListeners(){let n=this._register(new d),h=this._register(new Kr(this._editor,{extractLineNumberFromMouseEvent:(m)=>{let v=this._stickyScrollWidget.getEditorPositionFromNode(m.target.element);return v?v.lineNumber:0}})),g=(m)=>{if(!this._editor.hasModel())return null;if(m.target.type!==12||m.target.detail!==this._stickyScrollWidget.getId())return null;let v=m.target.element;if(!v||v.innerText!==v.innerHTML)return null;let S=this._stickyScrollWidget.getEditorPositionFromNode(v);if(!S)return null;return{range:new t(S.lineNumber,S.column,S.lineNumber,S.column+v.innerText.length),textElement:v}},p=this._stickyScrollWidget.getDomNode();this._register(Ct(p,E.CLICK,(m)=>{if(m.ctrlKey||m.altKey||m.metaKey)return;if(!m.leftButton)return;if(m.shiftKey){let x=this._stickyScrollWidget.getLineIndexFromChildDomNode(m.target);if(x===null)return;let T=new s(this._endLineNumbers[x],1);this._revealLineInCenterIfOutsideViewport(T);return}if(this._stickyScrollWidget.isInFoldingIconDomNode(m.target)){let x=this._stickyScrollWidget.getLineNumberFromChildDomNode(m.target);this._toggleFoldingRegionForLine(x);return}if(!this._stickyScrollWidget.isInStickyLine(m.target))return;let C=this._stickyScrollWidget.getEditorPositionFromNode(m.target);if(!C){let x=this._stickyScrollWidget.getLineNumberFromChildDomNode(m.target);if(x===null)return;C=new s(x,1)}this._revealPosition(C)})),this._register(c(Je,E.MOUSE_MOVE,(m)=>{this._mouseTarget=m.target,this._onMouseMoveOrKeyDown(m)})),this._register(c(Je,E.KEY_DOWN,(m)=>{this._onMouseMoveOrKeyDown(m)})),this._register(c(Je,E.KEY_UP,()=>{if(this._showEndForLine!==void 0)this._showEndForLine=void 0,this._renderStickyScroll()})),this._register(h.onMouseMoveOrRelevantKeyDown(([m,v])=>{let S=g(m);if(!S||!m.hasTriggerModifier||!this._editor.hasModel()){n.clear();return}let{range:C,textElement:x}=S;if(!C.equalsRange(this._stickyRangeProjectedOnEditor))this._stickyRangeProjectedOnEditor=C,n.clear();else if(x.style.textDecoration==="underline")return;let T=new Ge;n.add(N(()=>T.dispose(!0)));let R;Ks(this._languageFeaturesService.definitionProvider,this._editor.getModel(),new s(C.startLineNumber,C.startColumn+1),!1,T.token).then((Z)=>{if(T.token.isCancellationRequested)return;if(Z.length!==0){this._candidateDefinitionsLength=Z.length;let Y=x;if(R!==Y)n.clear(),R=Y,R.style.textDecoration="underline",n.add(N(()=>{R.style.textDecoration="none"}));else if(!R)R=Y,R.style.textDecoration="underline",n.add(N(()=>{R.style.textDecoration="none"}))}else n.clear()})})),this._register(h.onCancel(()=>{n.clear()})),this._register(h.onExecute(async(m)=>{if(m.target.type!==12||m.target.detail!==this._stickyScrollWidget.getId())return;let v=this._stickyScrollWidget.getEditorPositionFromNode(m.target.element);if(!v)return;if(!this._editor.hasModel()||!this._stickyRangeProjectedOnEditor)return;if(this._candidateDefinitionsLength>1){if(this._focused)this._disposeFocusStickyScrollStore();this._revealPosition({lineNumber:v.lineNumber,column:1})}this._instaService.invokeFunction(Op,m,this._editor,{uri:this._editor.getModel().uri,range:this._stickyRangeProjectedOnEditor})}))}_onContextMenu(n,h){let g=new si(n,h);this._contextMenuService.showContextMenu({menuId:l.StickyScrollContext,getAnchor:()=>g,menuActionOptions:{renderShortTitle:!0}})}_onMouseMoveOrKeyDown(n){if(!n.shiftKey)return;if(!this._mouseTarget||!Le(this._mouseTarget))return;let h=this._stickyScrollWidget.getLineIndexFromChildDomNode(this._mouseTarget);if(h===null||this._showEndForLine===h)return;this._showEndForLine=h,this._renderStickyScroll()}_toggleFoldingRegionForLine(n){if(!this._foldingModel||n===null)return;let h=this._stickyScrollWidget.getRenderedStickyLine(n),g=h?.foldingIcon;if(!g)return;Bl(this._foldingModel,1,[n]),g.isCollapsed=!g.isCollapsed;let p=(g.isCollapsed?this._editor.getTopForLineNumber(g.foldingEndLine):this._editor.getTopForLineNumber(g.foldingStartLine))-this._editor.getOption(75)*h.index+1;this._editor.setScrollTop(p),this._renderStickyScroll(n)}_readConfiguration(){let n=this._editor.getOption(131);if(n.enabled===!1){this._editor.removeOverlayWidget(this._stickyScrollWidget),this._resetState(),this._sessionStore.clear(),this._enabled=!1;return}else if(n.enabled&&!this._enabled)this._editor.addOverlayWidget(this._stickyScrollWidget),this._sessionStore.add(this._editor.onDidScrollChange((g)=>{if(g.scrollTopChanged)this._showEndForLine=void 0,this._renderStickyScroll()})),this._sessionStore.add(this._editor.onDidLayoutChange(()=>this._onDidResize())),this._sessionStore.add(this._editor.onDidChangeModelTokens((g)=>this._onTokensChange(g))),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((g)=>{if(this._positionLineNumber===g.position.lineNumber)return;this._positionLineNumber=g.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(n){if(n.hasChanged(131)||n.hasChanged(81)||n.hasChanged(75)||n.hasChanged(126)||n.hasChanged(76))this._readConfiguration();if(n.hasChanged(76)||n.hasChanged(52)||n.hasChanged(126)||n.hasChanged(59)||n.hasChanged(176))this._renderStickyScroll(0)}_needsUpdate(n){let h=this._stickyScrollWidget.getCurrentLines();for(let g of h)for(let p of n.ranges)if(g>=p.fromLineNumber&&g<=p.toLineNumber)return!0;return!1}_onTokensChange(n){if(this._needsUpdate(n))this._renderStickyScroll(0)}_onDidResize(){let h=this._editor.getLayoutInfo().height/this._editor.getOption(75);this._maxStickyLines=Math.round(h*0.25),this._renderStickyScroll(0)}async _renderStickyScroll(n){let h=this._editor.getModel();if(!h||h.isTooLargeForTokenization()){this._resetState();return}let g=this._updateAndGetMinRebuildFromLine(n),p=this._stickyLineCandidateProvider.getVersionId();if(p===void 0||p===h.getVersionId())if(!this._focused)await this._updateState(g);else if(this._focusedStickyElementIndex===-1){if(await this._updateState(g),this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumberCount-1,this._focusedStickyElementIndex!==-1)this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex)}else{let v=this._stickyScrollWidget.lineNumbers[this._focusedStickyElementIndex];if(await this._updateState(g),this._stickyScrollWidget.lineNumberCount===0)this._focusedStickyElementIndex=-1;else{if(!this._stickyScrollWidget.lineNumbers.includes(v))this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumberCount-1;this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex)}}}_updateAndGetMinRebuildFromLine(n){if(n!==void 0){let h=this._minRebuildFromLine!==void 0?this._minRebuildFromLine:1/0;this._minRebuildFromLine=Math.min(n,h)}return this._minRebuildFromLine}async _updateState(n){this._minRebuildFromLine=void 0,this._foldingModel=await cr.get(this._editor)?.getFoldingModel()??void 0,this._widgetState=this.findScrollWidgetState();let h=this._widgetState.startLineNumbers.length>0;this._stickyScrollVisibleContextKey.set(h),this._stickyScrollWidget.setState(this._widgetState,this._foldingModel,n)}async _resetState(){this._minRebuildFromLine=void 0,this._foldingModel=void 0,this._widgetState=Gc.Empty,this._stickyScrollVisibleContextKey.set(!1),this._stickyScrollWidget.setState(void 0,void 0)}findScrollWidgetState(){let n=Math.min(this._maxStickyLines,this._editor.getOption(131).maxLineCount),h=this._editor.getScrollTop(),g=0,p=[],m=[],v=this._editor.getVisibleRanges();if(v.length!==0){let S=new ua(v[0].startLineNumber,v[v.length-1].endLineNumber),C=this._stickyLineCandidateProvider.getCandidateStickyLinesIntersecting(S);for(let x of C){let{startLineNumber:T,endLineNumber:R,top:Z}=x,Y=Z+x.height,Q=this._editor.getTopForLineNumber(T)-h,te=this._editor.getBottomForLineNumber(R)-h;if(Z>Q&&Z<=te){if(p.push(T),m.push(R+1),Y>te)g=te-Y}if(p.length===n)break}}return this._endLineNumbers=m,new Gc(p,m,g,this._showEndForLine)}dispose(){super.dispose(),this._sessionStore.dispose()}};Is=Yw=kN([Xc(1,Yn),Xc(2,z),Xc(3,A),Xc(4,ut),Xc(5,uo),Xc(6,G)],Is);var ba=a("inlineEdit.originalBackground",be(hu,0.2),e(1286,"Background color for the original text in inline edits."),!0),Am=a("inlineEdit.modifiedBackground",be(Uh,0.3),e(1287,"Background color for the modified text in inline edits."),!0);a("inlineEdit.originalChangedLineBackground",be(hu,0.8),e(1288,"Background color for the changed lines in the original text of inline edits."),!0);var DE=a("inlineEdit.originalChangedTextBackground",be(hu,0.8),e(1289,"Overlay color for the changed text in the original text of inline edits."),!0),TE=a("inlineEdit.modifiedChangedLineBackground",{light:be(y0,0.7),dark:be(y0,0.7),hcDark:y0,hcLight:y0},e(1290,"Background color for the changed lines in the modified text of inline edits."),!0),RE=a("inlineEdit.modifiedChangedTextBackground",be(Uh,0.7),e(1291,"Overlay color for the changed text in the modified text of inline edits."),!0),va=a("inlineEdit.gutterIndicator.primaryForeground",iy,e(1292,"Foreground color for the primary inline edit gutter indicator.")),yn=a("inlineEdit.gutterIndicator.primaryBorder",Gh,e(1293,"Border color for the primary inline edit gutter indicator.")),xr=a("inlineEdit.gutterIndicator.primaryBackground",{light:be(yn,0.5),dark:be(yn,0.4),hcDark:be(yn,0.4),hcLight:be(yn,0.5)},e(1294,"Background color for the primary inline edit gutter indicator.")),NE=a("inlineEdit.gutterIndicator.secondaryForeground",ty,e(1295,"Foreground color for the secondary inline edit gutter indicator.")),ME=a("inlineEdit.gutterIndicator.secondaryBorder",Cf,e(1296,"Border color for the secondary inline edit gutter indicator.")),Yc=a("inlineEdit.gutterIndicator.secondaryBackground",pg,e(1297,"Background color for the secondary inline edit gutter indicator.")),OE=a("inlineEdit.gutterIndicator.successfulForeground",iy,e(1298,"Foreground color for the successful inline edit gutter indicator.")),Jw=a("inlineEdit.gutterIndicator.successfulBorder",Gh,e(1299,"Border color for the successful inline edit gutter indicator.")),Jc=a("inlineEdit.gutterIndicator.successfulBackground",Jw,e(1300,"Background color for the successful inline edit gutter indicator.")),PE=a("inlineEdit.gutterIndicator.background",{hcDark:be("tab.inactiveBackground",0.5),hcLight:be("tab.inactiveBackground",0.5),dark:be("tab.inactiveBackground",0.5),light:"#5f5f5f18"},e(1301,"Background color for the inline edit gutter indicator.")),ku=a("inlineEdit.originalBorder",{light:hu,dark:hu,hcDark:hu,hcLight:hu},e(1302,"Border color for the original text in inline edits.")),Eu=a("inlineEdit.modifiedBorder",{light:Mr(Uh,0.6),dark:Uh,hcDark:Uh,hcLight:Uh},e(1303,"Border color for the modified text in inline edits.")),EN=a("inlineEdit.tabWillAcceptModifiedBorder",{light:Mr(Eu,0),dark:Mr(Eu,0),hcDark:Mr(Eu,0),hcLight:Mr(Eu,0)},e(1304,"Modified border color for the inline edits widget when tab will accept it.")),DN=a("inlineEdit.tabWillAcceptOriginalBorder",{light:Mr(ku,0),dark:Mr(ku,0),hcDark:Mr(ku,0),hcLight:Mr(ku,0)},e(1305,"Original border color for the inline edits widget over the original text when tab will accept it."));function ss(u){return u.map((n)=>n===Dt.Accept?EN:Eu)}function wa(u){return u.map((n)=>n===Dt.Accept?DN:ku)}function Vt(u,n){let h;if(typeof u==="string")h=_a(u,n);else h=u.map((p,m)=>_a(p,n).read(m));let g=_a(Qo,n);return h.map((p,m)=>p.makeOpaque(g.read(m)))}function io(u){let n;switch(u){case Nt.TextEditor:n=Qo;break;case Nt.DiffEditor:n=Qo;break;case Nt.Notebook:n="notebook.cellEditorBackground";break;default:sc(u,"Not supported editor type yet")}return P(n)}function _a(u,n){return Ps({owner:{observeColor:u},equalsFn:(h,g)=>h.equals(g),debugName:()=>`observeColor(${u})`},n.onDidColorThemeChange,()=>{let h=n.getColorTheme().getColor(u);if(!h)throw new H(`Missing color: ${u}`);return h})}var Xt=3;function qo(u,n,h){let g=u.model.read(h);if(!g)return 0;let p=0;for(let v=n.startLineNumber;v<n.endLineNumberExclusive;v++){let S=u.getWidthOfLine(v,h);p=Math.max(p,S)}let m=n.mapToLineArray((v)=>g.getLineContent(v));if(p<5&&m.some((v)=>v.length>0)&&g.uri.scheme!=="file")console.log("unexpected width");return p}function AE(u,n,h){Ii(u,u.editor.onDidChangeLineHeight).read(h);let g=u.model.read(h);if(!g)throw new H("Model is required");let p=[];for(let m=n.startLineNumber;m<n.endLineNumberExclusive;m++){let v=u.getWidthOfLine(m,h);if(v===-1){let C=g.getLineMaxColumn(m),x=u.editor.getOption(59).typicalHalfwidthCharacterWidth;v=C*x}let S=u.editor.getLineHeightForPosition(new s(m,1));p.push(new sa(v,S))}return p}function FE(u,n,h){if(u.layoutInfo.read(h),u.value.read(h),!u.model.read(h))return 0;return u.scrollTop.read(h),u.editor.getOffsetForColumn(n.lineNumber,n.column)}function Qc(u,n,h,g,p=void 0){let m=g.getModel();if(!m)return{prefixTrim:0,prefixLeftOffset:0};let v=u.map((Z)=>Z.isSingleLine()?Z.startColumn-1:0),S=n.mapToLineArray((Z)=>I1(m.getLineContent(Z))),C=h.filter((Z)=>Z!=="").map((Z)=>I1(Z)),x=Math.min(...v,...S,...C),T;if(m.getLineIndentColumn(n.startLineNumber)>=x+1)ct(g).scrollTop.read(p),T=g.getOffsetForColumn(n.startLineNumber,x+1);else if(h.length>0)T=Du(h[0].slice(0,x),g,m);else return{prefixTrim:0,prefixLeftOffset:0};return{prefixTrim:x,prefixLeftOffset:T}}function Du(u,n,h){let g=n.getOption(59).typicalHalfwidthCharacterWidth,p=h.getOptions().tabSize*g,m=u.split("\t").length-1;return(u.length-m)*g+m*p}function el(u){let n=u.layoutInfoContentLeft,h=f({name:"editor.validOverlay.width"},(p)=>{let m=u.layoutInfoMinimap.read(p).minimapLeft!==0,v=Math.max(0,u.layoutInfoWidth.read(p)-n.read(p));if(m){let S=u.layoutInfoMinimap.read(p).minimapWidth+u.layoutInfoVerticalScrollbarWidth.read(p);return Math.max(0,v-S)}return v}),g=f({name:"editor.validOverlay.height"},(p)=>u.layoutInfoHeight.read(p)+u.contentHeight.read(p));return f({name:"editor.validOverlay"},(p)=>st.fromLeftTopWidthHeight(n.read(p),0,h.read(p),g.read(p)))}function HE(u,n){let h=[];for(let g of u){let p=n.mapRange(g.modifiedRange);h.push(new Yi(g.originalRange,p))}return h}function tl(...u){return u.filter((n)=>typeof n==="string").join(" ")}function TN(u,n){return new t(n.lineNumber,n.column+u.start,n.lineNumber,n.column+u.endExclusive)}function RN(u,n){let h=0;e:for(let g=0,p=u.length;g<p;g++)switch(u.charCodeAt(g)){case 9:h+=n;break;case 32:h++;break;default:break e}return h-h%n}function NN(u,n,h){let g=n-n%h,p=0;for(;p<u.length;p++){if(g===0)break;switch(u.charCodeAt(p)){case 9:g-=h;break;case 32:g--;break;default:throw new H("Unexpected character found while calculating indent length")}}return p}function WE(u,n,h){let g=Ci(u),p=[],m=g1(n.mapToLineArray((v)=>RN(g[v-1],h)),Vi);return n.forEach((v)=>{let S=NN(g[v-1],m,h);p.push(new bt(TN(new V(0,S),new s(v,1)),""))}),new Fo(p)}class il{constructor(){this._data=""}moveTo(u){return this._data+=`M ${u.x} ${u.y} `,this}lineTo(u){return this._data+=`L ${u.x} ${u.y} `,this}build(){return this._data}}function ji(u){let n=mr(void 0,(h,g)=>u.read(h)||g);return Rn({debugName:()=>`${u.debugName}.mapOutFalsy`},(h)=>{if(n.read(h),!u.read(h))return;return n})}function Jt(u,n=qt.ofCaller()){return{left:f({name:"editor.validOverlay.left"},(h)=>u(h)?.left,n),top:f({name:"editor.validOverlay.top"},(h)=>u(h)?.top,n),width:f({name:"editor.validOverlay.width"},(h)=>{let g=u(h);if(!g)return;return g.width},n),height:f({name:"editor.validOverlay.height"},(h)=>{let g=u(h);if(!g)return;return g.height},n)}}function BE(u,n){let h=u.getContainerDomNode(),g=j("domRect",h.getBoundingClientRect());return n.add(u.onDidLayoutChange((p)=>{g.set(h.getBoundingClientRect(),void 0)})),g}var MN=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Qw=function(u,n){return function(h,g){n(h,g,u)}},Fm=class u{constructor(n,h,g,p,m,v){this._editorObs=n,this._data=h,this._close=g,this._contextKeyService=p,this._keybindingService=m,this._commandService=v,this._inlineEditsShowCollapsed=this._editorObs.getOption(71).map((S)=>S.edits.showCollapsed)}toDisposableLiveElement(){return this._createHoverContent().toDisposableLiveElement()}_createHoverContent(){let n=j("active",void 0),h=(te)=>({title:te.title,icon:te.icon,keybinding:typeof te.commandId==="string"?this._getKeybinding(te.commandArgs?void 0:te.commandId):f(this,(oe)=>typeof te.commandId==="string"?void 0:this._getKeybinding(te.commandArgs?void 0:te.commandId.read(oe)).read(oe)),isActive:n.map((oe)=>oe===te.id),onHoverChange:(oe)=>n.set(oe?te.id:void 0,void 0),onAction:()=>{let oe=typeof te.commandId==="string"?te.commandId:te.commandId.get();return this._close(!0,oe),this._commandService.executeCommand(oe,...te.commandArgs??[])}}),g=this._data.extensionCommands.map((te)=>te.map((oe,ne)=>Sa(h({id:oe.command.id+"_"+ne,title:oe.command.title,icon:oe.icon??_.symbolEvent,commandId:oe.command.id,commandArgs:oe.command.arguments})))),p=[];for(let te of g)if(te.length>0)p.push(eS()),p.push(...te);if(this._data.extensionCommandsOnly)return VE(p.slice(1));let m=ON(this._data.displayName),v=Sa(h({id:"gotoAndAccept",title:e(1276,"Go To / Accept"),icon:_.check,commandId:Un})),S=Sa(h({id:"reject",title:e(1277,"Reject"),icon:_.close,commandId:yp})),C=this._data.alternativeAction?Sa(h({id:"alternativeCommand",title:this._data.alternativeAction.command.title,icon:this._data.alternativeAction.icon,commandId:ed})):void 0,x=[],T=this._inlineEditsShowCollapsed.map((te)=>te?Sa(h({id:"showExpanded",title:e(1278,"Show Expanded"),icon:_.expandAll,commandId:hh})):Sa(h({id:"showCollapsed",title:e(1279,"Show Collapsed"),icon:_.collapseAll,commandId:hh}))),R=Sa(h({id:"snooze",title:e(1280,"Snooze"),icon:_.bellSlash,commandId:"editor.action.inlineSuggest.snooze"})),Z=Sa(h({id:"settings",title:e(1281,"Settings"),icon:_.gear,commandId:"workbench.action.openSettings",commandArgs:["@tag:nextEditSuggestions"]})),Y=this._data.action?[this._data.action]:[],Q=Y.length>0?PN(Y.map((te)=>({id:te.id,label:te.title+"...",enabled:!0,run:()=>this._commandService.executeCommand(te.id,...te.arguments??[]),class:void 0,tooltip:te.tooltip??te.title})),{hoverDelegate:JM}):void 0;return VE([m,v,C,S,T,x.length?eS():void 0,...x,R,Z,...p,Q?eS():void 0,Q])}_getKeybinding(n){if(!n)return Ne(void 0);return Pe(this._contextKeyService.onDidChangeContext,()=>this._keybindingService.lookupKeybinding(n))}};Fm=MN([Qw(3,G),Qw(4,me),Qw(5,Ue)],Fm);function VE(u){return ue.div({class:"content",style:{margin:4,minWidth:180}},u)}function ON(u){return ue.div({class:"header",style:{color:P(v0),fontSize:"13px",fontWeight:"600",padding:"0 4px",lineHeight:28}},[u])}function Sa(u){return f({name:"inlineEdits.option"},(n)=>ue.div({class:["monaco-menu-option",u.isActive?.map((h)=>h&&"active")],onmouseenter:()=>u.onHoverChange?.(!0),onmouseleave:()=>u.onHoverChange?.(!1),onclick:u.onAction,onkeydown:(h)=>{if(h.key==="Enter")u.onAction?.()},tabIndex:0,style:{borderRadius:3}},[ue.elem("span",{style:{fontSize:16,display:"flex"}},[J.isThemeIcon(u.icon)?So(u.icon):u.icon.map((h)=>So(h))]),ue.elem("span",{},[u.title]),ue.div({style:{marginLeft:"auto"},ref:(h)=>{let g=n.store.add(new qa(h,Ai,{disableTitle:!0,...hy,keybindingLabelShadow:void 0,keybindingLabelForeground:P(v0),keybindingLabelBackground:"transparent",keybindingLabelBorder:"transparent",keybindingLabelBottomBorder:void 0}));n.store.add(W((p)=>{g.set(u.keybinding.read(p))}))}})]))}function PN(u,n){return f({name:"inlineEdits.actionBar"},(h)=>ue.div({class:["action-widget-action-bar"],style:{padding:"3px 24px"}},[ue.div({ref:(g)=>{h.store.add(new Qi(g,n)).push(u,{icon:!1,label:!0})}})]))}function eS(){return ue.div({id:"inline-edit-gutter-indicator-menu-separator",class:"menu-separator",style:{color:P(zM),padding:"2px 0"}},ue.div({style:{borderBottom:`1px solid ${P(Cf)}`}}))}var AN=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Tu=function(u,n){return function(h,g){n(h,g,u)}};class Ru{constructor(u,n,h,g,p){this.gutterMenuData=u,this.originalRange=n,this.model=h,this.altAction=g,this.customization=p}}class nl{static fromInlineSuggestion(u){let n=u.action?.kind==="edit"?u.action.alternativeAction:void 0,h=u.source.inlineSuggestions.commands??[];return new nl(u.gutterMenuLinkAction,u.source.provider.displayName??e(1282,"Inline Suggestion"),h.length>0?[h]:[],n,u.source.provider.modelInfo,u.source.provider.setModelId?.bind(u.source.provider))}constructor(u,n,h,g,p,m,v=!1){this.action=u,this.displayName=n,this.extensionCommands=h,this.alternativeAction=g,this.modelInfo=p,this.setModelId=m,this.extensionCommandsOnly=v}}class rl{static fromInlineCompletionModel(u){return new rl(()=>u.accept(),()=>u.jump())}constructor(u,n){this.accept=u,this.jump=n}}var tS=16,zE=2,ol=class u extends i{constructor(n,h,g,p,m,v,S,C,x,T,R){super();this._editorObs=n,this._data=h,this._tabAction=g,this._verticalOffset=p,this._isHoveringOverInlineEdit=m,this._focusIsInMenu=v,this._hoverService=S,this._instantiationService=C,this._accessibilityService=x,this._themeService=T,this._userInteractionService=R,this._onDidCloseWithCommand=this._register(new o),this._modifierPressed=f(this,(Y)=>this._userInteractionService.readModifierKeyStatus(this._editorObs.editor.getDomNode(),Y).shiftKey),this._gutterIndicatorStyles=f(this,(Y)=>{let Q=this._tabAction.read(Y),te=this._data.read(Y)?.altAction,oe=this._modifierPressed.read(Y);if(te&&oe)Q=Dt.Inactive;switch(Q){case Dt.Inactive:return{background:Vt(Yc,this._themeService).read(Y).toString(),foreground:Vt(NE,this._themeService).read(Y).toString(),border:Vt(ME,this._themeService).read(Y).toString()};case Dt.Jump:return{background:Vt(xr,this._themeService).read(Y).toString(),foreground:Vt(va,this._themeService).read(Y).toString(),border:Vt(yn,this._themeService).read(Y).toString()};case Dt.Accept:return{background:Vt(Jc,this._themeService).read(Y).toString(),foreground:Vt(OE,this._themeService).read(Y).toString(),border:Vt(Jw,this._themeService).read(Y).toString()};default:sc()}}),this._state=f(this,(Y)=>{let Q=this._originalRangeObs.read(Y);if(!Q)return;return{range:Q,lineOffsetRange:this._editorObs.observeLineOffsetRange(Q,Y.store)}}),this._lineNumberToRender=f(this,(Y)=>{if(this._verticalOffset.read(Y)!==0)return"";let Q=this._data.read(Y)?.originalRange.startLineNumber,te=this._editorObs.getOption(76).read(Y);if(Q===void 0||te.renderType===0)return"";if(te.renderType===3){let oe=this._editorObs.cursorPosition.read(Y);if(Q%10===0||oe&&oe.lineNumber===Q)return Q.toString();return""}if(te.renderType===2){let oe=this._editorObs.cursorPosition.read(Y);if(!oe)return"";let ne=Math.abs(Q-oe.lineNumber);if(ne===0)return Q.toString();return ne.toString()}if(te.renderType===4){if(te.renderFn)return te.renderFn(Q);return""}return Q.toString()}),this._availableWidthForIcon=f(this,(Y)=>{let Q=this._editorObs.editor.getModel(),te=this._editorObs.editor,oe=this._editorObs.layoutInfo.read(Y),ne=oe.decorationsLeft+oe.decorationsWidth-oe.glyphMarginLeft;if(!Q||ne<=0)return()=>0;if(oe.lineNumbersLeft===0)return()=>ne;let he=this._editorObs.getOption(76).read(Y);if(he.renderType===2||he.renderType===0)return()=>ne;let ge=te.getOption(59).typicalHalfwidthCharacterWidth,_e=oe.lineNumbersLeft+oe.lineNumbersWidth,ae=(Q.getLineCount()+1).toString().length,pe=[];for(let Me=1;Me<=ae;Me++){let Ae=10**(Me-1),We=te.getTopForLineNumber(Ae),Ie=Me*ge,Ve=Math.min(ne,Math.max(0,_e-Ie-oe.glyphMarginLeft));pe.push({firstLineNumberWithDigitCount:Ae,topOfLineNumber:We,usableWidthLeftOfLineNumber:Ve})}return(Me)=>{for(let Ae=pe.length-1;Ae>=0;Ae--)if(Me>=pe[Ae].topOfLineNumber)return pe[Ae].usableWidthLeftOfLineNumber;throw new H("Could not find avilable width for icon")}}),this._layout=f(this,(Y)=>{let Q=this._state.read(Y);if(!Q)return;let te=this._editorObs.layoutInfo.read(Y),oe=this._editorObs.observeLineHeightForLine(Q.range.map((It)=>It.startLineNumber)).read(Y),ne=1,he=2,ge=te.decorationsLeft+te.decorationsWidth-te.glyphMarginLeft-2*ne,_e=te.height-2*he,Se=st.fromLeftTopWidthHeight(ne,he,ge,_e),ae=Se.withTop(this._stickyScrollHeight.read(Y)),pe=Se.withTop(ae.top+he),Me=Q.lineOffsetRange.read(Y),Ae=st.fromRanges(V.fromTo(pe.left,pe.right),Me),We=oe,Ie=this._verticalOffset.read(Y),Ve=Ae.withHeight(We).translateY(Ie),tt=ae.containsRect(Ve),qe=this._data.read(Y)?.customization?.icon,rt=qe?Ne(qe):this._tabAction.map((It)=>It===Dt.Accept?_.keyboardTab:_.arrowRight),$e=qe?Ne(qe):f(this,(It)=>{if(this._isHoveredOverIconDebounced.read(It)||this._isHoveredOverInlineEditDebounced.read(It))return _.check;if(this._tabAction.read(It)===Dt.Accept)return _.keyboardTab;let Si=this._editorObs.cursorLineNumber.read(It)??0,cs=Q.range.read(It).startLineNumber;return Si<=cs?_.keyboardTabAbove:_.keyboardTabBelow}),Ot=22,it=(It)=>{let Si=this._availableWidthForIcon.read(void 0)(It.bottom+this._editorObs.editor.getScrollTop())-ne;return Math.max(Math.min(Si,Ot),tS)};if(tt){let It=Ve,Si;if(te.lineNumbersWidth===0)Si=Math.max(0,Math.min(Math.max(te.lineNumbersLeft-Se.left,0),It.width-Ot));else Si=Math.max(te.lineNumbersLeft+te.lineNumbersWidth-Se.left,0);let cs=It.withWidth(Si),$o=tS+zE,or=Math.min(It.width-Si,Ot),ya=It.withWidth(Math.max(or,$o)).translateX(Si),Vf=or>=$o;return{gutterEditArea:Ae,icon:$e,iconDirection:"right",iconRect:ya,iconVisible:Vf,pillRect:It,lineNumberRect:cs}}let mt=Se.intersect(Ae);if(mt&&mt.height>=We){let It=Ve.moveToBeContainedIn(pe).moveToBeContainedIn(mt),Si=It.withWidth(it(It));return{gutterEditArea:Ae,icon:$e,iconDirection:"right",iconRect:Si,pillRect:Si,iconVisible:!0}}let St=Ve.moveToBeContainedIn(Se),vt=St.withWidth(it(St)),Wt=vt,Pt=vt.top<Ve.top?"top":"bottom";return{gutterEditArea:Ae,icon:rt,iconDirection:Pt,iconRect:Wt,pillRect:vt,iconVisible:!0}}),this._iconRef=ue.ref(),this.isVisible=this._layout.map((Y)=>!!Y),this._hoverVisible=j(this,!1),this.isHoverVisible=this._hoverVisible,this._isHoveredOverIcon=j(this,!1),this._isHoveredOverIconDebounced=d1(this._isHoveredOverIcon,100),this.isHoveredOverIcon=this._isHoveredOverIconDebounced,this._indicator=ue.div({class:"inline-edits-view-gutter-indicator",style:{position:"absolute",overflow:"visible"}},ji(this._layout).map((Y)=>!Y?[]:[ue.div({style:{position:"absolute",background:P(PE),borderRadius:`${Xt}px`,...Jt((Q)=>Y.read(Q).gutterEditArea)}}),ue.div({class:"icon",ref:this._iconRef,tabIndex:0,onclick:()=>{let te=this._layout.get()?.icon.get()===_.check,oe=this._data.get();if(!oe)throw new H("Gutter indicator data not available");if(this._editorObs.editor.focus(),te)oe.model.accept();else oe.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((Q)=>Q.background),["--vscodeIconForeground"]:this._gutterIndicatorStyles.map((Q)=>Q.foreground),border:this._gutterIndicatorStyles.map((Q)=>`1px solid ${Q.border}`),boxSizing:"border-box",borderRadius:`${Xt}px`,display:"flex",justifyContent:Y.map((Q)=>Q.iconDirection==="bottom"?"flex-start":"flex-end"),transition:this._modifierPressed.map((Q)=>Q?"":"background-color 0.2s ease-in-out, width 0.2s ease-in-out"),...Jt((Q)=>Y.read(Q).pillRect)}},[ue.div({className:"line-number",style:{lineHeight:Y.map((Q)=>Q.lineNumberRect?Q.lineNumberRect.height:0),display:Y.map((Q)=>Q.lineNumberRect?"flex":"none"),alignItems:"center",justifyContent:"flex-end",width:Y.map((Q)=>Q.lineNumberRect?Q.lineNumberRect.width:0),height:"100%",color:this._gutterIndicatorStyles.map((Q)=>Q.foreground)}},this._lineNumberToRender),ue.div({style:{transform:Y.map((Q)=>`rotate(${FN(Q.iconDirection)}deg)`),transition:"rotate 0.2s ease-in-out, opacity 0.2s ease-in-out",display:"flex",alignItems:"center",justifyContent:"center",height:"100%",opacity:Y.map((Q)=>Q.iconVisible?"1":"0"),marginRight:Y.map((Q)=>Q.pillRect.width-Q.iconRect.width-(Q.lineNumberRect?.width??0)),width:Y.map((Q)=>Q.iconRect.width),position:"relative",right:Y.map((Q)=>Q.iconDirection==="top"?"1px":"0"),color:this._data.map((Q)=>Q?.customization?.icon?.color?P(Q.customization.icon.color.id):void 0)}},[Y.map((Q,te)=>HN(So(Q.icon.read(te)),{fontSize:WN(Math.min(Q.iconRect.width-zE,tS))}))])])])),this._originalRangeObs=ji(this._data.map((Y)=>Y?.originalRange)),this._stickyScrollController=Is.get(this._editorObs.editor),this._stickyScrollHeight=this._stickyScrollController?Pe(this._stickyScrollController.onDidChangeStickyScrollHeight,()=>this._stickyScrollController.stickyScrollWidgetHeight):Ne(0),this._isHoveredOverInlineEditDebounced=d1(this._isHoveringOverInlineEdit,100);let Z=this._indicator.keepUpdated(this._store);this._register(this._editorObs.createOverlayWidget({domNode:Z.element,position:Ne(null),allowEditorOverflow:!1,minContentWidthInPx:Ne(0)})),this._register(this._editorObs.editor.onDidScrollChange(()=>{this._isHoveredOverIcon.set(!1,void 0)})),this._register(Pr(this._isHoveredOverInlineEditDebounced,(Y)=>{if(Y)this.triggerAnimation()})),this._register(W((Y)=>{if(Z.readEffect(Y),Z.element)this._editorObs.editor.applyFontInfo(Z.element)}))}triggerAnimation(){if(this._accessibilityService.isMotionReduced())return new Animation(null,null).finished;return this._iconRef.element.animate([{outline:`2px solid ${this._gutterIndicatorStyles.map((h)=>h.border).get()}`,outlineOffset:"-1px",offset:0},{outline:"2px solid transparent",outlineOffset:"10px",offset:1}],{duration:500}).finished}_showHover(){if(this._hoverVisible.get())return;let n=this._data.get();if(!n)throw new H("Gutter indicator data not available");let h=new d,g=h.add(this._instantiationService.createInstance(Fm,this._editorObs,n.gutterMenuData,(v,S)=>{if(v)this._editorObs.editor.focus();if(S)this._onDidCloseWithCommand.fire(S);m?.dispose()}).toDisposableLiveElement()),p=this._userInteractionService.createFocusTracker(g.element,h);h.add(W((v)=>{this._focusIsInMenu.set(p.read(v),void 0)})),h.add(N(()=>this._focusIsInMenu.set(!1,void 0)));let m=this._hoverService.showInstantHover({target:this._iconRef.element,content:g.element});if(m)this._hoverVisible.set(!0,void 0),h.add(this._editorObs.editor.onDidScrollChange(()=>m.dispose())),h.add(m.onDispose(()=>{this._hoverVisible.set(!1,void 0),h.dispose()}));else h.dispose()}};ol=AN([Tu(6,On),Tu(7,A),Tu(8,sn),Tu(9,Be),Tu(10,Fr)],ol);function FN(u){switch(u){case"top":return 90;case"bottom":return-90;case"right":return 0}}function HN(u,n){for(let h in n)u.style[h]=n[h];return u}function WN(u){return`${u}px`}var BN=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},KE=function(u,n){return function(h,g){n(h,g,u)}},To;(function(u){u.FirstTime="firstTime",u.SecondTime="secondTime",u.Active="active"})(To||(To={}));var Hm=class u extends i{constructor(n,h,g,p,m){super();this._model=n,this._indicator=h,this._collapsedView=g,this._storageService=p,this._configurationService=m,this._disposables=this._register(new ce),this._setupDone=j({name:"setupDone"},!1),this._activeCompletionId=f((v)=>{let S=this._model.read(v);if(!S)return;if(!this._setupDone.read(v))return;let C=this._indicator.read(v);if(!C||!C.isVisible.read(v))return;return S.inlineEdit.inlineCompletion.identity.id}),this._register(this._initializeDebugSetting()),this._disposables.value=this.setupNewUserExperience(),this._setupDone.set(!0,void 0)}setupNewUserExperience(){if(this.getNewUserType()===To.Active)return;let n=new d,h=!1,g=!1,p=0,m=0;return n.add(qM(this._activeCompletionId,async(v,S,C,x)=>{if(v===void 0)return;let T=this.getNewUserType();switch(T){case To.FirstTime:{if(p++>=5||h)T=To.SecondTime,this.setNewUserType(T);break}case To.SecondTime:{if(m++>=3&&g)T=To.Active,this.setNewUserType(T);break}}switch(T){case To.FirstTime:{for(let R=0;R<3&&!x.isCancellationRequested;R++)await this._indicator.get()?.triggerAnimation(),await Ar(500);break}case To.SecondTime:{this._indicator.get()?.triggerAnimation();break}}})),n.add(W((v)=>{if(this._collapsedView.isVisible.read(v)){if(this.getNewUserType()!==To.Active)this._collapsedView.triggerAnimation()}})),n.add(W((v)=>{let S=this._indicator.read(v);if(!S)return;v.store.add(Pr(S.isHoveredOverIcon,async(C)=>{if(C)h=!0}))})),n.add(W((v)=>{let S=this._model.read(v);if(!S)return;v.store.add(S.onDidAccept(()=>{g=!0}))})),n}getNewUserType(){return this._storageService.get("inlineEditsGutterIndicatorUserKind",-1,To.FirstTime)}setNewUserType(n){switch(n){case To.FirstTime:throw new H("UserKind should not be set to first time");case To.SecondTime:break;case To.Active:this._disposables.clear();break}this._storageService.store("inlineEditsGutterIndicatorUserKind",n,-1,0)}_initializeDebugSetting(){if(this._configurationService.getValue("editor.inlineSuggest.edits.resetNewUserExperience"))this._storageService.remove("inlineEditsGutterIndicatorUserKind",-1);return this._configurationService.onDidChangeConfiguration((g)=>{if(g.affectsConfiguration("editor.inlineSuggest.edits.resetNewUserExperience")&&this._configurationService.getValue("editor.inlineSuggest.edits.resetNewUserExperience"))this._storageService.remove("inlineEditsGutterIndicatorUserKind",-1),this._disposables.value=this.setupNewUserExperience()})}};Hm=BN([KE(3,Pn),KE(4,re)],Hm);class iS{static{this.empty=new iS([])}constructor(u){this.replacements=u,Oh(nu(u,(n,h)=>n.lineRange.endLineNumberExclusive<=h.lineRange.startLineNumber))}toString(){return this.replacements.map((u)=>u.toString()).join(",")}getNewLineRanges(){let u=[],n=0;for(let h of this.replacements)u.push(ee.ofLength(h.lineRange.startLineNumber+n,h.newLines.length)),n+=h.newLines.length-h.lineRange.length;return u}}class sl{static fromSingleTextEdit(u,n){let h=Ci(u.text),g=u.range.startLineNumber,p=n.getValueOfRange(t.fromPositions(new s(u.range.startLineNumber,1),u.range.getStartPosition()));h[0]=p+h[0];let m=u.range.endLineNumber+1,v=n.getTransformer().getLineLength(u.range.endLineNumber)+1,S=n.getValueOfRange(t.fromPositions(u.range.getEndPosition(),new s(u.range.endLineNumber,v)));h[h.length-1]=h[h.length-1]+S;let C=u.range.startColumn===n.getTransformer().getLineLength(u.range.startLineNumber)+1,x=u.range.endColumn===1;if(C&&h[0].length===p.length)g++,h.shift();if(h.length>0&&g<m&&x&&h[h.length-1].length===S.length)m--,h.pop();return new sl(new ee(g,m),h)}constructor(u,n){this.lineRange=u,this.newLines=n}toString(){return`${this.lineRange}->${JSON.stringify(this.newLines)}`}toLineEdit(){return new iS([this])}}class oS{get lineEdit(){if(this.action?.kind==="jumpTo")return new sl(ee.ofLength(this.action.position.lineNumber,0),[]);else if(this.action?.kind==="edit")return sl.fromSingleTextEdit(this.edit.toReplacement(this.originalText),this.originalText);return new sl(new ee(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(ee.ofLength(this.originalLineRange.startLineNumber,this.lineEdit.newLines.length)))}constructor(u,n,h,g,p,m,v){this.originalText=u,this.action=n,this.edit=h,this.cursorPosition=g,this.multiCursorPositions=p,this.commands=m,this.inlineCompletion=v}}class nS{constructor(u,n,h){this._model=u,this.inlineEdit=n,this.tabAction=h,this.editorType=this._model.editorType,this.displayLocation=this.inlineEdit.inlineCompletion.hint,this.inViewPort=f(this,(g)=>Tw(this._model.editor,this.inlineEdit.inlineCompletion,g)),this.onDidAccept=this._model.onDidAccept}accept(u){this._model.accept(void 0,u)}handleInlineEditShownNextFrame(u,n){let h=this.inlineEdit.inlineCompletion,g=Date.now();h.addRef(),ja(()=>{this._model.handleInlineSuggestionShown(h,u,n,g),h.removeRef()})}}var VN=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},zN=function(u,n){return function(h,g){n(h,g,u)}},Wm=class u extends i{constructor(n,h,g){super();this._editor=n,this._edit=h,this._accessibilityService=g,this.onDidClick=I.None,this._iconRef=ue.ref(),this.isHovered=Ne(!1),this._editorObs=ct(this._editor);let m=this._edit.map((x)=>x?.edit?.replacements[0]??null).map((x)=>x?Uo(x,this._editor.getModel()).range.getStartPosition():null),v=this._editorObs.observePosition(m,this._store),S=f((x)=>{let T=v.read(x);if(!T)return null;let R=this._editorObs.layoutInfoContentLeft.read(x),Z=this._editorObs.scrollLeft.read(x);return new vi(R+T.x-Z,T.y)}),C=ue.div({class:"inline-edits-collapsed-view",style:{position:"absolute",overflow:"visible",top:"0px",left:"0px",display:"block"}},[[this.getCollapsedIndicator(S)]]).keepUpdated(this._store).element;this._register(this._editorObs.createOverlayWidget({domNode:C,position:Ne(null),allowEditorOverflow:!1,minContentWidthInPx:Ne(0)})),this.isVisible=this._edit.map((x,T)=>!!x&&S.read(T)!==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(n){let h=this._editorObs.layoutInfoContentLeft,g=n.map((m,v)=>m?m.deltaX(-h.read(v)):null),p=this.createIconPath(g);return ue.svg({class:"collapsedView",ref:this._iconRef,style:{position:"absolute",...Jt((m)=>el(this._editorObs).read(m)),overflow:"hidden",pointerEvents:"none"}},[ue.svgElem("path",{class:"collapsedViewPath",d:p,fill:P(yn)})])}createIconPath(n){return n.map((m)=>{if(!m)return new il().build();let v=m.deltaX(-3).deltaY(-1),S=v.deltaX(6),C=v.deltaY(1),x=S.deltaY(1),T=C.deltaX(3).deltaY(3);return new il().moveTo(v).lineTo(S).lineTo(x).lineTo(T).lineTo(C).lineTo(v).build()})}};Wm=VN([zN(2,sn)],Wm);var KN=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},UE=function(u,n){return function(h,g){n(h,g,u)}},Bm=14,rS=0,as=4,Vm=4,qE=2,zm=class u extends i{constructor(n,h,g,p,m,v){super();this._editor=n,this._languageService=v,this._onDidClick=this._register(new o),this.onDidClick=this._onDidClick.event,this._isHovered=j(this,!1),this.isHovered=this._isHovered,this._viewRef=ue.ref(),this._editorObs=ct(this._editor);let S=g.map((R,Z)=>{let Y;switch(R){case Dt.Inactive:Y=Yc;break;case Dt.Jump:Y=xr;break;case Dt.Accept:Y=Jc;break}return{border:Vt(Y,m).read(Z).toString(),background:io(p.read(Z))}}),C=h.map((R)=>R?this.getState(R):void 0),x=C.map((R)=>R?this.getRendering(R,S):void 0);this.minEditorScrollHeight=f(this,(R)=>{let Z=C.read(R);if(!Z)return 0;return Z.rect.read(R).bottom+this._editor.getScrollTop()});let T=ue.div({class:"inline-edits-custom-view",style:{position:"absolute",overflow:"visible",top:"0px",left:"0px",display:"block"}},[x]).keepUpdated(this._store);this._register(this._editorObs.createOverlayWidget({domNode:T.element,position:Ne(null),allowEditorOverflow:!1,minContentWidthInPx:mr(this,(R,Z)=>{let Y=C.read(R);if(!Y)return Z??0;let Q=Y.rect.map((te)=>te.right).read(R)+this._editorObs.layoutInfoVerticalScrollbarWidth.read(R)+as-this._editorObs.layoutInfoContentLeft.read(R);return Math.max(Z??0,Q)}).recomputeInitiallyAndOnChange(this._store)})),this._register(W((R)=>{if(!x.read(R)){this._isHovered.set(!1,void 0);return}this._isHovered.set(T.isHovered.read(R),void 0)}))}fitsInsideViewport(n,h,g){let p=this._editorObs.layoutInfoWidth.read(g),m=this._editorObs.layoutInfoContentLeft.read(g),v=this._editor.getLayoutInfo().verticalScrollbarWidth,S=this._editorObs.layoutInfoMinimap.read(g).minimapLeft!==0?this._editorObs.layoutInfoMinimap.read(g).minimapWidth:0,C=qo(this._editorObs,n,void 0),x=Du(h,this._editor,this._editor.getModel()),T=as+Bm;return C+x+T<p-m-v-S}getState(n){let h=f(this,(S)=>{let C=n.range.startLineNumber,x=n.range.endLineNumber,T=n.range.startColumn,R=n.range.endColumn,Z=this._editor.getModel()?.getLineCount()??0,Y=qo(this._editorObs,new ee(C,C+1),S),Q=C+1<=Z?qo(this._editorObs,new ee(C+1,C+2),S):void 0,te=C-1>=1?qo(this._editorObs,new ee(C-1,C),S):void 0,oe=this._editor.getOffsetForColumn(C,T),ne=this._editor.getOffsetForColumn(x,R);return{lineWidth:Y,lineWidthBelow:Q,lineWidthAbove:te,startContentLeftOffset:oe,endContentLeftOffset:ne}}),g=n.range.startLineNumber,p=n.range.endLineNumber,m=this.fitsInsideViewport(new ee(g,p+1),n.content,void 0);return{rect:f(this,(S)=>{let C=this._editorObs.getOption(59).read(S).typicalHalfwidthCharacterWidth,{lineWidth:x,lineWidthBelow:T,lineWidthAbove:R,startContentLeftOffset:Z,endContentLeftOffset:Y}=h.read(S),Q=this._editorObs.layoutInfoContentLeft.read(S),te=this._editorObs.observeLineHeightForLine(g).recomputeInitiallyAndOnChange(S.store).read(S),oe=this._editorObs.scrollTop.read(S),ne=this._editorObs.scrollLeft.read(S),he;if(g===p&&Y+5*C>=x&&m)he="end";else if(T!==void 0&&T+Bm-Vm-as<Z)he="below";else if(R!==void 0&&R+Bm-Vm-as<Z)he="above";else he="end";let ge,_e,Se=0,ae=0;switch(he){case"end":{ge=this._editorObs.editor.getTopForLineNumber(g),_e=x,Se=as+Bm;break}case"below":{ge=this._editorObs.editor.getTopForLineNumber(g+1),_e=Z,Se=as+Vm,ae=rS+qE;break}case"above":{ge=this._editorObs.editor.getTopForLineNumber(g-1),_e=Z,Se=as+Vm,ae=-rS+qE;break}}return st.fromLeftTopWidthHeight(Q+_e-ne,ge-oe,C*n.content.length,te).withMargin(rS,as).translateX(Se).translateY(ae)}),label:n.content,kind:n.style}}getRendering(n,h){let g=document.createElement("div"),p=this._editor.getModel().tokenization.tokenizeLinesAt(1,[n.label])?.[0],m;if(p&&n.kind===o1.Code)m=Sl.fromLineTokens(p).toLineTokens(n.label,this._languageService.languageIdCodec);else m=Tt.createEmpty(n.label,this._languageService.languageIdCodec);let v=xu(new xd([m]),Ga.fromEditor(this._editor).withSetWidth(!1).withScrollBeyondLastColumn(0),[],g,!0);g.style.width=`${v.minWidthInPx}px`;let S=n.rect.map((C)=>C.withMargin(0,as));return ue.div({class:"collapsedView",ref:this._viewRef,style:{position:"absolute",...Jt((C)=>S.read(C)),overflow:"hidden",boxSizing:"border-box",cursor:"pointer",border:h.map((C)=>`1px solid ${C.border}`),borderRadius:`${Xt}px`,backgroundColor:h.map((C)=>C.background),display:"flex",alignItems:"center",justifyContent:"center",whiteSpace:"nowrap"},onmousedown:(C)=>{C.preventDefault()},onclick:(C)=>{this._onDidClick.fire(Lo.create(C))}},[g])}};zm=KN([UE(4,Be),UE(5,xt)],zm);var UN=0,qN=0,sS=1,jN=1,$N=3,aS=Xt;class dS extends i{constructor(u,n,h,g){super();this._editor=u,this._edit=n,this._uiState=h,this._tabAction=g,this.onDidClick=I.None,this._display=f(this,(v)=>this._uiState.read(v)?"block":"none"),this._editorMaxContentWidthInRange=f(this,(v)=>{let S=this._originalDisplayRange.read(v);if(!S)return Ne(0);return this._editorObs.versionId.read(v),mr(this,(C,x)=>{let T=qo(this._editorObs,S,C);return Math.max(T,x??0)})}).map((v,S)=>v.read(S)),this._maxPrefixTrim=f(this,(v)=>{let S=this._uiState.read(v);if(!S)return{prefixTrim:0,prefixLeftOffset:0};return Qc(S.deletions,S.originalRange,[],this._editor)}),this._editorLayoutInfo=f(this,(v)=>{let S=this._edit.read(v);if(!S)return null;if(!this._uiState.read(v))return null;let x=this._editorObs.layoutInfo.read(v),T=this._editorObs.scrollLeft.read(v),R=this._editorObs.getOption(59).map((he)=>he.typicalHalfwidthCharacterWidth).read(v),Z=x.contentLeft+Math.max(this._editorMaxContentWidthInRange.read(v),R)-T,Y=S.originalLineRange,Q=this._originalVerticalStartPosition.read(v)??this._editor.getTopForLineNumber(Y.startLineNumber)-this._editorObs.scrollTop.read(v),te=this._originalVerticalEndPosition.read(v)??this._editor.getTopForLineNumber(Y.endLineNumberExclusive)-this._editorObs.scrollTop.read(v),oe=x.contentLeft+this._maxPrefixTrim.read(v).prefixLeftOffset-T;if(Z<=oe)return null;return{codeRect:st.fromLeftTopRightBottom(oe,Q,Z,te).withMargin(qN,UN),contentLeft:x.contentLeft}}).recomputeInitiallyAndOnChange(this._store),this._originalOverlay=ue.div({style:{pointerEvents:"none"}},f(this,(v)=>{let S=ji(this._editorLayoutInfo).read(v);if(!S)return;let C=S.map((Y)=>st.fromLeftTopRightBottom(Y.contentLeft-aS-sS,Y.codeRect.top,Y.contentLeft,Y.codeRect.bottom)),x=f(this,(Y)=>{let Q=S.read(Y).codeRect,te=C.read(Y);return Q.intersectHorizontal(new V(te.left,Number.MAX_SAFE_INTEGER))}),T=this._uiState.map((Y)=>Y?.editorType===Nt.DiffEditor?$N:jN).read(v),R=x.map((Y)=>Y.withMargin(T,T)),Z=io(this._uiState.map((Y)=>Y?.editorType??Nt.TextEditor).read(v));return[ue.div({class:"originalSeparatorDeletion",style:{...R.read(v).toStyles(),borderRadius:`${aS}px`,border:`${sS+T}px solid ${Z}`,boxSizing:"border-box"}}),ue.div({class:"originalOverlayDeletion",style:{...x.read(v).toStyles(),borderRadius:`${aS}px`,border:wa(this._tabAction).map((Y)=>`${sS}px solid ${P(Y)}`),boxSizing:"border-box",backgroundColor:P(ba)}}),ue.div({class:"originalOverlayHiderDeletion",style:{...C.read(v).toStyles(),backgroundColor:Z}})]})).keepUpdated(this._store),this._nonOverflowView=ue.div({class:"inline-edits-view",style:{position:"absolute",overflow:"visible",top:"0px",left:"0px",display:this._display}},[[this._originalOverlay]]).keepUpdated(this._store),this.isHovered=Ne(!1),this._editorObs=ct(this._editor);let p=f(this,(v)=>{let S=this._edit.read(v);return S?new s(S.originalLineRange.startLineNumber,1):null}),m=f(this,(v)=>{let S=this._edit.read(v);return S?new s(S.originalLineRange.endLineNumberExclusive,1):null});this._originalDisplayRange=this._uiState.map((v)=>v?.originalRange),this._originalVerticalStartPosition=this._editorObs.observePosition(p,this._store).map((v)=>v?.y),this._originalVerticalEndPosition=this._editorObs.observePosition(m,this._store).map((v)=>v?.y),this._register(this._editorObs.createOverlayWidget({domNode:this._nonOverflowView.element,position:Ne(null),allowEditorOverflow:!1,minContentWidthInPx:f(this,(v)=>{let S=this._editorLayoutInfo.read(v);if(S===null)return 0;return S.codeRect.width})}))}}var GN=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},jE=function(u,n){return function(h,g){n(h,g,u)}},al=1,ZN=1,XN=3,cS=Xt,Um=class u extends i{constructor(n,h,g,p,m){super();this._editor=n,this._input=h,this._tabAction=g,this._languageService=m,this._onDidClick=this._register(new o),this.onDidClick=this._onDidClick.event,this._state=f(this,(v)=>{let S=this._input.read(v);if(!S)return;let C=this._editor.getModel(),x=C.getEOL();if(S.startColumn===1&&S.lineNumber>1&&C.getLineLength(S.lineNumber)!==0&&S.text.endsWith(x)&&!S.text.startsWith(x)){let T=C.getLineLength(S.lineNumber-1)+1;return{lineNumber:S.lineNumber-1,column:T,text:x+S.text.slice(0,-x.length)}}return{lineNumber:S.lineNumber,column:S.startColumn,text:S.text}}),this._trimVertically=f(this,(v)=>{let S=this._state.read(v);if(!S)return{topOffset:0,contentHeight:0,linesTop:0,linesBottom:0};let C=S.text,x=this._editor.getLineHeightForPosition(new s(S.lineNumber,1)),T=this._editor.getModel().getEOL(),R=C.split(T).length,Z=0,Y=0;if(C.trim()!==""){let Q=0;for(;Q<C.length&&C.startsWith(T,Q);Q+=T.length)Z+=1;for(let te=C.length;te>Q&&C.endsWith(T,te);te-=T.length)Y+=1}return{topOffset:Z*x,contentHeight:(R-Z-Y)*x,linesTop:Z,linesBottom:Y}}),this._maxPrefixTrim=f(this,(v)=>{let S=this._state.read(v);if(!S)return{prefixLeftOffset:0,prefixTrim:0};let C=this._editor.getModel(),x=C.getEOL(),T=this._trimVertically.read(v),R=S.text.split(x),Z=R.slice(T.linesTop,R.length-T.linesBottom);if(T.linesTop===0)Z[0]=C.getLineContent(S.lineNumber)+Z[0];let Y=new ee(S.lineNumber,S.lineNumber+(T.linesTop>0?0:1));return Qc([],Y,Z,this._editor)}),this._ghostText=f((v)=>{let S=this._state.read(v),C=this._maxPrefixTrim.read(v);if(!S)return;let T=this._editor.getModel().getEOL(),Z=S.text.split(T).map((Y,Q)=>new vd(new t(Q+1,Q===0?1:C.prefixTrim+1,Q+1,Y.length+1),"modified-background",0));return new Xr(S.lineNumber,[new Ld(S.column,S.text,!1,Z)])}),this._display=f(this,(v)=>this._state.read(v)?"block":"none"),this._editorMaxContentWidthInRange=f(this,(v)=>{let S=this._state.read(v);if(!S)return 0;this._editorObs.versionId.read(v);let C=this._editor.getModel(),x=C.getEOL(),T=S.text.startsWith(x)?"":C.getValueInRange(new t(S.lineNumber,1,S.lineNumber,S.column)),R=C.getValueInRange(new t(S.lineNumber,S.column,S.lineNumber,C.getLineLength(S.lineNumber)+1)),Y=(T+S.text+R).split(x),Q=Ga.fromEditor(this._editor).withSetWidth(!1).withScrollBeyondLastColumn(0),te=Y.map((oe)=>{let ne=C.tokenization.tokenizeLinesAt(S.lineNumber,[oe])?.[0],he;if(ne)he=Sl.fromLineTokens(ne).toLineTokens(oe,this._languageService.languageIdCodec);else he=Tt.createEmpty(oe,this._languageService.languageIdCodec);return xu(new xd([he]),Q,[],w("div"),!0).minWidthInPx});return Math.max(...te)}),this.startLineOffset=this._trimVertically.map((v)=>v.topOffset),this.originalLines=this._state.map((v)=>v?new ee(v.lineNumber,Math.min(v.lineNumber+2,this._editor.getModel().getLineCount()+1)):void 0),this._overlayLayout=f(this,(v)=>{this._ghostText.read(v);let S=this._state.read(v);if(!S)return null;this._editorObs.observePosition(j(this,new s(S.lineNumber,S.column)),v.store).read(v);let C=this._editorObs.layoutInfo.read(v),x=this._editorObs.scrollLeft.read(v),T=this._editorObs.layoutInfoVerticalScrollbarWidth.read(v),R=C.contentLeft+this._editorMaxContentWidthInRange.read(v)-x,Z=this._maxPrefixTrim.read(v).prefixLeftOffset??0,Y=C.contentLeft+Z-x;if(R<=Y)return null;let{topOffset:Q,contentHeight:te}=this._trimVertically.read(v),oe=this._editorObs.scrollTop.read(v),ne=this._editor.getTopForLineNumber(S.lineNumber)-oe+Q,he=ne+te,ge=new st(Y,ne,R,he);return{overlay:ge,startsAtContentLeft:Z===0,contentLeft:C.contentLeft,minContentWidthRequired:Z+ge.width+T}}).recomputeInitiallyAndOnChange(this._store),this._modifiedOverlay=ue.div({style:{pointerEvents:"none"}},f(this,(v)=>{let S=ji(this._overlayLayout).read(v);if(!S)return;let C=S.map((Y)=>st.fromLeftTopRightBottom(Y.contentLeft-cS-al,Y.overlay.top,Y.contentLeft,Y.overlay.bottom)).read(v),x=this._input.map((Y)=>Y?.editorType===Nt.DiffEditor?XN:ZN).read(v),T=S.map((Y)=>Y.overlay.withMargin(0,al,al,Y.startsAtContentLeft?0:al).intersectHorizontal(new V(C.left,Number.MAX_SAFE_INTEGER))),R=T.map((Y)=>Y.withMargin(x,x)),Z=io(this._input.read(void 0)?.editorType??Nt.TextEditor);return[ue.div({class:"originalUnderlayInsertion",style:{...R.read(v).toStyles(),borderRadius:cS,border:`${al+x}px solid ${Z}`,boxSizing:"border-box"}}),ue.div({class:"originalOverlayInsertion",style:{...T.read(v).toStyles(),borderRadius:cS,border:ss(this._tabAction).map((Y)=>`${al}px solid ${P(Y)}`),boxSizing:"border-box",backgroundColor:P(Am)}}),ue.div({class:"originalOverlayHiderInsertion",style:{...C.toStyles(),backgroundColor:Z}})]})).keepUpdated(this._store),this._view=ue.div({class:"inline-edits-view",style:{position:"absolute",overflow:"visible",top:"0px",left:"0px",display:this._display}},[[this._modifiedOverlay]]).keepUpdated(this._store),this._editorObs=ct(this._editor),this._ghostTextView=this._register(p.createInstance(na,this._editor,f((v)=>{let S=this._ghostText.read(v);if(!S)return;return{ghostText:S,handleInlineCompletionShown:(C)=>{},warning:void 0}}),{extraClasses:["inline-edit"],isClickable:!0,shouldKeepCursorStable:!0})),this.isHovered=this._ghostTextView.isHovered,this._register(this._ghostTextView.onDidClick((v)=>{this._onDidClick.fire(new Lo(v))})),this._register(this._editorObs.createOverlayWidget({domNode:this._view.element,position:Ne(null),allowEditorOverflow:!1,minContentWidthInPx:f(this,(v)=>{let S=this._overlayLayout.read(v);if(S===null)return 0;return S.minContentWidthRequired})}))}};Um=GN([jE(3,A),jE(4,xt)],Um);var YN=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},$E=function(u,n){return function(h,g){n(h,g,u)}},qm=class u extends i{constructor(n,h,g,p,m,v){super();this._editor=n,this._edit=h,this._editorType=g,this._tabAction=p,this._languageService=m,this._themeService=v,this._onDidClick=this._register(new o),this.onDidClick=this._onDidClick.event,this._maxPrefixTrim=this._edit.map((S,C)=>S?Qc(S.replacements.flatMap((x)=>[x.originalRange,x.modifiedRange]),S.originalRange,S.modifiedLines,this._editor.editor,C):void 0),this._modifiedLineElements=f(this,(S)=>{let C=[],x=0,T=this._maxPrefixTrim.read(S),R=this._edit.read(S);if(!R||!T)return;let Z=T.prefixTrim,Y=JN(R.replacements.map((oe)=>oe.modifiedRange)).map((oe)=>new t(oe.startLineNumber,oe.startColumn-Z,oe.endLineNumber,oe.endColumn-Z)),Q=this._editor.model.get(),te=R.modifiedRange.startLineNumber;for(let oe=0;oe<R.modifiedRange.length;oe++){let ne=document.createElement("div"),he=te+oe,ge=R.modifiedLines[oe].slice(Z),_e=Q.tokenization.tokenizeLinesAt(he,[ge])?.[0],Se;if(_e)Se=Sl.fromLineTokens(_e).toLineTokens(ge,this._languageService.languageIdCodec);else Se=Tt.createEmpty(ge,this._languageService.languageIdCodec);let ae=[];for(let Me of Y.filter((Ae)=>Ae.startLineNumber===he)){let Ae=Math.min(Me.endColumn,ge.length+1);ae.push(new vd(new t(1,Me.startColumn,1,Ae),"inlineCompletions-modified-bubble",0))}let pe=xu(new xd([Se]),Ga.fromEditor(this._editor.editor).withSetWidth(!1).withScrollBeyondLastColumn(0),ae,ne,!0);this._editor.getOption(59).read(S),x=Math.max(x,pe.minWidthInPx),C.push(ne)}return{lines:C,requiredWidth:x}}),this._layout=f(this,(S)=>{let C=this._modifiedLineElements.read(S),x=this._maxPrefixTrim.read(S),T=this._edit.read(S);if(!C||!x||!T)return;let{prefixLeftOffset:R}=x,{requiredWidth:Z}=C,Y=this._editor.observeLineHeightsForLineRange(T.originalRange).read(S),Q=(()=>{let $e=Y.slice(0,T.modifiedRange.length);while($e.length<T.modifiedRange.length)$e.push(Y[Y.length-1]);return $e})(),te=this._editor.layoutInfoContentLeft.read(S),oe=this._editor.layoutInfoVerticalScrollbarWidth.read(S),ne=this._editor.scrollLeft.read(S),he=this._editor.scrollTop.read(S),ge=te-ne,_e=this._editor.editor.getModel(),Se=T.originalRange.mapToLineArray(($e)=>this._editor.editor.getOffsetForColumn($e,_e.getLineMaxColumn($e))-R),ae=Math.max(...Se,Z),pe=T.originalRange.startLineNumber,Me=T.originalRange.endLineNumberExclusive-1,Ae=this._editor.editor.getTopForLineNumber(pe)-he,We=this._editor.editor.getBottomForLineNumber(Me)-he,Ie=st.fromLeftTopWidthHeight(ge+R,Ae,ae,We-Ae),Ve=st.fromLeftTopWidthHeight(Ie.left,Ie.bottom,Ie.width,Q.reduce(($e,Ot)=>$e+Ot,0)),tt=st.hull([Ie,Ve]),qe=tt.intersectVertical(new V(Ie.bottom,Number.MAX_SAFE_INTEGER)),rt=new st(qe.left,qe.top,qe.right,qe.bottom);return{originalLinesOverlay:Ie,modifiedLinesOverlay:Ve,background:tt,lowerBackground:qe,lowerText:rt,modifiedLineHeights:Q,minContentWidthRequired:R+ae+oe}}),this._viewZoneInfo=f((S)=>{if(!this._editor.getOption(71).map((Y)=>Y.edits.allowCodeShifting==="always").read(S))return;let x=this._layout.read(S),T=this._edit.read(S);if(!x||!T)return;let R=x.lowerBackground.height,Z=T.originalRange.endLineNumberExclusive;return{height:R,lineNumber:Z}}),this.minEditorScrollHeight=f(this,(S)=>{let C=ji(this._layout).read(S);if(!C||this._viewZoneInfo.read(S)!==void 0)return 0;return C.read(S).lowerText.bottom+this._editor.editor.getScrollTop()}),this._div=ue.div({class:"line-replacement"},[f(this,(S)=>{let C=ji(this._layout).read(S),x=this._modifiedLineElements.read(S);if(!C||!x)return[];let T=C.read(S),R=this._editor.layoutInfoContentLeft.read(S),Z=this._editorType.read(S)===Nt.DiffEditor?3:1;x.lines.forEach((oe,ne)=>{oe.style.width=`${T.lowerText.width}px`,oe.style.height=`${T.modifiedLineHeights[ne]}px`,oe.style.position="relative"});let Y=ss(this._tabAction).read(S),Q=wa(this._tabAction).read(S),te=io(this._editorType.read(S));return[ue.div({style:{position:"absolute",...Jt((oe)=>el(this._editor).read(oe)),overflow:"hidden",pointerEvents:"none"}},[ue.div({class:"borderAroundLineReplacement",style:{position:"absolute",...Jt((oe)=>C.read(oe).background.translateX(-R).withMargin(Z)),borderRadius:`${Xt}px`,border:`${Z+1}px solid ${te}`,boxSizing:"border-box",pointerEvents:"none"}}),ue.div({class:"originalOverlayLineReplacement",style:{position:"absolute",...Jt((oe)=>C.read(oe).background.translateX(-R)),borderRadius:`${Xt}px`,border:Vt(Q,this._themeService).map((oe)=>`1px solid ${oe.toString()}`),pointerEvents:"none",boxSizing:"border-box",background:P(ba)}}),ue.div({class:"modifiedOverlayLineReplacement",style:{position:"absolute",...Jt((oe)=>C.read(oe).lowerBackground.translateX(-R)),borderRadius:`0 0 ${Xt}px ${Xt}px`,background:te,boxShadow:`${P(dg)} 0 6px 6px -6px`,border:`1px solid ${P(Y)}`,boxSizing:"border-box",overflow:"hidden",cursor:"pointer",pointerEvents:"auto"},onmousedown:(oe)=>{oe.preventDefault()},onclick:(oe)=>this._onDidClick.fire(Lo.create(oe))},[ue.div({style:{position:"absolute",top:0,left:0,width:"100%",height:"100%",background:P(TE)}})]),ue.div({class:"modifiedLinesLineReplacement",style:{position:"absolute",boxSizing:"border-box",...Jt((oe)=>C.read(oe).lowerText.translateX(-R)),fontFamily:this._editor.getOption(58),fontSize:this._editor.getOption(61),fontWeight:this._editor.getOption(62),pointerEvents:"none",whiteSpace:"nowrap",borderRadius:`0 0 ${Xt}px ${Xt}px`,overflow:"hidden"}},[...x.lines])])]})]).keepUpdated(this._store),this.isHovered=this._editor.isTargetHovered((S)=>this._isMouseOverWidget(S),this._store),this._previousViewZoneInfo=void 0,this._register(N(()=>this._editor.editor.changeViewZones((S)=>this.removePreviousViewZone(S)))),this._register(yM(this._viewZoneInfo,({lastValue:S,newValue:C})=>{if(S===C||S?.height===C?.height&&S?.lineNumber===C?.lineNumber)return;this._editor.editor.changeViewZones((x)=>{if(this.removePreviousViewZone(x),!C)return;this.addViewZone(C,x)})})),this._register(this._editor.createOverlayWidget({domNode:this._div.element,minContentWidthInPx:f(this,(S)=>this._layout.read(S)?.minContentWidthRequired??0),position:Ne({preference:{top:0,left:0}}),allowEditorOverflow:!1}))}_isMouseOverWidget(n){let h=this._layout.get();if(!h||!(n.event instanceof kl))return!1;return h.lowerBackground.containsPoint(new vi(n.event.relativePos.x,n.event.relativePos.y))}removePreviousViewZone(n){if(!this._previousViewZoneInfo)return;n.removeZone(this._previousViewZoneInfo.id);let h=this._editor.cursorLineNumber.get();if(h!==null&&h>=this._previousViewZoneInfo.lineNumber)this._editor.editor.setScrollTop(this._editor.scrollTop.get()-this._previousViewZoneInfo.height);this._previousViewZoneInfo=void 0}addViewZone(n,h){let g=h.addZone({afterLineNumber:n.lineNumber-1,heightInPx:n.height,domNode:w("div")});this._previousViewZoneInfo={height:n.height,lineNumber:n.lineNumber,id:g};let p=this._editor.cursorLineNumber.get();if(p!==null&&p>=n.lineNumber)this._editor.editor.setScrollTop(this._editor.scrollTop.get()+n.height)}};qm=YN([$E(4,xt),$E(5,Be)],qm);function JN(u){let n=[];while(u.length){let h=u.shift();if(h.startLineNumber!==h.endLineNumber)u.push(new t(h.startLineNumber+1,1,h.endLineNumber,h.endColumn)),h=new t(h.startLineNumber,h.startColumn,h.startLineNumber,Number.MAX_SAFE_INTEGER);n.push(h)}return n}function GE(u,n){let h={};for(let[v,S]of Object.entries(n))if(Array.isArray(S))h[v]={min:0,rules:S};else h[v]={min:S.min??0,rules:S.rules??[{max:S.max,priority:S.priority,share:S.share}]};let g={},p=0;for(let[v,S]of Object.entries(h))g[v]=S.min,p+=S.min;if(p>u)return null;let m=u-p;while(m>0){let v=[];for(let[Z,Y]of Object.entries(h))for(let Q=0;Q<Y.rules.length;Q++){let te=Y.rules[Q],oe=g[Z],ne=te.max??1/0;if(oe<ne)v.push({partKey:Z,ruleIndex:Q,rule:te,priority:te.priority??0,share:te.share??1})}if(v.length===0)break;let S=Math.max(...v.map((Z)=>Z.priority)),C=v.filter((Z)=>Z.priority===S),x=C.reduce((Z,Y)=>Z+Y.share,0),T=0,R=[];for(let Z of C){let Y=Z.rule,Q=g[Z.partKey],oe=(Y.max??1/0)-Q,ne=m*Z.share/x,he=Math.min(ne,oe);R.push({partKey:Z.partKey,ruleIndex:Z.ruleIndex,amount:he}),T+=he}if(T===0)break;for(let Z of R)g[Z.partKey]+=Z.amount;if(m-=T,m<0.0001)break}return g}var QN=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},lS=function(u,n){return function(h,g){n(h,g,u)}},jm=class u extends i{constructor(n,h,g,p,m,v){super();this._editor=n,this._data=g,this._themeService=p,this._keybindingService=m,this._contextKeyService=v,this._styles=f(this,(C)=>({background:Vt(xr,this._themeService).read(C).toString(),foreground:Vt(va,this._themeService).read(C).toString(),border:Vt(yn,this._themeService).read(C).toString()})),this._pos=f(this,(C)=>this._editor.observePosition(f((x)=>this._data.read(x)?.jumpToPosition||null),C.store)).flatten(),this._layout=f(this,(C)=>{let x=this._data.read(C);if(!x)return;let T=x.jumpToPosition,R=this._editor.observeLineHeightForLine(Ne(T.lineNumber)).read(C),Z=this._editor.scrollLeft.read(C),Y=this._pos.read(C);if(!Y)return;let Q=this._editor.layoutInfo.read(C);return{widgetRect:st.fromLeftTopWidthHeight(Y.x+Q.contentLeft+2-Z,Y.y,100,R)}}),this._blink=eM([{value:!0,durationMs:600},{value:!1,durationMs:600}]),this._widget=ue.div({class:"inline-edit-jump-to-widget",style:{position:"absolute",display:this._layout.map((C)=>C?"flex":"none"),alignItems:"center",cursor:"pointer",userSelect:"none",...Jt((C)=>this._layout.read(C)?.widgetRect)}},f((C)=>{if(this._data.read(C)===void 0)return[];return ue.div({style:{display:"flex",alignItems:"center",gap:"4px",padding:"0 4px",height:"100%",backgroundColor:this._styles.map((x)=>x.background),["--vscodeIconForeground"]:this._styles.map((x)=>x.foreground),border:this._styles.map((x)=>`1px solid ${x.border}`),borderRadius:"3px",boxSizing:"border-box",fontSize:"11px",color:this._styles.map((x)=>x.foreground)}},[this._style==="cursor"?ue.elem("div",{style:{borderLeft:"2px solid",height:14,opacity:this._blink.map((x)=>x?"0":"1")}}):[f(()=>ue.elem("div",{},tM(this._keybinding))),ue.elem("div",{style:{lineHeight:this._layout.map((x)=>x?.widgetRect.height),marginTop:"-2px"}},["to jump"])]])})),this._style=h.style,this._keybinding=this._getKeybinding(Un);let S=this._widget.keepUpdated(this._store);this._register(this._editor.createOverlayWidget({domNode:S.element,position:Ne(null),allowEditorOverflow:!1,minContentWidthInPx:Ne(0)})),this._register(this._editor.setDecorations(f((C)=>{let x=this._data.read(C);if(!x)return[];return[{range:t.fromPositions(x.jumpToPosition,x.jumpToPosition),options:{description:"inline-edit-jump-to-decoration",inlineClassNameAffectsLetterSpacing:!0,showIfCollapsed:!0,after:{content:this._style==="label"?" ":" "}}}]})))}_getKeybinding(n,h=qt.ofCaller()){if(!n)return Ne(void 0);return Pe(this,this._contextKeyService.onDidChangeContext,()=>this._keybindingService.lookupKeybinding(n),h)}};jm=QN([lS(3,Be),lS(4,me),lS(5,G)],jm);function eM(u,n=qt.ofCaller()){let h=0;return Pe(void 0,(g)=>{h=0;let p=new Ce(()=>{h=(h+1)%u.length,g(null),p.schedule(u[h].durationMs)},0);return p.schedule(0),p},()=>u[h].value,n)}function tM(u){return f((n)=>ue.div({style:{},ref:(h)=>{let g=n.store.add(new qa(h,Ai,{disableTitle:!0,...hy,keybindingLabelShadow:void 0,keybindingLabelForeground:P(va),keybindingLabelBackground:"transparent",keybindingLabelBorder:P(va),keybindingLabelBottomBorder:void 0}));n.store.add(W((p)=>{g.set(u.read(p))}))}}))}var iM=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},oM=function(u,n){return function(h,g){n(h,g,u)}};function nM(u,n,h){let g=Math.max(1,Math.min(h,u)),p=Math.max(1,g-n),m=Math.min(h+1,g+n+1);return new ee(p,m)}var $m=class u extends i{constructor(n,h,g,p,m){super();this._previewTextModel=n,this._properties=h,this._parentEditor=g,this._tabAction=p,this._instantiationService=m,this._previewRef=ue.ref(),this.element=ue.div({class:"preview",style:{},ref:this._previewRef}),this._state=f(this,(v)=>{let S=this._properties.read(v);if(!S)return;let C,x;if(S.nextCursorPosition!==null)C="original",x=S.nextCursorPosition.lineNumber;else if(S.diff[0].innerChanges?.every((Q)=>Q.modifiedRange.isEmpty()))C="original",x=S.diff[0].original.startLineNumber;else C="modified",x=S.diff[0].modified.startLineNumber;let T=C==="modified"?Cr.snapshot(this._previewTextModel):S.target,R=this._parentEditorObs.getOption(71).read(v).edits.longDistanceHintContextLineCount,Z=C==="modified"?this._previewTextModel:S.target.dangerouslyGetUnderlyingModel(),Y=nM(x,R,Z.getLineCount());return{mode:C,targetLineNumber:x,visibleLineRange:Y,textModel:T,diff:S.diff}}),this.updatePreviewEditorEffect=f(this,(v)=>{this._previewEditorObs.model.read(v);let S=this._state.read(v)?.visibleLineRange;if(!S)return;let C=[];if(S.startLineNumber>1)C.push(new t(1,1,S.startLineNumber-1,1));if(S.endLineNumberExclusive<this._previewTextModel.getLineCount()+1)C.push(new t(S.endLineNumberExclusive,1,this._previewTextModel.getLineCount()+1,1));this.previewEditor.setHiddenAreas(C,void 0,!0)}),this.horizontalContentRangeInPreviewEditorToShow=f(this,(v)=>this._getHorizontalContentRangeInPreviewEditorToShow(this.previewEditor,v)),this.contentHeight=f(this,(v)=>{let S=this._state.read(v);if(!S)return Ne(null);return this._previewEditorObs.observeLineHeightsForLineRange(S.visibleLineRange).map((C)=>C.reduce((x,T)=>x+T,0))}).flatten(),this._editorDecorations=f(this,(v)=>{let S=this._state.read(v);if(!S)return;let C={diff:S.diff},x=[],T=[],R=de.register({className:"inlineCompletions-char-delete",description:"char-delete",isWholeLine:!1,zIndex:1}),Z=de.register({className:"inlineCompletions-char-insert",description:"char-insert",isWholeLine:!0}),Y=de.register({className:"inlineCompletions-char-insert",description:"char-insert",shouldFillLineOnLineBreak:!0});for(let Q of C.diff)if(Q.modified.isEmpty||Q.original.isEmpty){if(!Q.original.isEmpty)x.push({range:Q.original.toInclusiveRange(),options:R});if(!Q.modified.isEmpty)T.push({range:Q.modified.toInclusiveRange(),options:Z})}else for(let te of Q.innerChanges||[]){if(Q.original.contains(te.originalRange.startLineNumber)&&!te.originalRange.isEmpty())x.push({range:te.originalRange,options:{description:"char-delete",shouldFillLineOnLineBreak:!1,className:tl("inlineCompletions-char-delete",te.originalRange.isEmpty()&&"empty"),zIndex:1}});if(Q.modified.contains(te.modifiedRange.startLineNumber))T.push({range:te.modifiedRange,options:Y})}return{originalDecorations:x,modifiedDecorations:T}}),this.previewEditor=this._register(this._createPreviewEditor()),this._parentEditorObs=ct(this._parentEditor),this._register(W((v)=>{let S=this._state.read(v)?.textModel||null;if(S)this.previewEditor.setModel(S.dangerouslyGetUnderlyingModel())})),this._previewEditorObs=ct(this.previewEditor),this._register(this._previewEditorObs.setDecorations(f((v)=>{let S=this._state.read(v),C=this._editorDecorations.read(v);return(S?.mode==="original"?C?.originalDecorations:C?.modifiedDecorations)??[]}))),this._register(W((v)=>{if(!this._properties.read(v))return;let S=this._parentEditorObs.cursorPosition.read(v);if(S)this.previewEditor.setPosition(this._previewTextModel.validatePosition(S),"longDistanceHintPreview")})),this._register(W((v)=>{let S=this._state.read(v);if(!S)return;let C=(S.visibleLineRange.endLineNumberExclusive-1).toString().length;this.previewEditor.updateOptions({lineNumbersMinChars:C+1})})),this._register(this._instantiationService.createInstance(ol,this._previewEditorObs,f((v)=>{let S=this._state.read(v);if(!S)return;let C=this._properties.read(v);if(!C)return;return new Ru(C.inlineSuggestInfo,ee.ofLength(S.targetLineNumber,1),C.model,void 0)}),this._tabAction,Ne(0),Ne(!1),j(this,!1))),this.updatePreviewEditorEffect.recomputeInitiallyAndOnChange(this._store)}_createPreviewEditor(){return this._instantiationService.createInstance(Ni,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:{[pt.inInlineEditsPreviewEditor.key]:!0},contributions:[]},this._parentEditor)}_getHorizontalContentRangeInPreviewEditorToShow(n,h){let g=this._state.read(h);if(!g)return;let p=g.diff,m=this._properties.read(h)?.nextCursorPosition,v=g.visibleLineRange,S=this._previewEditorObs.layoutInfo.read(h),C=qo(this._previewEditorObs,v,h),x;if(m)x=t.fromPositions(m);else if(p[0].innerChanges)x=g.mode==="modified"?p[0].innerChanges[0].modifiedRange:p[0].innerChanges[0].originalRange;else return;let T=rM(n.getModel(),x,5),R=this._previewEditorObs.getLeftOfPosition(T.getStartPosition(),h),Z=this._previewEditorObs.getLeftOfPosition(T.getEndPosition(),h),Y=Gi(R,0,C),Q=Gi(Z,Y,C),te=n.getModel().getLineFirstNonWhitespaceColumn(T.startLineNumber),oe=this._previewEditorObs.getLeftOfPosition(new s(T.startLineNumber,te),h),ne=new V(Y,Q);return{indentationEnd:oe,preferredRangeToReveal:ne,maxEditorWidth:C+S.contentLeft,contentWidth:C,nonContentWidth:S.contentLeft}}layout(n,h){this.previewEditor.layout(n),this._previewEditorObs.editor.setScrollLeft(h)}};$m=iM([oM(4,A)],$m);function rM(u,n,h){let g=n.getStartPosition(),p=n.getEndPosition(),m=u.getLineContent(g.lineNumber);function v(T){let R=m.charAt(T-1);return/[a-zA-Z0-9_]/.test(R)}function S(T){let R=m.charAt(T-1);return R===" "||R==="\t"}let C=g.column;while(C>1&&v(C)&&!S(C-1)&&g.column-C<h)C--;let x=p.column-1;while(x<=m.length&&v(x)&&!S(x+1)&&x-p.column<h)x++;return new t(g.lineNumber,C,p.lineNumber,x+1)}function ZE(u,n){let{start:h,endExclusive:g}=u,p=Number.MAX_VALUE,m=0;for(let v of n){let S=m+v.width,C=Math.max(h,m),x=Math.min(g,S);if(C<x)p=Math.min(p,v.height);m=S}if(g>m)return 0;return p===Number.MAX_VALUE?0:p}class Gm{constructor(u,n,h){this._lineRangeInfo=u,this.availableSpaceSizes=u.sizes.map((g,p)=>{let m=u.lineRange.startLineNumber+p,v=h(m);return new sa(Math.max(0,n-g.width-v),g.height)}),this.availableSpaceHeightPrefixSums=fM(this.availableSpaceSizes,(g)=>g.height),this.availableSpaceSizesTransposed=this.availableSpaceSizes.map((g)=>g.transpose())}getWidgetVerticalOutline(u,n,h){let g=u-this._lineRangeInfo.lineRange.startLineNumber,p=this._lineRangeInfo.top+this.availableSpaceHeightPrefixSums[g],m=V.ofStartAndLength(p,n),{previewEditorMargin:v,widgetPadding:S,widgetBorder:C,lowerBarHeight:x}=h;return m.withMargin(v+S+C).withMargin(0,x)}tryFindWidgetOutline(u,n,h,g){if(this._lineRangeInfo.lineRange.length<3)return;return pM(this._lineRangeInfo.lineRange.addMargin(-1,-1),u,(p)=>{let m=this.getWidgetVerticalOutline(p,n,g),v=ZE(m.delta(-this._lineRangeInfo.top),this.availableSpaceSizesTransposed);if(v<g.minWidgetWidth)return;return{horizontalWidgetRange:V.ofStartAndLength(h-v,v),verticalWidgetRange:m}})}}function XE(u,n,h,g,p){let m=[],v=u.startLineNumber,S=h,C=[];for(let x=0;x<n.length;x++){let T=u.startLineNumber+x,R=S+C.reduce((Y,Q)=>Y+Q.height,0),Z=g.editor.getTopForLineNumber(T);if(x>0&&Z!==R)m.push({lineRange:ee.ofLength(v,T-v),top:S,sizes:C}),v=T,S=Z,C=[];C.push(n[x])}return m.push({lineRange:ee.ofLength(v,u.endLineNumberExclusive-v),top:S,sizes:C}),f({owner:"splitIntoContinuousLineRanges"},(x)=>g.observeTopForLineNumber(u.endLineNumberExclusive-1).read(x)).read(p),m}function pM(u,n,h){for(let g=0;;g++){let p=n+g;if(p<=u.endLineNumberExclusive){let v=h(p);if(v!==void 0)return v}let m=n-g;if(m>=u.startLineNumber){let v=h(m);if(v!==void 0)return v}if(m<u.startLineNumber&&p>u.endLineNumberExclusive)return}}function fM(u,n){let h=[0],g=0;for(let p of u)g+=n(p),h.push(g);return h}var UM=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Nu=function(u,n){return function(h,g){n(h,g,u)}},ZM=6,hS={EMPTY_SPACE:425,OVERLAY:375},YM=250,eO={previewEditorMargin:2,widgetPadding:2,widgetBorder:1,lowerBarHeight:20,minWidgetWidth:YM},ef=class u extends i{constructor(n,h,g,p,m,v,S,C,x){super();this._editor=n,this._viewState=h,this._previewTextModel=g,this._tabAction=p,this._instantiationService=m,this._themeService=v,this._keybindingService=S,this._modelService=C,this._languageService=x,this.onDidClick=I.None,this._viewWithElement=void 0,this._hintTextPosition=f(this,(T)=>{let R=this._viewState.read(T);return R?new s(R.hint.lineNumber,Number.MAX_SAFE_INTEGER):null}),this._lineSizesAroundHintPosition=f(this,(T)=>{let R=this._viewState.read(T),Z=this._hintTextPosition.read(T);if(!R||!Z)return[];let Y=this._editorObs.model.read(T);if(!Y)return[];let Q=ee.ofLength(Z.lineNumber,1).addMargin(5,5).intersect(ee.ofLength(1,Y.getLineCount()));if(!Q)return[];let te=AE(this._editorObs,Q,T),oe=this._editorObs.observeTopForLineNumber(Q.startLineNumber).read(T);return XE(Q,te,oe,this._editorObs,T)}),this._isVisibleDelayed=kI(f(this,(T)=>this._viewState.read(T)?.hint.isVisible),(T,R)=>T===!0&&R===!1?200:0),this._previewEditorLayoutInfo=f(this,(T)=>{let R=this._viewState.read(T);if(!R||!this._isVisibleDelayed.read(T))return;let Z=this._lineSizesAroundHintPosition.read(T);if(Z.length===0)return;let Y=this._editorObs.scrollTop.read(T),Q=this._editorObs.scrollLeft.read(T),te=this._editorObs.layoutInfo.read(T),oe=this._previewEditor.contentHeight.read(T),ne=this._previewEditor.horizontalContentRangeInPreviewEditorToShow.read(T);if(!oe||!ne)return;let he=te.contentWidth-te.verticalScrollbarWidth,ge=te.contentLeft+he;if(!this._editorObs.cursorLineNumber.read(T))return;let Se=eO,pe=oe+2,Me,Ae,We=($o)=>$o===R.hint.lineNumber?40:20;for(let $o of Z){let or=new Gm($o,he,We);if(Ae=or,Me=or.tryFindWidgetOutline(R.hint.lineNumber,pe,ge,Se),Me)break}let Ie="empty-space";if(!Me){Ie="overlay";let $o=Math.min(te.width-te.contentLeft,hS.OVERLAY),or=Ae??new Gm(Z[0],he,We);Me={horizontalWidgetRange:V.ofStartAndLength(ge-$o,$o),verticalWidgetRange:or.getWidgetVerticalOutline(R.hint.lineNumber+2,pe,Se).delta(10)}}if(!Me)return;let Ve=st.fromRanges(Me.horizontalWidgetRange,Me.verticalWidgetRange).translateX(-Q).translateY(-Y),{previewEditorMargin:tt,widgetPadding:qe,widgetBorder:rt,lowerBarHeight:$e}=Se,Ot=Ie==="overlay"?hS.OVERLAY:hS.EMPTY_SPACE,it=ne.maxEditorWidth+tt+qe,mt=Math.min(Ot,Math.max(it,Se.minWidgetWidth)),At=GE(Ve.width,{spaceBefore:{min:0,max:10,priority:1},content:{min:50,rules:[{max:150,priority:2},{max:mt,priority:1}]},spaceAfter:{min:10}});if(!At)return null;let St=tO([At.spaceBefore,At.content,At.spaceAfter],Ve.left);Ve.withHorizontalRange(St[0]);let vt=Ve.withHorizontalRange(St[1]);Ve.withHorizontalRange(St[2]);let Wt=vt.withMargin(-qe-rt-tt).withMargin(0,0,-$e,0),Pt=Wt.width-ne.nonContentWidth,It=Pt*0.8,Si=ne.preferredRangeToReveal.intersect(V.ofStartAndLength(ne.preferredRangeToReveal.start,It))??ne.preferredRangeToReveal,cs=iO(ne.indentationEnd,Pt,Si);return{codeEditorSize:Wt.getSize(),codeScrollLeft:Q,contentLeft:te.contentLeft,widgetRect:vt,previewEditorMargin:tt,widgetPadding:qe,widgetBorder:rt,lowerBarHeight:$e,desiredPreviewEditorScrollLeft:cs.newScrollPosition}}),this._view=ue.div({class:"inline-edits-view",style:{position:"absolute",overflow:"visible",top:"0px",left:"0px",display:f(this,(T)=>this._previewEditorLayoutInfo.read(T)?"block":"none")}},[f(this,(T)=>[this._widgetContent])]),this._widgetContent=f(this,(T)=>ue.div({class:["inline-edits-long-distance-hint-widget","show-file-icons"],style:{position:"absolute",overflow:"hidden",cursor:"pointer",background:P(Bo),padding:this._previewEditorLayoutInfo.map((R)=>R?.widgetPadding),boxSizing:"border-box",borderRadius:ZM,border:f((R)=>`${this._previewEditorLayoutInfo.read(R)?.widgetBorder}px solid ${this._styles.read(R).border}`),display:"flex",flexDirection:"column",opacity:f((R)=>this._viewState.read(R)?.hint.isVisible?"1":"0"),transition:"opacity 200ms ease-in-out",...Jt((R)=>this._previewEditorLayoutInfo.read(R)?.widgetRect)},onmousedown:(R)=>{R.preventDefault()},onclick:()=>{this._viewState.read(void 0)?.model.jump()}},[ue.div({class:["editorContainer"],style:{overflow:"hidden",padding:this._previewEditorLayoutInfo.map((R)=>R?.previewEditorMargin),background:this._styles.map((R)=>R.background),pointerEvents:"none"}},[f(this,(R)=>this._previewEditor.element)]),ue.div({class:"bar",style:{color:P(v0),pointerEvents:"none",margin:"0 4px",height:this._previewEditorLayoutInfo.map((R)=>R?.lowerBarHeight),display:"flex",justifyContent:"space-between",alignItems:"center"}},[f(this,(R)=>{let Z=[],Y=this._viewState.read(R);if(!Y)return Z;let Q=this._editorObs.model.read(R),te=Y.target.uri,oe=!Q||!Y.target.targets(Q);if(oe){let Se=Mi(te),ae=Td(this._modelService,this._languageService,te,Eo.FILE);Z.push(ue.div({class:"target-file",style:{display:"flex",alignItems:"center",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},[ue.elem("span",{class:ae,style:{flexShrink:"0",marginRight:"4px"}}),Se]))}else{let Se=this._originalOutlineSource.read(R),ae=this._originalTargetLineNumber.read(R),pe=Se?.getAt(ae,R).slice(0,1)??[],Me=[];if(pe.length>0)for(let Ae=0;Ae<pe.length;Ae++){let We=pe[Ae],Ie=jh.toIcon(We.kind);Me.push(ue.div({class:"breadcrumb-item",style:{display:"flex",alignItems:"center",flex:"1 1 auto",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},[So(Ie)," ",We.name,...Ae===pe.length-1?[]:[So(_.chevronRight)]]))}Z.push(ue.div({class:"outline-elements",style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},Me))}let ne=this._originalTargetLineNumber.read(R),he=oe?_.arrowRight:Y.hint.lineNumber<ne?_.arrowDown:_.arrowUp,ge=this._keybindingService.lookupKeybinding(yc),_e=oe?"Go to file":"Go to suggestion";if(ge&&ge.getLabel()==="Tab")_e=oe?"Tab to open":"Tab to jump";return Z.push(ue.div({class:"go-to-label",style:{position:"relative",display:"flex",alignItems:"center",flex:"0 0 auto",paddingLeft:"6px"}},[_e," ",So(he)])),Z})])])),this._originalTargetLineNumber=f(this,(T)=>{let R=this._viewState.read(T);if(!R)return-1;if(R.edit.action?.kind==="jumpTo")return R.edit.action.position.lineNumber;return R.diff[0]?.original.startLineNumber??-1}),this._originalOutlineSource=fr(this,(T)=>{let R=this._editorObs.model.read(T),Z=np._breadcrumbsSourceFactory.read(T);return!R||!Z?void 0:Z(R,this._instantiationService)}),this._styles=f((T)=>{let R=this._tabAction.read(T),Z=_a(xf,this._themeService).read(T),Y=Pe(this._themeService.onDidColorThemeChange,()=>{let te=this._themeService.getColorTheme();return te.type==="hcDark"||te.type==="hcLight"}).read(T),Q;if(Y)Q=Z;else{let te;switch(R){case Dt.Inactive:te=Yc;break;case Dt.Jump:te=xr;break;case Dt.Accept:te=Jc;break}Q=Vt(te,this._themeService).read(T)}return{border:Q.toString(),background:io(this._viewState.map((te)=>te?.editorType??Nt.TextEditor).read(T))}}),this._editorObs=ct(this._editor),this._previewEditor=this._register(this._instantiationService.createInstance($m,this._previewTextModel,f((T)=>{let R=this._viewState.read(T);if(!R)return;return{diff:R.diff,model:R.model,inlineSuggestInfo:R.inlineSuggestInfo,nextCursorPosition:R.nextCursorPosition,target:R.target}}),this._editor,this._tabAction)),this._viewWithElement=this._view.keepUpdated(this._store),this._register(this._editorObs.createOverlayWidget({domNode:this._viewWithElement.element,position:Ne(null),allowEditorOverflow:!1,minContentWidthInPx:Ne(0)})),this._widgetContent.get().keepUpdated(this._store),this._register(W((T)=>{let R=this._previewEditorLayoutInfo.read(T);if(!R)return;this._previewEditor.layout(R.codeEditorSize.toDimension(),R.desiredPreviewEditorScrollLeft)})),this._isVisibleDelayed.recomputeInitiallyAndOnChange(this._store)}get isHovered(){return this._widgetContent.get().didMouseMoveDuringHover}};ef=UM([Nu(4,A),Nu(5,Be),Nu(6,me),Nu(7,Et),Nu(8,xt)],ef);function tO(u,n=0){let h=[],g=n;for(let p of u)h.push(new V(g,g+p)),g+=p;return h}function iO(u,n,h){let g=new V(u,u+n);if(g.containsRange(h))return{newScrollPosition:u};if(h.length>n)return{newScrollPosition:h.start};if(h.endExclusive>g.endExclusive)return{newScrollPosition:h.endExclusive-n};if(h.start<g.start)return{newScrollPosition:h.start};return{newScrollPosition:u}}var oO=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},uS=function(u,n){return function(h,g){n(h,g,u)}},dl=0,Mu=0,ir=1,nO=1,rO=3,ds=Xt,gS=20,YE=12,Ou=class u extends i{static fitsInsideViewport(n,h,g,p){let m=ct(n),v=m.layoutInfoWidth.read(p),S=m.layoutInfoContentLeft.read(p),C=n.getLayoutInfo().verticalScrollbarWidth,x=m.layoutInfoMinimap.read(p).minimapLeft!==0?m.layoutInfoMinimap.read(p).minimapWidth:0,T=qo(m,g.displayRange,void 0),R=g.lineEdit.newLines.reduce((Q,te)=>Math.max(Q,Du(te,n,h)),0),Z=gS,Y=YE+2*ir;return T+R+Z+Y<v-S-C-x}constructor(n,h,g,p,m,v,S,C){super();this._editor=n,this._edit=h,this._previewTextModel=g,this._uiState=p,this._tabAction=m,this._instantiationService=v,this._themeService=S,this._userInteractionService=C,this._onDidClick=this._register(new o),this.onDidClick=this._onDidClick.event,this._editorObs=ct(this._editor),this._display=f(this,(R)=>this._uiState.read(R)?"block":"none"),this.previewRef=ue.ref();let x=this._uiState.map((R)=>R?.editorType===Nt.DiffEditor?rO:nO);this._editorContainer=ue.div({class:["editorContainer"],style:{position:"absolute",overflow:"hidden",cursor:"pointer"},onmousedown:(R)=>{R.preventDefault()},onclick:(R)=>{this._onDidClick.fire(Lo.create(R))}},[ue.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(Ni,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:{[pt.inInlineEditsPreviewEditor.key]:!0},contributions:[]},this._editor)),this._previewEditorObs=ct(this.previewEditor),this._activeViewZones=[],this._updatePreviewEditor=f(this,(R)=>{if(this._editorContainer.readEffect(R),this._previewEditorObs.model.read(R),this._display.read(R),this._nonOverflowView)this._nonOverflowView.element.style.display=this._display.read(R);let Z=this._uiState.read(R),Y=this._edit.read(R);if(!Z||!Y)return;let Q=Y.originalLineRange,te=[];if(Q.startLineNumber>1)te.push(new t(1,1,Q.startLineNumber-1,1));if(Q.startLineNumber+Z.newTextLineCount<this._previewTextModel.getLineCount()+1)te.push(new t(Q.startLineNumber+Z.newTextLineCount,1,this._previewTextModel.getLineCount()+1,1));this.previewEditor.setHiddenAreas(te,void 0,!0);let oe=[...this._activeViewZones];this._activeViewZones=[];let ne=Q.endLineNumberExclusive-Q.startLineNumber-Z.newTextLineCount;this.previewEditor.changeViewZones((he)=>{if(oe.forEach((ge)=>he.removeZone(ge)),ne>0)this._activeViewZones.push(he.addZone({afterLineNumber:Q.startLineNumber+Z.newTextLineCount-1,heightInLines:ne,showInHiddenAreas:!0,domNode:w("div.diagonal-fill.inline-edits-view-zone")}))})}),this._previewEditorWidth=f(this,(R)=>{let Z=this._edit.read(R);if(!Z)return 0;return this._updatePreviewEditor.read(R),qo(this._previewEditorObs,Z.modifiedLineRange,R)}),this._cursorPosIfTouchesEdit=f(this,(R)=>{let Z=this._editorObs.cursorPosition.read(R),Y=this._edit.read(R);if(!Y||!Z)return;return Y.modifiedLineRange.contains(Z.lineNumber)?Z:void 0}),this._originalStartPosition=f(this,(R)=>{let Z=this._edit.read(R);return Z?new s(Z.originalLineRange.startLineNumber,1):null}),this._originalEndPosition=f(this,(R)=>{let Z=this._edit.read(R);return Z?new s(Z.originalLineRange.endLineNumberExclusive,1):null}),this._originalVerticalStartPosition=this._editorObs.observePosition(this._originalStartPosition,this._store).map((R)=>R?.y),this._originalVerticalEndPosition=this._editorObs.observePosition(this._originalEndPosition,this._store).map((R)=>R?.y),this._originalDisplayRange=this._edit.map((R)=>R?.displayRange),this._editorMaxContentWidthInRange=f(this,(R)=>{let Z=this._originalDisplayRange.read(R);if(!Z)return Ne(0);return this._editorObs.versionId.read(R),mr(this,(Y,Q)=>{let te=qo(this._editorObs,Z,Y);return Math.max(te,Q??0)})}).map((R,Z)=>R.read(Z));let T=BE(this._editor,this._store);this._previewEditorLayoutInfo=f(this,(R)=>{let Z=this._edit.read(R);if(!Z)return null;if(!this._uiState.read(R))return null;let Q=Z.originalLineRange,te=this._editorObs.scrollLeft.read(R),oe=this._editorMaxContentWidthInRange.read(R),ne=this._editorObs.layoutInfo.read(R),he=this._previewEditorWidth.read(R),ge=ne.contentWidth-ne.verticalScrollbarWidth,_e=T.read(R),Se=ne.contentLeft+ne.contentWidth+_e.left,ae=B(this._editor.getContainerDomNode()).innerWidth-Se,pe=B(this._editor.getContainerDomNode()).innerWidth-_e.right,Me=Math.min(ne.contentWidth*0.3,he,100),Ae=0,We=Ae+ae,Ie=this._cursorPosIfTouchesEdit.read(R),Ve=Math.max(ge+te-Ae-Math.max(0,Me-We),Math.min(Ie?FE(this._editorObs,Ie,R)+50:0,ge+te)),tt=Math.min(oe+gS,Ve),qe=oe+gS+he+70,rt=Ve-tt,$e,Ot;if(tt>te)$e=0,Ot=ne.contentLeft+tt-te;else $e=te-tt,Ot=ne.contentLeft;let it=this._originalVerticalStartPosition.read(R)??this._editor.getTopForLineNumber(Q.startLineNumber)-this._editorObs.scrollTop.read(R),mt=this._originalVerticalEndPosition.read(R)??this._editor.getBottomForLineNumber(Q.endLineNumberExclusive-1)-this._editorObs.scrollTop.read(R),At=ne.contentLeft-te,St=st.fromLeftTopRightBottom(At,it,Ot,mt),vt=St.height===0;if(!vt)St=St.withMargin(Mu,dl);let Pt=this._previewEditorObs.observeLineHeightsForLineRange(Z.modifiedLineRange).read(R).reduce((Vf,fD)=>Vf+fD,0),It=mt-it,Si=Math.max(It,Pt),cs=rt===0,$o=0,or=Math.min(he+YE,pe+ne.width-ne.contentLeft-$o),ya=st.fromLeftTopWidthHeight(St.right+$o,it,or,Si);if(!vt)ya=ya.withMargin(Mu,dl).translateX(dl+ir);else ya=ya.withMargin(Mu,dl).translateY(Mu);return{codeRect:St,editRect:ya,codeScrollLeft:te,contentLeft:ne.contentLeft,isInsertion:vt,maxContentWidth:qe,shouldShowShadow:cs,desiredPreviewEditorScrollLeft:$e,previewEditorWidth:or}}),this._stickyScrollController=Is.get(this._editorObs.editor),this._stickyScrollHeight=this._stickyScrollController?Pe(this._stickyScrollController.onDidChangeStickyScrollHeight,()=>this._stickyScrollController.stickyScrollWidgetHeight):Ne(0),this._shouldOverflow=f(this,(R)=>!1),this._originalBackgroundColor=Pe(this,this._themeService.onDidColorThemeChange,()=>this._themeService.getColorTheme().getColor(ba)??y.transparent),this._editorBackgroundColor=this._uiState.map((R)=>io(R?.editorType??Nt.TextEditor)),this._backgroundSvg=ue.svg({transform:"translate(-0.5 -0.5)",style:{overflow:"visible",pointerEvents:"none",position:"absolute"}},[ue.svgElem("path",{class:"rightOfModifiedBackgroundCoverUp",d:f(this,(R)=>{let Z=this._previewEditorLayoutInfo.read(R);if(!Z)return;if(this._originalBackgroundColor.read(R).isTransparent())return;return new il().moveTo(Z.codeRect.getRightTop()).lineTo(Z.codeRect.getRightTop().deltaX(1000)).lineTo(Z.codeRect.getRightBottom().deltaX(1000)).lineTo(Z.codeRect.getRightBottom()).build()}),style:{fill:this._editorBackgroundColor}})]).keepUpdated(this._store),this._originalOverlay=ue.div({style:{pointerEvents:"none",display:this._previewEditorLayoutInfo.map((R)=>R?.isInsertion?"none":"block")}},f(this,(R)=>{let Z=ji(this._previewEditorLayoutInfo).read(R);if(!Z)return;let Y=this._editorBackgroundColor.read(R),Q=x.read(R),te=wa(this._tabAction).map((Ae)=>`${ir}px solid ${P(Ae)}`),oe=`${ir+Q}px solid ${Y}`,ne=Z.read(R).codeScrollLeft!==0,he=Z.map((Ae)=>Ae.codeRect.bottom<Ae.editRect.bottom),ge=ds*2+ir*2,_e=Z.map((Ae)=>st.fromLeftTopRightBottom(Ae.contentLeft-ds-ir,Ae.codeRect.top,Ae.contentLeft,Ae.codeRect.bottom+ge)).read(R),Se=new V(_e.left,Number.MAX_SAFE_INTEGER),ae=Z.map((Ae)=>Ae.codeRect.intersectHorizontal(Se)),pe=ae.map((Ae)=>Ae.withMargin(Q,0,Q,Q).intersectHorizontal(Se)),Me=ae.map((Ae)=>st.fromLeftTopWidthHeight(Ae.right-ge+ir,Ae.bottom-ir,ge,ge).intersectHorizontal(Se));return[ue.div({class:"originalSeparatorSideBySide",style:{...pe.read(R).toStyles(),boxSizing:"border-box",borderRadius:`${ds}px 0 0 ${ds}px`,borderTop:oe,borderBottom:oe,borderLeft:ne?"none":oe}}),ue.div({class:"originalOverlaySideBySide",style:{...ae.read(R).toStyles(),boxSizing:"border-box",borderRadius:`${ds}px 0 0 ${ds}px`,borderTop:te,borderBottom:te,borderLeft:ne?"none":te,backgroundColor:P(ba)}}),ue.div({class:"originalCornerCutoutSideBySide",style:{pointerEvents:"none",display:he.map((Ae)=>Ae?"block":"none"),...Me.read(R).toStyles()}},[ue.div({class:"originalCornerCutoutBackground",style:{position:"absolute",top:"0px",left:"0px",width:"100%",height:"100%",backgroundColor:Vt(ba,this._themeService).map((Ae)=>Ae.toString())}}),ue.div({class:"originalCornerCutoutBorder",style:{position:"absolute",top:"0px",left:"0px",width:"100%",height:"100%",boxSizing:"border-box",borderTop:te,borderRight:te,borderRadius:"0 100% 0 0",backgroundColor:Y}})]),ue.div({class:"originalOverlaySideBySideHider",style:{..._e.toStyles(),backgroundColor:Y}})]})).keepUpdated(this._store),this._modifiedOverlay=ue.div({style:{pointerEvents:"none"}},f(this,(R)=>{let Z=ji(this._previewEditorLayoutInfo).read(R);if(!Z)return;let Y=Z.map((ae)=>ae.codeRect.bottom<ae.editRect.bottom),Q=this._editorBackgroundColor.read(R),te=x.read(R),oe=Y.map((ae)=>`0 ${ds}px ${ds}px ${ae?ds:0}px`),ne=Vt(ss(this._tabAction),this._themeService).map((ae)=>`1px solid ${ae.toString()}`),he=`${ir+te}px solid ${Q}`,ge=Z.map((ae)=>ae.editRect.withMargin(0,ir)),_e=ge.map((ae)=>ae.withMargin(te,te,te,0)),Se=f(this,(ae)=>{let pe=ge.read(ae),Me=Z.read(ae);if(!Me.isInsertion||Me.contentLeft>=pe.left)return st.fromLeftTopWidthHeight(pe.left,pe.top,0,0);return new st(Me.contentLeft,pe.top,pe.left,pe.top+ir*2)});return[ue.div({class:"modifiedInsertionSideBySide",style:{...Se.read(R).toStyles(),backgroundColor:ss(this._tabAction).map((ae)=>P(ae))}}),ue.div({class:"modifiedSeparatorSideBySide",style:{..._e.read(R).toStyles(),borderRadius:oe,borderTop:he,borderBottom:he,borderRight:he,boxSizing:"border-box"}}),ue.div({class:"modifiedOverlaySideBySide",style:{...ge.read(R).toStyles(),borderRadius:oe,border:ne,boxSizing:"border-box",backgroundColor:P(Am)}})]})).keepUpdated(this._store),this._nonOverflowView=ue.div({class:"inline-edits-view",style:{position:"absolute",overflow:"visible",top:"0px",left:"0px",display:this._display}},[this._backgroundSvg,f(this,(R)=>this._shouldOverflow.read(R)?[]:[this._editorContainer,this._originalOverlay,this._modifiedOverlay])]).keepUpdated(this._store),this._register(this._editorObs.createOverlayWidget({domNode:this._nonOverflowView.element,position:Ne(null),allowEditorOverflow:!1,minContentWidthInPx:f(this,(R)=>{let Z=this._previewEditorLayoutInfo.read(R)?.maxContentWidth;if(Z===void 0)return 0;return Z})})),this.previewEditor.setModel(this._previewTextModel),this._register(W((R)=>{let Z=this._previewEditorLayoutInfo.read(R);if(!Z)return;let Y=Z.editRect.withMargin(-Mu,-dl);this.previewEditor.layout({height:Y.height,width:Z.previewEditorWidth+15}),this._editorContainer.element.style.top=`${Y.top}px`,this._editorContainer.element.style.left=`${Y.left}px`,this._editorContainer.element.style.width=`${Z.previewEditorWidth+dl}px`})),this._register(W((R)=>{let Z=this._previewEditorLayoutInfo.read(R);if(!Z)return;this._previewEditorObs.editor.setScrollLeft(Z.desiredPreviewEditorScrollLeft)})),this._updatePreviewEditor.recomputeInitiallyAndOnChange(this._store)}};Ou=oO([uS(5,A),uS(6,Be),uS(7,Fr)],Ou);var sO=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Pu=function(u,n){return function(h,g){n(h,g,u)}};class mS{constructor(u,n,h){this.edit=u,this.editorType=n,this.alternativeAction=h}equals(u){return this.edit.equals(u.edit)&&this.alternativeAction===u.alternativeAction}}var Bi=1,JE="word-replacement-view-overlay",QE="word-replacement-view-widget",eD="word-replacement-view-replacement",pS="word-replacement-view-rename",Nd=class u extends i{static{this.MAX_LENGTH=100}constructor(n,h,g,p,m,v,S,C){super();this._editor=n,this._viewData=h,this._tabAction=g,this._languageService=p,this._themeService=m,this._keybindingService=v,this._hoverService=S,this._userInteractionService=C,this._onDidClick=this._register(new o),this.onDidClick=this._onDidClick.event,this._start=this._editor.observePosition(Ne(this._viewData.edit.range.getStartPosition()),this._store),this._end=this._editor.observePosition(Ne(this._viewData.edit.range.getEndPosition()),this._store),this._line=document.createElement("div"),this._primaryElement=j(this,null),this._secondaryElement=j(this,null),this.isHovered=f(this,(Z)=>{let Y=this._primaryElement.read(Z);if(!Y)return!1;return this._userInteractionService.createHoverTracker(Y.element,Z.store).read(Z)}),this._renderTextEffect=f(this,(Z)=>{let Y=this._editor.model.read(void 0);if(!Y)return;let Q=Y.getLineContent(this._viewData.edit.range.startLineNumber),te=li.replace(new V(this._viewData.edit.range.startColumn-1,this._viewData.edit.range.endColumn-1),this._viewData.edit.text),oe=te.replace(Q),ne=Y.tokenization.tokenizeLinesAt(this._viewData.edit.range.startLineNumber,[oe])?.[0],he;if(ne)he=Sl.fromLineTokens(ne).slice(te.getRangeAfterReplace()).toLineTokens(this._viewData.edit.text,this._languageService.languageIdCodec);else he=Tt.createEmpty(this._viewData.edit.text,this._languageService.languageIdCodec);let ge=xu(new xd([he]),Ga.fromEditor(this._editor.editor).withSetWidth(!1).withScrollBeyondLastColumn(0),[],this._line,!0);this._line.style.width=`${ge.minWidthInPx}px`});let x=this._editor.observeLineHeightForPosition(this._viewData.edit.range.getStartPosition()),T=CI(this._viewData.alternativeAction?.count??new Promise((Z)=>Z(void 0))).map((Z)=>Z.value),R=f(this,(Z)=>this._userInteractionService.readModifierKeyStatus(this._editor.editor.getDomNode(),Z).shiftKey);this._layout=f(this,(Z)=>{this._renderTextEffect.read(Z);let Y=this._start.read(Z),Q=this._end.read(Z);if(!Y||!Q||Y.x>Q.x||Y.y>Q.y)return;let te=x.read(Z);if(te<=0)return;let oe=this._editor.scrollLeft.read(Z),ne=this._editor.getOption(59).read(Z).typicalHalfwidthCharacterWidth,he=3*ne,_e=new vi(he,4),Se=void 0;if(this._viewData.alternativeAction){let We=this._viewData.alternativeAction.label,Ie=T.read(Z),Ve=R.read(Z),tt=Ie!==void 0?Ie===1?e(1283,"{0} 1 occurrence",We):e(1284,"{0} {1} occurrences",We,Ie):We,qe=e(1285,"{0} show occurrences","[shift]");Se={label:Ie!==void 0?Ve?tt:We:We,tooltip:tt?`${tt}
|
|
48
|
+
${qe}`:void 0,icon:void 0,count:Ie,keybinding:this._keybindingService.lookupKeybinding(ed),active:R}}let ae=st.fromPoints(Y,Q).withHeight(te).translateX(-oe),pe=st.fromPointSize(ae.getLeftBottom().add(_e),new vi(this._viewData.edit.text.length*ne,ae.height)),Me=pe.withWidth(pe.width+(Se?Se.label.length*ne+8+4+12:0)),Ae=Me.withLeft(ae.left);return{alternativeAction:Se,originalLine:ae,codeLine:pe,modifiedLine:Me,lowerBackground:Ae,lineHeight:te}}),this.minEditorScrollHeight=f(this,(Z)=>{let Y=ji(this._layout).read(Z);if(!Y)return 0;return Y.read(Z).modifiedLine.bottom+Bi+this._editor.editor.getScrollTop()}),this._root=ue.div({class:"word-replacement"},[f(this,(Z)=>{let Y=ji(this._layout).read(Z);if(!Y)return[];let Q=wa(this._tabAction).map((Ie)=>P(Ie)).read(Z),te=ss(this._tabAction).map((Ie)=>P(Ie)).read(Z);this._line.style.lineHeight=`${Y.read(Z).modifiedLine.height+2*Bi}px`;let oe=Ne(!1),ne=Y.map((Ie)=>Ie.alternativeAction),he=f((Ie)=>(ne.read(Ie)?.active.read(Ie)??!1)||oe.read(Ie)),_e=Pe(this._themeService.onDidColorThemeChange,()=>{let Ie=this._themeService.getColorTheme();return Ie.type==="hcDark"||Ie.type==="hcLight"}).read(Z)?_a(je,this._themeService).read(Z):null,Se={borderColor:_e?_e.toString():te,backgroundColor:P(RE),color:"",opacity:"1"},ae={borderColor:_e?_e.toString():P(yn),backgroundColor:P(xr),color:P(va),opacity:"1"},pe={borderColor:_e?_e.toString():_a(ty,this._themeService).map((Ie)=>Ie.transparent(0.2).toString()).read(Z),backgroundColor:io(this._viewData.editorType),color:"",opacity:"0.7"},Me=io(this._viewData.editorType),Ae=f(this,(Ie)=>he.read(Ie)?Se:Se),We=f(this,(Ie)=>he.read(Ie)?ae:pe);return[ue.div({id:JE,style:{position:"absolute",...Jt((Ie)=>el(this._editor).read(Ie)),overflow:"hidden",pointerEvents:"none"}},[ue.div({style:{position:"absolute",...Jt((Ie)=>Y.read(Ie).lowerBackground.withMargin(Bi,2*Bi,Bi,0)),background:Me,cursor:"pointer",pointerEvents:"auto"},onmousedown:(Ie)=>this._mouseDown(Ie)}),ue.div({id:QE,style:{position:"absolute",...Jt((Ie)=>Y.read(Ie).modifiedLine.withMargin(Bi,2*Bi)),width:void 0,pointerEvents:"auto",boxSizing:"border-box",borderRadius:`${Xt}px`,background:Me,display:"flex",justifyContent:"left",outline:`2px solid ${Me}`},onmousedown:(Ie)=>this._mouseDown(Ie)},[ue.div({id:eD,style:{fontFamily:this._editor.getOption(58),fontSize:this._editor.getOption(61),fontWeight:this._editor.getOption(62),width:Jt((Ie)=>Y.read(Ie).codeLine.withMargin(Bi,2*Bi)).width,borderRadius:`${Xt}px`,border:Ae.map((Ie)=>`${Bi}px solid ${Ie.borderColor}`),boxSizing:"border-box",padding:`${Bi}px`,opacity:Ae.map((Ie)=>Ie.opacity),background:Ae.map((Ie)=>Ie.backgroundColor),display:"flex",justifyContent:"left",alignItems:"center",pointerEvents:"auto",cursor:"pointer"},obsRef:(Ie)=>{this._primaryElement.set(Ie,void 0)}},[this._line]),f(this,(Ie)=>{let Ve=ne.read(Ie);if(!Ve)return;let tt=document.createElement("div");return Ie.store.add(new qa(tt,Ai,{...ek,disableTitle:!0})).set(Ve.keybinding),ue.div({id:pS,style:{position:"relative",borderRadius:`${Xt}px`,borderTop:`${Bi}px solid`,borderRight:`${Bi}px solid`,borderBottom:`${Bi}px solid`,borderLeft:`${Bi}px solid`,borderColor:We.map((rt)=>rt.borderColor),opacity:We.map((rt)=>rt.opacity),color:We.map((rt)=>rt.color),display:"flex",justifyContent:"center",alignItems:"center",padding:"0 4px 0 1px",marginLeft:"4px",background:We.map((rt)=>rt.backgroundColor),cursor:"pointer",textWrap:"nowrap"},class:"inline-edit-alternative-action-label",obsRef:(rt)=>{this._secondaryElement.set(rt,void 0)},ref:(rt)=>{if(Ve.tooltip)Ie.store.add(this._hoverService.setupDelayedHoverAtMouse(rt,{content:Ve.tooltip,appearance:{compact:!0}}))}},[tt,w("div.inline-edit-alternative-action-label-separator"),Ve.icon?So(Ve.icon):void 0,Ve.label])})]),ue.div({style:{position:"absolute",...Jt((Ie)=>Y.read(Ie).originalLine.withMargin(Bi)),boxSizing:"border-box",borderRadius:`${Xt}px`,border:`${Bi}px solid ${Q}`,background:P(DE),pointerEvents:"none"}},[]),ue.svg({width:11,height:14,viewBox:"0 0 11 14",fill:"none",style:{position:"absolute",left:Y.map((Ie)=>Ie.modifiedLine.left-16),top:Y.map((Ie)=>Ie.modifiedLine.top+Math.round((Ie.lineHeight-14-5)/2)),pointerEvents:"none"},onmousedown:(Ie)=>this._mouseDown(Ie)},[ue.svgElem("path",{d:"M1 0C1 2.98966 1 5.92087 1 8.49952C1 9.60409 1.89543 10.5 3 10.5H10.5",stroke:P(ty)}),ue.svgElem("path",{d:"M6 7.5L9.99999 10.49998L6 13.5",stroke:P(ty)})])])]})]).keepUpdated(this._store),this._register(this._editor.createOverlayWidget({domNode:this._root.element,minContentWidthInPx:Ne(0),position:Ne({preference:{top:0,left:0}}),allowEditorOverflow:!1}))}_mouseDown(n){let h=aO(n.target,new Set([QE,eD,pS,JE]));if(!h)return;n.preventDefault(),this._onDidClick.fire(Lo.create(n,h===pS))}};Nd=sO([Pu(3,xt),Pu(4,Be),Pu(5,me),Pu(6,On),Pu(7,Fr)],Nd);function aO(u,n){let h=u;while(h){if(n.has(h.id))return h.id;h=h.parentElement}return null}class fS extends i{constructor(u,n,h){super();this._originalEditor=u,this._state=n,this._modifiedTextModel=h,this._onDidClick=this._register(new o),this.onDidClick=this._onDidClick.event,this.isHovered=ct(this._originalEditor).isTargetHovered((p)=>p.target.type===6&&p.target.detail.injectedText?.options.attachedData instanceof tf&&p.target.detail.injectedText.options.attachedData.owner===this,this._store),this._tokenizationFinished=lO(this._modifiedTextModel),this._decorations=f(this,(p)=>{let m=this._state.read(p);if(!m)return;let v=m.modifiedText,S=m.mode==="insertionInline",C=m.diff.length===1&&m.diff[0].innerChanges?.length===1,x=!0,T=[],R=[],Z=de.register({className:"inlineCompletions-line-insert",description:"line-insert",isWholeLine:!0,marginClassName:"gutter-insert"}),Y=de.register({className:"inlineCompletions-line-delete",description:"line-delete",isWholeLine:!0,marginClassName:"gutter-delete"}),Q=de.register({className:"inlineCompletions-char-delete",description:"char-delete",isWholeLine:!1,zIndex:1}),te=de.register({className:"inlineCompletions-char-insert",description:"char-insert",isWholeLine:!0}),oe=de.register({className:"inlineCompletions-char-insert",description:"char-insert",shouldFillLineOnLineBreak:!0}),ne=de.register({className:"inlineCompletions-char-insert diff-range-empty",description:"char-insert diff-range-empty"}),he=de.register({className:"inlineCompletions-original-lines",description:"inlineCompletions-original-lines",isWholeLine:!1,shouldFillLineOnLineBreak:!0}),ge=m.mode!=="sideBySide"&&m.mode!=="deletion"&&m.mode!=="insertionInline"&&m.mode!=="lineReplacement",_e=m.mode==="lineReplacement";for(let Se of m.diff){if(ge){if(!Se.original.isEmpty)T.push({range:Se.original.toInclusiveRange(),options:Y});if(!Se.modified.isEmpty)R.push({range:Se.modified.toInclusiveRange(),options:Z})}if(Se.modified.isEmpty||Se.original.isEmpty){if(!Se.original.isEmpty)T.push({range:Se.original.toInclusiveRange(),options:Q});if(!Se.modified.isEmpty)R.push({range:Se.modified.toInclusiveRange(),options:te})}else{let ae=S&&dO(Se);for(let pe of Se.innerChanges||[]){if(Se.original.contains(pe.originalRange.startLineNumber)&&!(_e&&pe.originalRange.isEmpty())){let Me=this._originalEditor.getModel()?.getValueInRange(pe.originalRange,1);T.push({range:pe.originalRange,options:{description:"char-delete",shouldFillLineOnLineBreak:!1,className:tl("inlineCompletions-char-delete",pe.originalRange.isSingleLine()&&m.mode==="insertionInline"&&"single-line-inline",pe.originalRange.isEmpty()&&"empty",(pe.originalRange.isEmpty()&&C||m.mode==="deletion"&&Me===`
|
|
49
|
+
`)&&x&&!ae&&"diff-range-empty"),inlineClassName:ae?tl("strike-through","inlineCompletions"):null,zIndex:1}})}if(Se.modified.contains(pe.modifiedRange.startLineNumber))R.push({range:pe.modifiedRange,options:pe.modifiedRange.isEmpty()&&x&&!ae&&C?ne:oe});if(ae){let Me=v.getValueOfRange(pe.modifiedRange),Ae=Me.length>3?[{text:Me.slice(0,1),extraClasses:["start"],offsetRange:new V(pe.modifiedRange.startColumn-1,pe.modifiedRange.startColumn)},{text:Me.slice(1,-1),extraClasses:[],offsetRange:new V(pe.modifiedRange.startColumn,pe.modifiedRange.endColumn-2)},{text:Me.slice(-1),extraClasses:["end"],offsetRange:new V(pe.modifiedRange.endColumn-2,pe.modifiedRange.endColumn-1)}]:[{text:Me,extraClasses:["start","end"],offsetRange:new V(pe.modifiedRange.startColumn-1,pe.modifiedRange.endColumn)}];this._tokenizationFinished.read(p);let We=this._modifiedTextModel.tokenization.getLineTokens(pe.modifiedRange.startLineNumber);for(let{text:Ie,extraClasses:Ve,offsetRange:tt}of Ae)T.push({range:t.fromPositions(pe.originalRange.getEndPosition()),options:{description:"inserted-text",before:{tokens:We.getTokensInRange(tt),content:Ie,inlineClassName:tl("inlineCompletions-char-insert",pe.modifiedRange.isSingleLine()&&m.mode==="insertionInline"&&"single-line-inline",...Ve),cursorStops:ys.None,attachedData:new tf(this)},zIndex:2,showIfCollapsed:!0}})}}}}if(m.editorType===Nt.DiffEditor){for(let Se of m.diff)if(!Se.original.isEmpty)T.push({range:Se.original.toExclusiveRange(),options:he})}return{originalDecorations:T,modifiedDecorations:R}}),this._register(ct(this._originalEditor).setDecorations(this._decorations.map((p)=>p?.originalDecorations??[])));let g=this._state.map((p)=>p?.modifiedCodeEditor);this._register(ni((p,m)=>{let v=g.read(p);if(v)m.add(ct(v).setDecorations(this._decorations.map((S)=>S?.modifiedDecorations??[])))})),this._register(this._originalEditor.onMouseUp((p)=>{if(p.target.type!==6)return;let m=p.target.detail.injectedText?.options.attachedData;if(m instanceof tf&&m.owner===this)this._onDidClick.fire(new Lo(p.event))}))}}class tf{constructor(u){this.owner=u}}function dO(u){if(!u.innerChanges)return!1;return u.innerChanges.every((n)=>K0(n.modifiedRange)&&K0(n.originalRange))}var cO=0;function lO(u){return Pe(u.onDidChangeTokens,()=>cO++)}var hO=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},uO=function(u,n){return function(h,g){n(h,g,u)}},of=class u extends i{constructor(n,h,g,p,m,v){super();this._editor=n,this._model=h,this._simpleModel=g,this._inlineSuggestInfo=p,this._showCollapsed=m,this._instantiationService=v,this._tabAction=f((T)=>this._model.read(T)?.tabAction.read(T)??Dt.Inactive),this.displayRange=f(this,(T)=>{let R=this._uiState.read(T);if(!R)return;if(R.target.uri.toString()!==this._editorObs.model.read(T)?.uri.toString())return;if(R.state?.kind==="custom"){let Z=R.state.displayLocation?.range;if(!Z)throw new H("custom view should have a range");return new ee(Z.startLineNumber,Z.endLineNumber)}if(R.state?.kind==="insertionMultiLine")return this._insertion.originalLines.read(T);return R.edit.displayRange}),this._currentInlineEditCache=void 0,this._uiState=f(this,(T)=>{let R=this._model.read(T),Z=this._editorObs.model.read(T);if(!R||!Z||!this._constructorDone.read(T))return;let Y=R.inlineEdit,Q,te,oe=void 0;if(Y.edit)te=Yi.fromEdit(Y.edit),oe=new _l(Y.edit.apply(Y.originalText)),Q=yf(te,Y.originalText,oe);else te=[],Q=[],oe=Y.originalText;let ne=this._determineRenderState(R,T,Q,oe);if(!ne){X(Error(`unable to determine view: tried to render ${this._previousView?.view}`));return}let he=this._getLongDistanceHintState(R,T);if(he&&he.isVisible)ne.viewData.setLongDistanceViewData(he.lineNumber,Y.lineEdit.lineRange.startLineNumber);if(ne.viewData.isForAnotherDocument=!Y.originalText.targets(Z),ne.kind===Xe.SideBySide){let Se=WE(oe.getValue(),Y.modifiedLineRange,Z.getOptions().tabSize);oe=new _l(Se.applyToString(oe.getValue())),te=HE(te,Se),Q=yf(te,Y.originalText,oe)}this._previewTextModel.setLanguage(Z.getLanguageId());let ge=this._previewTextModel.getValue();if(ge!==oe.getValue()){this._previewTextModel.setEOL(Z.getEndOfLineSequence());let ae=_o.replace(new V(0,ge.length),oe.getValue()).removeCommonSuffixPrefix(ge),pe=Id(this._previewTextModel).getTextEdit(ae);this._previewTextModel.edit(pe)}if(this._showCollapsed.read(T))ne={kind:Xe.Collapsed,viewData:ne.viewData};R.handleInlineEditShownNextFrame(ne.kind,ne.viewData);let _e=Y.action?.kind==="jumpTo"?Y.action.position:null;return{state:ne,diff:Q,edit:Y,newText:oe.getValue(),newTextLineCount:Y.modifiedLineRange.length,editorType:R.editorType,longDistanceHint:he,nextCursorPosition:_e,target:Y.inlineCompletion.originalTextRef}}),this.inlineEditsIsHovered=f(this,(T)=>this._sideBySide.isHovered.read(T)||this._wordReplacementViews.read(T).some((R)=>R.isHovered.read(T))||this._deletion.isHovered.read(T)||this._inlineDiffView.isHovered.read(T)||this._lineReplacementView.isHovered.read(T)||this._insertion.isHovered.read(T)||this._customView.isHovered.read(T)||this._longDistanceHint.map((R,Z)=>R?.isHovered.read(Z)??!1).read(T)),this.gutterIndicatorOffset=f(this,(T)=>{if(this._uiState.read(T)?.state?.kind==="insertionMultiLine")return this._insertion.startLineOffset.read(T);return 0}),this._editorObs=ct(this._editor),this._constructorDone=j(this,!1),this._previewTextModel=this._register(this._instantiationService.createInstance(mu,"",this._editor.getModel().getLanguageId(),{...mu.DEFAULT_CREATION_OPTIONS,bracketPairColorizationOptions:{enabled:!0,independentColorPoolPerBracketType:!1}},null)),this._sideBySide=this._register(this._instantiationService.createInstance(Ou,this._editor,this._model.map((T)=>T?.inlineEdit),this._previewTextModel,this._uiState.map((T)=>T&&T.state?.kind===Xe.SideBySide?{newTextLineCount:T.newTextLineCount,editorType:T.editorType}:void 0),this._tabAction)),this._deletion=this._register(this._instantiationService.createInstance(dS,this._editor,this._model.map((T)=>T?.inlineEdit),this._uiState.map((T)=>T&&T.state?.kind===Xe.Deletion?{originalRange:T.state.originalRange,deletions:T.state.deletions,editorType:T.editorType}:void 0),this._tabAction)),this._insertion=this._register(this._instantiationService.createInstance(Um,this._editor,this._uiState.map((T)=>T&&T.state?.kind===Xe.InsertionMultiLine?{lineNumber:T.state.lineNumber,startColumn:T.state.column,text:T.state.text,editorType:T.editorType}:void 0),this._tabAction)),this._inlineCollapsedView=this._register(this._instantiationService.createInstance(Wm,this._editor,this._model.map((T,R)=>this._uiState.read(R)?.state?.kind===Xe.Collapsed?T?.inlineEdit:void 0))),this._customView=this._register(this._instantiationService.createInstance(zm,this._editor,this._model.map((T,R)=>this._uiState.read(R)?.state?.kind===Xe.Custom?T?.displayLocation:void 0),this._tabAction,this._uiState.map((T)=>T?.editorType??Nt.TextEditor))),this._showLongDistanceHint=this._editorObs.getOption(71).map(this,(T)=>T.edits.showLongDistanceHint),this._longDistanceHint=f(this,(T)=>{if(!this._showLongDistanceHint.read(T))return;return T.store.add(this._instantiationService.createInstance(ef,this._editor,this._uiState.map((R,Z)=>R?.longDistanceHint?{hint:R.longDistanceHint,newTextLineCount:R.newTextLineCount,edit:R.edit,diff:R.diff,editorType:R.editorType,model:this._simpleModel.read(Z),inlineSuggestInfo:this._inlineSuggestInfo.read(Z),nextCursorPosition:R.nextCursorPosition,target:R.target}:void 0),this._previewTextModel,this._tabAction))}).recomputeInitiallyAndOnChange(this._store),this._inlineDiffViewState=f(this,(T)=>{let R=this._uiState.read(T);if(!R||!R.state)return;if(R.state.kind==="wordReplacements"||R.state.kind==="insertionMultiLine"||R.state.kind==="collapsed"||R.state.kind==="custom"||R.state.kind==="jumpTo")return;return{modifiedText:new _l(R.newText),diff:R.diff,mode:R.state.kind,modifiedCodeEditor:this._sideBySide.previewEditor,editorType:R.editorType}}),this._inlineDiffView=this._register(new fS(this._editor,this._inlineDiffViewState,this._previewTextModel)),this._jumpToView=this._register(this._instantiationService.createInstance(jm,this._editorObs,{style:"label"},f((T)=>{let R=this._uiState.read(T);if(R?.state?.kind===Xe.JumpTo)return{jumpToPosition:R.state.position};return})));let S=Rn({equalsFn:c0.arrayC(c0.thisC())},(T)=>{let R=this._uiState.read(T);return R?.state?.kind===Xe.WordReplacements?R.state.replacements.map((Z)=>new mS(Z,R.editorType,R.state?.alternativeAction)):[]});this._wordReplacementViews=dd(this,S,(T,R)=>R.add(this._instantiationService.createInstance(Nd,this._editorObs,T,this._tabAction))),this._lineReplacementView=this._register(this._instantiationService.createInstance(qm,this._editorObs,this._uiState.map((T)=>T?.state?.kind===Xe.LineReplacement?{originalRange:T.state.originalRange,modifiedRange:T.state.modifiedRange,modifiedLines:T.state.modifiedLines,replacements:T.state.replacements}:void 0),this._uiState.map((T)=>T?.editorType??Nt.TextEditor),this._tabAction)),this._useCodeShifting=this._editorObs.getOption(71).map((T)=>T.edits.allowCodeShifting),this._renderSideBySide=this._editorObs.getOption(71).map((T)=>T.edits.renderSideBySide),this._register(W((T)=>{let R=this._model.read(T);if(!R)return;T.store.add(I.any(this._sideBySide.onDidClick,this._lineReplacementView.onDidClick,this._insertion.onDidClick,...this._wordReplacementViews.read(T).map((Z)=>Z.onDidClick),this._inlineDiffView.onDidClick,this._customView.onDidClick)((Z)=>{if(this._viewHasBeenShownLongerThan(350))Z.event.preventDefault(),R.accept(Z.alternativeAction)}))})),this._wordReplacementViews.recomputeInitiallyAndOnChange(this._store);let C=f(this,(T)=>Math.max(...this._wordReplacementViews.read(T).map((R)=>R.minEditorScrollHeight.read(T)),this._lineReplacementView.minEditorScrollHeight.read(T),this._customView.minEditorScrollHeight.read(T))).recomputeInitiallyAndOnChange(this._store),x;this._register(W((T)=>{let R=C.read(T),Z=this._editorObs.model.read(T);if(!Z)return;this._editor.changeViewZones((Y)=>{let Q=this._editor.getScrollHeight(),te=R-Q+1;if(te!==0&&x!==void 0)Y.removeZone(x),x=void 0;if(te<=0)return;x=Y.addZone({afterLineNumber:Z.getLineCount(),heightInPx:te,domNode:w("div.minScrollHeightViewZone")})})})),this._constructorDone.set(!0,void 0)}_getLongDistanceHintState(n,h){if(n.inlineEdit.inlineCompletion.identity.jumpedTo.read(h))return;if(n.inlineEdit.action===void 0)return;let g=this._editorObs.model.read(h);if(!g||!n.inlineEdit.originalText.targets(g))return{isVisible:!0,lineNumber:n.inlineEdit.cursorPosition.lineNumber};if(this._currentInlineEditCache?.inlineSuggestionIdentity!==n.inlineEdit.inlineCompletion.identity)this._currentInlineEditCache={inlineSuggestionIdentity:n.inlineEdit.inlineCompletion.identity,firstCursorLineNumber:n.inlineEdit.cursorPosition.lineNumber};return{lineNumber:this._currentInlineEditCache.firstCursorLineNumber,isVisible:!n.inViewPort.read(h)}}_getCacheId(n){return n.inlineEdit.inlineCompletion.identity.id}_determineView(n,h,g,p){let m=n.inlineEdit,v=this._previousView?.id===this._getCacheId(n)&&this._previousView?.uri.toString()===this._editorObs.model.get().uri.toString(),S=this._previousView?.editorWidth!==this._editorObs.layoutInfoWidth.read(h)&&(this._previousView?.view===Xe.SideBySide||this._previousView?.view===Xe.LineReplacement);if(v&&!S)return this._previousView.view;let C=n.inlineEdit.inlineCompletion.action;if(C?.kind==="edit"&&C.alternativeAction)return Xe.WordReplacements;let x=n.inlineEdit.inlineCompletion.originalTextRef.uri,T=this._editorObs.model.read(h)?.uri;if(T&&x.toString()!==T.toString())return Xe.Custom;if(n.displayLocation&&!n.inlineEdit.inlineCompletion.identity.jumpedTo.read(h))return Xe.Custom;let R=m.originalLineRange.length,Z=m.modifiedLineRange.length,Y=g.flatMap((te)=>te.innerChanges??[]),Q=Y.length===1;if(n.editorType!==Nt.DiffEditor){if(Q&&this._useCodeShifting.read(h)!=="never"&&rD(g)){if(pO(g,m.cursorPosition))return Xe.InsertionInline;return Xe.LineReplacement}if(iD(Y,m,p))return Xe.Deletion;if(tD(g)&&this._useCodeShifting.read(h)==="always")return Xe.InsertionMultiLine;if(Y.every((oe)=>Gt.ofRange(oe.originalRange).columnCount<Nd.MAX_LENGTH&&Gt.ofRange(oe.modifiedRange).columnCount<Nd.MAX_LENGTH)&&Q&&R===1&&Z===1){let oe=Y.map((he)=>p.getValueOfRange(he.modifiedRange)),ne=Y.map((he)=>n.inlineEdit.originalText.getValueOfRange(he.originalRange));if(!oe.some((he)=>he.includes("\t"))&&!ne.some((he)=>he.includes("\t"))){if(!Y.some((he)=>he.originalRange.isEmpty())||!oD(Y.map((he)=>new bt(he.originalRange,"")),m.originalText).some((he)=>he.range.isEmpty()&&Gt.ofRange(he.range).columnCount<Nd.MAX_LENGTH))return Xe.WordReplacements}}}if(R>0&&Z>0){if(R===1&&Z===1&&n.editorType!==Nt.DiffEditor)return Xe.LineReplacement;if(this._renderSideBySide.read(h)!=="never"&&Ou.fitsInsideViewport(this._editor,this._previewTextModel,m,h))return Xe.SideBySide;return Xe.LineReplacement}if(n.editorType===Nt.DiffEditor){if(iD(Y,m,p))return Xe.Deletion;if(tD(g)&&this._useCodeShifting.read(h)==="always")return Xe.InsertionMultiLine}return Xe.SideBySide}_determineRenderState(n,h,g,p){if(n.inlineEdit.action?.kind==="jumpTo")return{kind:Xe.JumpTo,position:n.inlineEdit.action.position,viewData:nD()};let m=n.inlineEdit,v=this._determineView(n,h,g,p);if(this._willRenderAboveCursor(h,m,v))switch(v){case Xe.LineReplacement:case Xe.WordReplacements:v=Xe.SideBySide;break}this._previousView={id:this._getCacheId(n),view:v,editorWidth:this._editor.getLayoutInfo().width,timestamp:Date.now(),uri:this._editorObs.model.get().uri};let S=g.flatMap((Z)=>Z.innerChanges??[]),C=this._editor.getModel(),x=S.map((Z)=>({originalRange:Z.originalRange,modifiedRange:Z.modifiedRange,original:m.originalText.getValueOfRange(Z.originalRange),modified:p.getValueOfRange(Z.modifiedRange)})),T=gO(m,x,C);switch(v){case Xe.InsertionInline:return{kind:Xe.InsertionInline,viewData:T};case Xe.SideBySide:return{kind:Xe.SideBySide,viewData:T};case Xe.Collapsed:return{kind:Xe.Collapsed,viewData:T};case Xe.Custom:return{kind:Xe.Custom,displayLocation:n.displayLocation,viewData:T}}if(v===Xe.Deletion)return{kind:Xe.Deletion,originalRange:m.originalLineRange,deletions:S.map((Z)=>Z.originalRange),viewData:T};if(v===Xe.InsertionMultiLine){let Z=S[0];return{kind:Xe.InsertionMultiLine,lineNumber:Z.originalRange.startLineNumber,column:Z.originalRange.startColumn,text:p.getValueOfRange(Z.modifiedRange),viewData:T}}let R=x.map((Z)=>new bt(Z.originalRange,Z.modified));if(R.length===0)return;if(v===Xe.WordReplacements){let Z=mO(R,m.originalText);if(Z.some((Y)=>Y.range.isEmpty()))Z=oD(R,m.originalText);return{kind:Xe.WordReplacements,replacements:Z,alternativeAction:n.inlineEdit.action?.alternativeAction,viewData:T}}if(v===Xe.LineReplacement)return{kind:Xe.LineReplacement,originalRange:m.originalLineRange,modifiedRange:m.modifiedLineRange,modifiedLines:m.modifiedLineRange.mapToLineArray((Z)=>p.getLineAt(Z)),replacements:S.map((Z)=>({originalRange:Z.originalRange,modifiedRange:Z.modifiedRange})),viewData:T};return}_willRenderAboveCursor(n,h,g){if(this._useCodeShifting.read(n)==="always")return!1;for(let m of h.multiCursorPositions){if(g===Xe.WordReplacements&&m.lineNumber===h.originalLineRange.startLineNumber+1)return!0;if(g===Xe.LineReplacement&&m.lineNumber>=h.originalLineRange.endLineNumberExclusive&&m.lineNumber<h.modifiedLineRange.endLineNumberExclusive+h.modifiedLineRange.length)return!0}return!1}_viewHasBeenShownLongerThan(n){let h=this._previousView?.timestamp;if(!h)throw new H("viewHasBeenShownLongThan called before a view has been shown");return Date.now()-h>=n}};of=hO([uO(5,A)],of);var nD=()=>new zc(-1,-1,-1,-1,-1,-1,-1,!0);function gO(u,n,h){if(!u.edit)return nD();let g=u.cursorPosition,p=n.length===0?!1:n[0].modified.startsWith(h.getEOL());return new zc(u.edit.replacements.length===0?0:u.edit.replacements[0].range.getStartPosition().column-g.column,u.lineEdit.lineRange.startLineNumber-g.lineNumber+(p&&u.lineEdit.lineRange.startLineNumber>=g.lineNumber?1:0),u.lineEdit.lineRange.length,u.lineEdit.newLines.length,n.reduce((v,S)=>v+S.original.length,0),n.reduce((v,S)=>v+S.modified.length,0),n.length,n.every((v)=>v.original===n[0].original&&v.modified===n[0].modified))}function rD(u){return u.every((h)=>h.innerChanges.every((g)=>n(g)));function n(h){if(!h.originalRange.isEmpty())return!1;if(h.modifiedRange.startLineNumber!==h.modifiedRange.endLineNumber)return!1;return!0}}function pO(u,n){if(!n)return!1;if(!rD(u))return!1;let h=n;return u.every((p)=>p.innerChanges.every((m)=>g(m)));function g(p){let m=p.originalRange.getStartPosition();if(h.isBeforeOrEqual(m))return!0;if(m.lineNumber<h.lineNumber)return!0;return!1}}function tD(u){let n=u.flatMap((g)=>g.innerChanges??[]);if(n.length!==1)return!1;let h=n[0];if(!h.originalRange.isEmpty())return!1;if(h.modifiedRange.startLineNumber===h.modifiedRange.endLineNumber)return!1;return!0}function iD(u,n,h){return u.map((p)=>({original:n.originalText.getValueOfRange(p.originalRange),modified:h.getValueOfRange(p.modifiedRange)})).every(({original:p,modified:m})=>m.trim()===""&&p.length>0&&(p.length>m.length||p.trim()!==""))}function mO(u,n){return sD(u,n,(h)=>/^[a-zA-Z]$/.test(h))}function oD(u,n){return sD(u,n,(h)=>!/^\s$/.test(h))}function sD(u,n,h){let g=[];u.sort((m,v)=>t.compareRangesUsingStarts(m.range,v.range));for(let m of u){let v=m.range.startColumn-1,S=m.range.endColumn-2,C="",x="",T=n.getLineAt(m.range.startLineNumber),R=n.getLineAt(m.range.endLineNumber);if(p(T[v]))while(p(T[v-1]))C=T[v-1]+C,v--;if(p(R[S])||S<v)while(p(R[S+1]))x+=R[S+1],S++;let Z=new bt(new t(m.range.startLineNumber,v+1,m.range.endLineNumber,S+2),C+m.text+x);if(g.length>0&&t.areIntersectingOrTouching(g[g.length-1].range,Z.range))Z=bt.joinReplacements([g.pop(),Z],n);g.push(Z)}function p(m){if(m===void 0)return!1;return h(m)}return g}var fO=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},_O=function(u,n){return function(h,g){n(h,g,u)}},nf=class u extends i{constructor(n,h,g,p){super();this._editor=n,this._model=h,this._showCollapsed=g,this._inlineEdit=f(this,(m)=>{let v=this._model.read(m);if(!v)return;if(!this._editor.getModel())return;let C=v.inlineEditState.read(m);if(!C)return;let x=C.inlineSuggestion.action,T;if(x?.kind==="edit"){let R=x.stringEdit,Z=C.inlineSuggestion.originalTextRef.getTransformer(),Y=R.replacements.map((Q)=>{let te=t.fromPositions(Z.getPosition(Q.replaceRange.start),Z.getPosition(Q.replaceRange.endExclusive));return new bt(te,Q.newText)});T=new Fo(Y)}else T=void 0;return new oS(C.inlineSuggestion.originalTextRef,x,T,v.primaryPosition.read(void 0),v.allPositions.read(void 0),C.inlineSuggestion.source.inlineSuggestions.commands??[],C.inlineSuggestion)}),this._inlineEditModel=f(this,(m)=>{let v=this._model.read(m);if(!v)return;let S=this._inlineEdit.read(m);if(!S)return;let C=f(this,(x)=>{if(this._editorObs.isFocused.read(x)){if(v.tabShouldJumpToInlineEdit.read(x))return Dt.Jump;if(v.tabShouldAcceptInlineEdit.read(x))return Dt.Accept}return Dt.Inactive});return new nS(v,S,C)}),this._editorObs=ct(this._editor),this.view=this._register(p.createInstance(of,this._editor,this._inlineEditModel,this._model.map((m)=>m?rl.fromInlineCompletionModel(m):void 0),this._inlineEdit.map((m)=>m?nl.fromInlineSuggestion(m.inlineCompletion):void 0),this._showCollapsed))}};nf=fO([_O(3,A)],nf);var bO=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},vO=function(u,n){return function(h,g){n(h,g,u)}},rf=class u extends i{static{this.hot=yy(this)}constructor(n,h,g,p){super();this._editor=n,this._model=h,this._focusIsInMenu=g,this._instantiationService=p,this._ghostTexts=f(this,(m)=>this._model.read(m)?.ghostTexts.read(m)??[]),this._inlineEdit=f(this,(m)=>this._model.read(m)?.inlineEditState.read(m)?.inlineSuggestion),this._everHadInlineEdit=mr(this,(m,v)=>v||!!this._inlineEdit.read(m)||!!this._model.read(m)?.inlineCompletionState.read(m)?.inlineSuggestion?.showInlineEditMenu),this._indicatorIsHoverVisible=j(this,void 0),this._showInlineEditCollapsed=f(this,(m)=>(this._model.read(m)?.showCollapsed.read(m)??!1)&&!this._indicatorIsHoverVisible.read(m)?.read(m)),this._inlineEditWidget=fr((m)=>{if(!this._everHadInlineEdit.read(m))return;return this._instantiationService.createInstance(nf,this._editor,this._model,this._showInlineEditCollapsed)}),this._gutterIndicatorState=f((m)=>{let v=this._model.read(m);if(!v)return;let S=v.state.read(m);if(S?.kind==="ghostText"&&S.inlineSuggestion?.showInlineEditMenu)return{displayRange:ee.ofLength(S.primaryGhostText.lineNumber,1),tabAction:f(this,(C)=>this._editorObs.isFocused.read(C)?Dt.Accept:Dt.Inactive),gutterIndicatorOffset:Ne(wO(S.inlineSuggestion,this._editor)),inlineSuggestion:S.inlineSuggestion,model:v};else if(S?.kind==="inlineEdit"){let C=this._inlineEditWidget.read(m)?.view;if(!C)return;let x=C.displayRange.read(m);if(!x)return;return{displayRange:x,tabAction:f((T)=>{if(this._editorObs.isFocused.read(T)){if(v.tabShouldJumpToInlineEdit.read(T))return Dt.Jump;if(v.tabShouldAcceptInlineEdit.read(T))return Dt.Accept}return Dt.Inactive}),gutterIndicatorOffset:C.gutterIndicatorOffset,inlineSuggestion:S.inlineSuggestion,model:v}}else return}),this._stablizedGhostTexts=Vk(this._ghostTexts,this._store),this._editorObs=ct(this._editor),this._ghostTextWidgets=dd(this,this._stablizedGhostTexts,(m,v)=>v.add(this._createGhostText(m))).recomputeInitiallyAndOnChange(this._store),this._inlineEditWidget.recomputeInitiallyAndOnChange(this._store),this._fontFamily=this._editorObs.getOption(71).map((m)=>m.fontFamily),this._register(DM(f((m)=>`
|
|
50
|
+
.monaco-editor .ghost-text-decoration,
|
|
51
|
+
.monaco-editor .ghost-text-decoration-preview,
|
|
52
|
+
.monaco-editor .ghost-text {
|
|
53
|
+
font-family: ${this._fontFamily.read(m)};
|
|
54
|
+
}`))),this._register(new Ip(this._editor,this._model,this._instantiationService)),this._indicator=this._register(this._instantiationService.createInstance(ol,this._editorObs,f((m)=>{let v=this._gutterIndicatorState.read(m);if(!v)return;return new Ru(nl.fromInlineSuggestion(v.inlineSuggestion),v.displayRange,rl.fromInlineCompletionModel(v.model),v.inlineSuggestion.action?.kind==="edit"?v.inlineSuggestion.action.alternativeAction:void 0)}),this._gutterIndicatorState.map((m,v)=>m?.tabAction?.read(v)??Dt.Inactive),this._gutterIndicatorState.map((m,v)=>m?.gutterIndicatorOffset?.read(v)??0),this._inlineEditWidget.map((m,v)=>m?.view.inlineEditsIsHovered.read(v)??!1),this._focusIsInMenu)),this._indicatorIsHoverVisible.set(this._indicator.isHoverVisible,void 0),f((m)=>{let v=this._inlineEditWidget.read(m);if(!v)return;return m.store.add(this._instantiationService.createInstance(Hm,v._inlineEditModel,Ne(this._indicator),v.view._inlineCollapsedView))}).recomputeInitiallyAndOnChange(this._store)}_createGhostText(n){return this._instantiationService.createInstance(na,this._editor,f((h)=>{let g=this._model.read(h),p=g?.inlineCompletionState.read(h)?.inlineSuggestion;if(!g||!p)return{ghostText:n.read(h),handleInlineCompletionShown:()=>{},warning:void 0};return{ghostText:n.read(h),handleInlineCompletionShown:(m)=>g.handleInlineSuggestionShown(p,Xe.GhostText,m,Date.now()),warning:Tm.from(g?.warning.read(h))}}),{useSyntaxHighlighting:this._editorObs.getOption(71).map((h)=>h.syntaxHighlightingEnabled),highlightShortSuggestions:!0})}shouldShowHoverAtViewZone(n){return this._ghostTextWidgets.get()[0]?.ownsViewZone(n)??!1}};rf=bO([vO(3,A)],rf);function wO(u,n){let h=u.getSingleTextEdit(),g=n.getModel();if(!g)return 0;let p=g.getEOL();if(h.range.isEmpty()&&h.text.startsWith(p)){let m=n.getLineHeightForPosition(h.range.getStartPosition());return SO(h.text,p)*m}return 0}function SO(u,n){if(!n.length)return 0;let h=0,g=0;while(u.startsWith(n,g))h++,g+=n.length;return h}var CO=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Ca=function(u,n){return function(h,g){n(h,g,u)}},Ir;vk((u)=>wi.get(u));var wi=class u extends i{static{Ir=this}static{this._instances=new Set}static{this.hot=yy(this)}static{this.ID="editor.contrib.inlineCompletionsController"}static getInFocusedEditorOrParent(n){let h=$g(n);if(!h)return null;return Ir.get(h)}static get(n){return yk(n.getContribution(Ir.ID))}constructor(n,h,g,p,m,v,S,C,x){super();this.editor=n,this._instantiationService=h,this._contextKeyService=g,this._configurationService=p,this._commandService=m,this._debounceService=v,this._languageFeaturesService=S,this._accessibilitySignalService=C,this._keybindingService=x,this._focusIsInMenu=j(this,!1),this._focusIsInEditorOrMenu=f(this,(Q)=>{let te=this._editorObs.isFocused.read(Q),oe=this._focusIsInMenu.read(Q);return te||oe}),this._cursorIsInIndentation=f(this,(Q)=>{let te=this._editorObs.cursorPosition.read(Q);if(te===null)return!1;let oe=this._editorObs.model.read(Q);if(!oe)return!1;this._editorObs.versionId.read(Q);let ne=oe.getLineIndentColumn(te.lineNumber);return te.column<=ne}),this.model=fr(this,(Q)=>{if(this._editorObs.isReadonly.read(Q))return;let te=this._editorObs.model.read(Q);if(!te)return;return this._instantiationService.createInstance(bm,te,this._suggestWidgetAdapter.selectedItem,this._editorObs.versionId,this._positions,this._debounceValue,this._enabledInConfig,()=>this._isEditorDictationInProgress(),this.editor)}),this._playAccessibilitySignal=so(this),this._view=f((Q)=>Q.store.add(this._instantiationService.createInstance(rf.hot.read(Q),this.editor,this.model,this._focusIsInMenu))),this._editorObs=ct(this.editor),this._positions=f(this,(Q)=>this._editorObs.selections.read(Q)?.map((te)=>te.getEndPosition())??[new s(1,1)]),this._suggestWidgetAdapter=this._register(new Ww(this._editorObs,(Q)=>this.model.get()?.handleSuggestAccepted(Q),()=>this.model.get()?.selectedInlineCompletion.get()?.getSingleTextEdit())),this._enabledInConfig=Pe(this,this.editor.onDidChangeConfiguration,()=>this.editor.getOption(71).enabled),this._register(this._contextKeyService.onDidChangeContext((Q)=>{if(Q.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((Q)=>!0),this._view.recomputeInitiallyAndOnChange(this._store),Ir._instances.add(this),this._register(N(()=>Ir._instances.delete(this))),this._register(W((Q)=>{let te=this.model.read(Q);if(!te)return;let oe=te.state.read(Q);if(!oe)return;if(!this._focusIsInEditorOrMenu.read(void 0))return;let ne=oe.kind==="inlineEdit"?oe.nextEditUri:void 0;for(let he of Ir._instances)if(he===this)continue;else if(ne&&bs(ne,he.editor.getModel()?.uri))he.model.read(void 0)?.trigger();else he.reject()})),this._register(W((Q)=>{let te=this.model.read(Q),oe=this.editor.getModel()?.uri;if(!te||!oe)return;Q.store.add(te.onDidAccept(()=>{for(let ne of Ir._instances){if(ne===this)continue;let he=ne.model.read(void 0)?.state.read(void 0);if(he?.kind==="inlineEdit"&&bs(he.nextEditUri,oe))ne.model.read(void 0)?.stop("automatic")}}))})),this._register(Pr(this._editorObs.onDidType,(Q,te)=>{if(this._enabledInConfig.get()&&!this._isEditorDictationInProgress())this.model.get()?.trigger()})),this._register(Pr(this._editorObs.onDidPaste,(Q,te)=>{if(this._enabledInConfig.get()&&!this._isEditorDictationInProgress())this.model.get()?.trigger()}));let T=new Set([$f.Tab.id,$f.DeleteLeft.id,$f.DeleteRight.id,Un,"acceptSelectedSuggestion",ul.ID,hl.ID,_t.NextMatchFindAction,Vr.ID,Oa.ID,Zl.ID,Xl.ID,...rg.getRegisteredCommands()]);this._register(this._commandService.onDidExecuteCommand((Q)=>{if(T.has(Q.commandId)&&n.hasTextFocus()&&this._enabledInConfig.get()&&!this._isEditorDictationInProgress()){let te=!1;if(Q.commandId===Un)te=!0;this._editorObs.forceUpdate((oe)=>{this.model.get()?.trigger(oe,{noDelay:te})})}})),this._register(Pr(this._editorObs.selections,(Q,te,oe)=>{if(oe.some((ne)=>ne.reason===3||ne.source==="api")){if(!this._hideInlineEditOnSelectionChange.get()&&this.model.get()?.state.get()?.kind==="inlineEdit")return;let ne=this.model.get();if(!ne)return;if(ne.state.get()?.kind==="ghostText")this.model.get()?.stop()}})),this._register(W((Q)=>{let te=this._focusIsInEditorOrMenu.read(Q),oe=this.model.read(void 0);if(te){let ne=oe?.state.read(void 0);if(!ne||ne.kind!=="inlineEdit"||!ne.nextEditUri)Ye((he)=>{for(let ge of Ir._instances)if(ge!==this)ge.model.read(void 0)?.stop("automatic",he)});return}if(this._contextKeyService.getContextKeyValue("accessibleViewIsShown")||this._configurationService.getValue("editor.inlineSuggest.keepOnBlur")||n.getOption(71).keepOnBlur||qr.dropDownVisible)return;if(!oe)return;if(oe.state.read(void 0)?.inlineSuggestion?.isFromExplicitRequest&&oe.inlineEditAvailable.read(void 0))return;Ye((ne)=>{oe.stop("automatic",ne)})})),this._register(W((Q)=>{let te=this.model.read(Q)?.inlineCompletionState.read(Q);if(te?.suggestItem){if(te.primaryGhostText.lineCount>=2)this._suggestWidgetAdapter.forceRenderingAbove()}else this._suggestWidgetAdapter.stopForceRenderingAbove()})),this._register(N(()=>{this._suggestWidgetAdapter.stopForceRenderingAbove()}));let R=mr(this,(Q,te)=>{let ne=this.model.read(Q)?.state.read(Q);if(this._suggestWidgetAdapter.selectedItem.get())return te;return ne?.inlineSuggestion?.semanticId});this._register(NI(f((Q)=>(this._playAccessibilitySignal.read(Q),R.read(Q),{})),async(Q,te,oe,ne)=>{let he=this.model.get(),ge=he?.state.get();if(!ge||!he)return;if(await Ar(50,o0(ne)),await nk(this._suggestWidgetAdapter.selectedItem,ro,()=>!1,o0(ne)),he=this.model.get(),ge=he?.state.get(),!ge||!he)return;let _e=ge.kind==="ghostText"?he.textModel.getLineContent(ge.primaryGhostText.lineNumber):"";if(this._accessibilitySignalService.playSignal(ge.kind==="ghostText"?nt.inlineSuggestion:nt.nextEditSuggestion),this.editor.getOption(12))if(ge.kind==="ghostText")this._provideScreenReaderUpdate(ge.primaryGhostText.renderForScreenReader(_e));else{let Se=ge.inlineSuggestion.targetRange.startLineNumber,ae=he.tabShouldAcceptInlineEdit.get(),pe=he.tabShouldJumpToInlineEdit.get(),Me;if(ae){let Ae=this._keybindingService.lookupKeybinding(Un)?.getAriaLabel();Me=Ae?e(1262,"Next edit suggestion available on line {0}, press {1} to accept",Se,Ae):e(1263,"Next edit suggestion available on line {0}, accept it to apply",Se)}else if(pe){let Ae=this._keybindingService.lookupKeybinding(yc)?.getAriaLabel();Me=Ae?e(1264,"Next edit suggestion available on line {0}, press {1} to jump",Se,Ae):e(1265,"Next edit suggestion available on line {0}",Se)}else Me=e(1266,"Next edit suggestion available on line {0}",Se);this._provideScreenReaderUpdate(Me)}})),this._register(this._configurationService.onDidChangeConfiguration((Q)=>{if(Q.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 Z=new gw(this._contextKeyService);this._register(Z.bind(pt.cursorInIndentation,this._cursorIsInIndentation)),this._register(Z.bind(pt.hasSelection,(Q)=>!this._editorObs.cursorSelection.read(Q)?.isEmpty())),this._register(Z.bind(pt.cursorAtInlineEdit,this.model.map((Q,te)=>Q?.inlineEditState?.read(te)?.cursorAtInlineEdit.read(te)))),this._register(Z.bind(pt.tabShouldAcceptInlineEdit,this.model.map((Q,te)=>!!Q?.tabShouldAcceptInlineEdit.read(te)))),this._register(Z.bind(pt.tabShouldJumpToInlineEdit,this.model.map((Q,te)=>!!Q?.tabShouldJumpToInlineEdit.read(te)))),this._register(Z.bind(pt.inlineEditVisible,(Q)=>this.model.read(Q)?.inlineEditState.read(Q)!==void 0)),this._register(Z.bind(pt.inlineSuggestionHasIndentation,(Q)=>this.model.read(Q)?.getIndentationInfo(Q)?.startsWithIndentation)),this._register(Z.bind(pt.inlineSuggestionHasIndentationLessThanTabSize,(Q)=>this.model.read(Q)?.getIndentationInfo(Q)?.startsWithIndentationLessThanTabSize)),this._register(Z.bind(pt.suppressSuggestions,(Q)=>{let oe=this.model.read(Q)?.inlineCompletionState.read(Q);return oe?.primaryGhostText&&oe?.inlineSuggestion?oe.inlineSuggestion.source.inlineSuggestions.suppressSuggestions:void 0})),this._register(Z.bind(pt.inlineSuggestionAlternativeActionVisible,(Q)=>{let ne=this.model.read(Q)?.inlineEditState.read(Q)?.inlineSuggestion.action;return ne&&ne.kind==="edit"&&ne.alternativeAction!==void 0})),this._register(Z.bind(pt.inlineSuggestionVisible,(Q)=>{let oe=this.model.read(Q)?.inlineCompletionState.read(Q);return!!oe?.inlineSuggestion&&oe?.primaryGhostText!==void 0&&!oe?.primaryGhostText.isEmpty()}));let Y=f(this,(Q)=>{let ne=this.model.read(Q)?.inlineCompletionState.read(Q)?.primaryGhostText;if(!ne||ne.isEmpty())return;return new s(ne.lineNumber,ne.parts[0].column)});this._register(Z.bind(pt.cursorBeforeGhostText,(Q)=>{let te=Y.read(Q);if(!te)return!1;let oe=this._editorObs.cursorPosition.read(Q);if(!oe)return!1;return te.equals(oe)})),this._register(this._instantiationService.createInstance(om,this.editor))}_isEditorDictationInProgress(){return this._contextKeyService.getContext(this.editor.getDomNode())?.getValue("editorDictation.inProgress")===!0}playAccessibilitySignal(n){this._playAccessibilitySignal.trigger(n)}_provideScreenReaderUpdate(n){let h=this._contextKeyService.getContextKeyValue("accessibleViewIsShown"),g=this._keybindingService.lookupKeybinding("editor.action.accessibleView"),p;if(!h&&g&&this.editor.getOption(170))p=e(1267,"Inspect this in the accessible view ({0})",g.getAriaLabel());zn(p?n+", "+p:n)}shouldShowHoverAt(n){let h=this.model.get()?.primaryGhostText.get();if(!h)return!1;return h.parts.some((g)=>n.containsPosition(new s(h.lineNumber,g.column)))}shouldShowHoverAtViewZone(n){return this._view.get().shouldShowHoverAtViewZone(n)}reject(){Ye((n)=>{let h=this.model.get();if(h){if(h.stop("explicitCancel",n),this._focusIsInEditorOrMenu.get()){for(let g of Ir._instances)if(g!==this&&!g._focusIsInEditorOrMenu.get())g.model.get()?.stop("automatic",n)}}})}jump(){let n=this.model.get();if(n)n.jump()}};wi=Ir=CO([Ca(1,A),Ca(2,G),Ca(3,re),Ca(4,Ue),Ca(5,uo),Ca(6,z),Ca(7,_s),Ca(8,me)],wi);class lf extends U{static{this.ID=Cp}constructor(){super({id:lf.ID,label:b(1239,"Show Next Inline Suggestion"),precondition:L.and(r.writable,pt.inlineSuggestionVisible),kbOpts:{weight:100,primary:606}})}async run(u,n){wi.get(n)?.model.get()?.next()}}class wf extends U{static{this.ID=Sp}constructor(){super({id:wf.ID,label:b(1240,"Show Previous Inline Suggestion"),precondition:L.and(r.writable,pt.inlineSuggestionVisible),kbOpts:{weight:100,primary:604}})}async run(u,n){wi.get(n)?.model.get()?.previous()}}var yO="vscode://schemas/inlineCompletionProviderIdArgs";function xO(u){let n=[];if(u.providerId)n.push(u.providerId.toStringWithoutVersion()),n.push(u.providerId.extensionId+":*");return n}var aD=Nk(Tk({showNoResultNotification:Th(lw()),providerId:Th(Ok(yO,Ik())),explicit:Th(lw()),changeHintData:Th(kk())}),Ek());class _S extends U{constructor(){super({id:"editor.action.inlineSuggest.trigger",label:b(1241,"Trigger Inline Suggestion"),precondition:r.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:aD.getJSONSchema()}]}})}async run(u,n,h){let g=u.get(wt),p=u.get(z),m=wi.get(n),v=aD.validateOrThrow(h),S=v?.providerId?p.inlineCompletionsProvider.all(n.getModel()).find((C)=>xO(C).some((x)=>x===v.providerId)):void 0;if(await xM(async(C)=>{await m?.model.get()?.trigger(C,{provider:S,explicit:v?.explicit??!0,changeHint:v?.changeHintData?{data:v.changeHintData}:void 0}),m?.playAccessibilitySignal(C)}),v?.showNoResultNotification){if(!m?.model.get()?.state.get())g.notify({severity:wc.Info,message:e(1230,"No inline suggestion is available.")})}}}class bS extends U{constructor(){super({id:"editor.action.inlineSuggest.acceptNextWord",label:b(1242,"Accept Next Word Of Inline Suggestion"),precondition:L.and(r.writable,pt.inlineSuggestionVisible),kbOpts:{weight:101,primary:2065,kbExpr:L.and(r.writable,pt.inlineSuggestionVisible,pt.cursorBeforeGhostText,Vh.negate())},menuOpts:[{menuId:l.InlineSuggestionToolbar,title:e(1231,"Accept Word"),group:"primary",order:2}]})}async run(u,n){await wi.get(n)?.model.get()?.acceptNextWord()}}class vS extends U{constructor(){super({id:"editor.action.inlineSuggest.acceptNextLine",label:b(1243,"Accept Next Line Of Inline Suggestion"),precondition:L.and(r.writable,pt.inlineSuggestionVisible),kbOpts:{weight:101},menuOpts:[{menuId:l.InlineSuggestionToolbar,title:e(1232,"Accept Line"),group:"secondary",order:2}]})}async run(u,n){await wi.get(n)?.model.get()?.acceptNextLine()}}class wS extends U{constructor(){super({id:Un,label:b(1244,"Accept Inline Suggestion"),precondition:L.or(pt.inlineSuggestionVisible,pt.inlineEditVisible),menuOpts:[{menuId:l.InlineSuggestionToolbar,title:e(1233,"Accept"),group:"primary",order:2},{menuId:l.InlineEditsActions,title:e(1234,"Accept"),group:"primary",order:2}],kbOpts:[{primary:2,weight:200,kbExpr:L.or(L.and(pt.inlineSuggestionVisible,r.tabMovesFocus.toNegated(),ze.Visible.toNegated(),r.hoverFocused.toNegated(),pt.hasSelection.toNegated(),pt.inlineSuggestionHasIndentationLessThanTabSize),L.and(pt.inlineEditVisible,r.tabMovesFocus.toNegated(),ze.Visible.toNegated(),r.hoverFocused.toNegated(),pt.tabShouldAcceptInlineEdit))}]})}async run(u,n){let h=wi.getInFocusedEditorOrParent(u);if(h)h.model.get()?.accept(h.editor),h.editor.focus()}}Nn.registerKeybindingRule({id:Un,weight:202,primary:2,when:L.and(pt.inInlineEditsPreviewEditor)});class SS extends U{constructor(){super({id:ed,label:b(1245,"Accept Inline Suggestion Alternative Action"),precondition:L.and(pt.inlineSuggestionAlternativeActionVisible,pt.inlineEditVisible),menuOpts:[],kbOpts:[{primary:1026,weight:203}]})}async run(u,n){let h=wi.getInFocusedEditorOrParent(u);if(h)h.model.get()?.accept(h.editor,!0),h.editor.focus()}}Nn.registerKeybindingRule({id:ed,weight:203,primary:1026,when:L.and(pt.inInlineEditsPreviewEditor)});class CS extends U{constructor(){super({id:yc,label:b(1246,"Jump to next inline edit"),precondition:pt.inlineEditVisible,menuOpts:[{menuId:l.InlineEditsActions,title:e(1235,"Jump"),group:"primary",order:1,when:pt.cursorAtInlineEdit.toNegated()}],kbOpts:{primary:2,weight:201,kbExpr:L.and(pt.inlineEditVisible,r.tabMovesFocus.toNegated(),ze.Visible.toNegated(),r.hoverFocused.toNegated(),pt.tabShouldJumpToInlineEdit)}})}async run(u,n){let h=wi.get(n);if(h)h.jump()}}class Au extends U{static{this.ID=yp}constructor(){super({id:Au.ID,label:b(1247,"Hide Inline Suggestion"),precondition:L.or(pt.inlineSuggestionVisible,pt.inlineEditVisible),kbOpts:{kbExpr:r.editorTextFocus,weight:190,primary:9},menuOpts:[{menuId:l.InlineEditsActions,title:e(1236,"Reject"),group:"primary",order:3}]})}async run(u,n){let h=wi.getInFocusedEditorOrParent(u);Ye((g)=>{h?.model.get()?.stop("explicitCancel",g)}),h?.editor.focus()}}class Rf extends U{static{this.ID=hh}constructor(){super({id:Rf.ID,label:b(1248,"Toggle Inline Suggestions Show Collapsed"),precondition:L.true()})}async run(u,n){let h=u.get(re),g=h.getValue("editor.inlineSuggest.edits.showCollapsed");h.updateValue("editor.inlineSuggest.edits.showCollapsed",!g)}}Nn.registerKeybindingRule({id:Au.ID,weight:-1,primary:9,secondary:[1033],when:L.and(pt.inInlineEditsPreviewEditor)});class Mf extends Cn{static{this.ID="editor.action.inlineSuggest.toggleAlwaysShowToolbar"}constructor(){super({id:Mf.ID,title:e(1237,"Always Show Toolbar"),f1:!1,precondition:void 0,menu:[{id:l.InlineSuggestionToolbar,group:"secondary",order:10}],toggled:L.equals("config.editor.inlineSuggest.showToolbar","always")})}async run(u){let n=u.get(re),g=n.getValue("editor.inlineSuggest.showToolbar")==="always"?"onHover":"always";n.updateValue("editor.inlineSuggest.showToolbar",g)}}class yS extends U{constructor(){super({id:"editor.action.inlineSuggest.dev.extractRepro",label:e(1238,"Developer: Extract Inline Suggest State"),alias:"Developer: Inline Suggest Extract Repro",precondition:L.or(pt.inlineEditVisible,pt.inlineSuggestionVisible)})}async run(u,n){let h=u.get(bi),p=wi.get(n)?.model.get();if(!p)return;let m=p.extractReproSample(),S=Ci(JSON.stringify({inlineCompletion:m.inlineCompletion},null,4)).map((x)=>"// "+x).join(`
|
|
55
|
+
`),C=`${m.documentValue}
|
|
56
|
+
|
|
57
|
+
// <json>
|
|
58
|
+
${S}
|
|
59
|
+
// </json>
|
|
60
|
+
`;return await h.writeText(C),{reproCase:C}}}var IO=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Of=function(u,n){return function(h,g){n(h,g,u)}};class dD{constructor(u,n,h){this.owner=u,this.range=n,this.controller=h}isValidForHoverAnchor(u){return u.type===1&&this.range.startColumn<=u.range.startColumn&&this.range.endColumn>=u.range.endColumn}}var Af=class u{constructor(n,h,g,p,m){this._editor=n,this.accessibilityService=h,this._instantiationService=g,this._telemetryService=p,this._markdownRendererService=m,this.hoverOrdinal=4,this.hideCopyButton=!0}suggestHoverAnchor(n){let h=wi.get(this._editor);if(!h)return null;let g=n.target;if(g.type===8){let p=g.detail;if(h.shouldShowHoverAtViewZone(p.viewZoneId))return new $s(1000,this,t.fromPositions(this._editor.getModel().validatePosition(p.positionBefore||p.position)),n.event.posx,n.event.posy,!1)}if(g.type===7){if(h.shouldShowHoverAt(g.range))return new $s(1000,this,g.range,n.event.posx,n.event.posy,!1)}if(g.type===6){if(g.detail.mightBeForeignElement&&h.shouldShowHoverAt(g.range))return new $s(1000,this,g.range,n.event.posx,n.event.posy,!1)}if(g.type===9&&g.element){let p=na.getWarningWidgetContext(g.element);if(p&&h.shouldShowHoverAt(p.range))return new $s(1000,this,p.range,n.event.posx,n.event.posy,!1)}return null}computeSync(n,h){if(this._editor.getOption(71).showToolbar!=="onHover")return[];let g=wi.get(this._editor);if(g&&g.shouldShowHoverAt(n.range))return[new dD(this,n.range,g)];return[]}renderHoverParts(n,h){let g=new d,p=h[0];if(this._telemetryService.publicLog2("inlineCompletionHover.shown"),this.accessibilityService.isScreenReaderOptimized()&&!this._editor.getOption(12))g.add(this.renderScreenReaderText(n,p));let m=p.controller.model.get(),v=document.createElement("div");return n.fragment.appendChild(v),g.add(ni((C,x)=>{let T=x.add(this._instantiationService.createInstance(qr.hot.read(C),this._editor,!1,Ne(null),m.selectedInlineCompletionIndex,m.inlineCompletionsCount,m.activeCommands,m.warning,()=>{n.onContentsChanged()}));v.replaceChildren(T.getDomNode())})),m.triggerExplicitly(),new Ko([{hoverPart:p,hoverElement:v,dispose(){g.dispose()}}])}getAccessibleContent(n){return e(1268,"There are inline completions here")}renderScreenReaderText(n,h){let g=new d,p=w,m=p("div.hover-row.markdown-hover"),v=k(m,p("div.hover-contents",{["aria-live"]:"assertive"})),S=(C)=>{let x=e(1269,"Suggestion:"),T=g.add(this._markdownRendererService.render(new Mn().appendText(x).appendCodeblock("text",C),{context:this._editor,asyncRenderCallback:()=>{v.className="hover-contents code-hover-contents",n.onContentsChanged()}}));v.replaceChildren(T.element)};return g.add(W((C)=>{let x=h.controller.model.read(C)?.primaryGhostText.read(C);if(x){let T=this._editor.getModel().getLineContent(x.lineNumber);S(x.renderForScreenReader(T))}else gn(v)})),n.fragment.appendChild(m),g}};Af=IO([Of(1,sn),Of(2,A),Of(3,Bn),Of(4,zo)],Af);class xS{}fe(wi.ID,xk(wi.hot),3);O(_S);O(lf);O(wf);O(bS);O(vS);O(wS);O(SS);O(Rf);O(Au);O(CS);lt(Mf);O(yS);lt(M1);lt(P1);fl.register(Af);Mc.register(new xS);var LO=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Md=function(u,n){return function(h,g){n(h,g,u)}},IS,Fu=class u{static{IS=this}static{this.ID="editor.contrib.contextmenu"}static get(n){return n.getContribution(IS.ID)}constructor(n,h,g,p,m,v,S,C){this._contextMenuService=h,this._contextViewService=g,this._contextKeyService=p,this._keybindingService=m,this._menuService=v,this._configurationService=S,this._workspaceContextService=C,this._toDispose=new d,this._contextMenuIsBeingShownCount=0,this._editor=n,this._toDispose.add(this._editor.onContextMenu((x)=>this._onContextMenu(x))),this._toDispose.add(this._editor.onMouseWheel((x)=>{if(this._contextMenuIsBeingShownCount>0){let T=this._contextViewService.getContextViewElement(),R=x.srcElement;if(!(R.shadowRoot&&xl(T)===R.shadowRoot))this._contextViewService.hideContextView()}})),this._toDispose.add(this._editor.onKeyDown((x)=>{if(!this._editor.getOption(30))return;if(x.keyCode===58)x.preventDefault(),x.stopPropagation(),this.showContextMenu()}))}_onContextMenu(n){if(!this._editor.hasModel())return;if(!this._editor.getOption(30)){if(this._editor.focus(),n.target.position&&!this._editor.getSelection().containsPosition(n.target.position))this._editor.setPosition(n.target.position);return}if(n.target.type===12)return;if(n.target.type===6&&n.target.detail.injectedText)return;if(n.event.preventDefault(),n.event.stopPropagation(),n.target.type===11)return this._showScrollbarContextMenu(n.event);if(n.target.type!==6&&n.target.type!==7&&n.target.type!==1)return;if(this._editor.focus(),n.target.position){let g=!1;for(let p of this._editor.getSelections())if(p.containsPosition(n.target.position)){g=!0;break}if(!g)this._editor.setPosition(n.target.position)}let h=null;if(n.target.type!==1)h=n.event;this.showContextMenu(h)}showContextMenu(n){if(!this._editor.getOption(30))return;if(!this._editor.hasModel())return;let h=this._getMenuActions(this._editor.getModel(),this._editor.contextMenuId);if(h.length>0)this._doShowContextMenu(h,n)}_getMenuActions(n,h){let g=[],p=this._menuService.getMenuActions(h,this._contextKeyService,{arg:n.uri});for(let m of p){let[,v]=m,S=0;for(let C of v)if(C instanceof fc){let x=this._getMenuActions(n,C.item.submenu);if(x.length>0)g.push(new gs(C.id,C.label,x)),S++}else g.push(C),S++;if(S)g.push(new dt)}if(g.length)g.pop();return g}_doShowContextMenu(n,h=null){if(!this._editor.hasModel())return;let g=h;if(!g){this._editor.revealPosition(this._editor.getPosition(),1),this._editor.render();let m=this._editor.getScrolledVisiblePosition(this._editor.getPosition()),v=kt(this._editor.getDomNode()),S=v.left+m.left,C=v.top+m.top+m.height;g={x:S,y:C}}let p=this._editor.getOption(144)&&!Do;this._contextMenuIsBeingShownCount++,this._contextMenuService.showContextMenu({domForShadowRoot:p?this._editor.getOverflowWidgetsDomNode()??this._editor.getDomNode():void 0,useWindowContainerForShadowRoot:p&&this._editor.getOption(51),getAnchor:()=>g,getActions:()=>n,getActionViewItem:(m)=>{let v=this._keybindingFor(m);if(v)return new Sc(m,m,{label:!0,keybinding:v.getLabel(),isMenu:!0});let S=m;if(typeof S.getActionViewItem==="function")return S.getActionViewItem();return new Sc(m,m,{icon:!0,label:!0,isMenu:!0})},getKeyBinding:(m)=>this._keybindingFor(m),onHide:(m)=>{this._contextMenuIsBeingShownCount--}})}_showScrollbarContextMenu(n){if(!this._editor.hasModel())return;if(s2(this._workspaceContextService.getWorkspace()))return;let h=this._editor.getOption(81),g=0,p=(x)=>({id:`menu-action-${++g}`,label:x.label,tooltip:"",class:void 0,enabled:typeof x.enabled>"u"?!0:x.enabled,checked:x.checked,run:x.run}),m=(x,T)=>new gs(`menu-action-${++g}`,x,T,void 0),v=(x,T,R,Z,Y)=>{if(!T)return p({label:x,enabled:T,run:()=>{}});let Q=(oe)=>()=>{this._configurationService.updateValue(R,oe)},te=[];for(let oe of Y)te.push(p({label:oe.label,checked:Z===oe.value,run:Q(oe.value)}));return m(x,te)},S=[];S.push(p({label:e(952,"Minimap"),checked:h.enabled,run:()=>{this._configurationService.updateValue("editor.minimap.enabled",!h.enabled)}})),S.push(new dt),S.push(p({label:e(953,"Render Characters"),enabled:h.enabled,checked:h.renderCharacters,run:()=>{this._configurationService.updateValue("editor.minimap.renderCharacters",!h.renderCharacters)}})),S.push(v(e(954,"Vertical size"),h.enabled,"editor.minimap.size",h.size,[{label:e(955,"Proportional"),value:"proportional"},{label:e(956,"Fill"),value:"fill"},{label:e(957,"Fit"),value:"fit"}])),S.push(v(e(958,"Slider"),h.enabled,"editor.minimap.showSlider",h.showSlider,[{label:e(959,"Mouse Over"),value:"mouseover"},{label:e(960,"Always"),value:"always"}])),S.push(v(e(961,"Side"),h.enabled,"editor.minimap.side",h.side,[{label:e(962,"Right"),value:"right"},{label:e(963,"Left"),value:"left"}]));let C=this._editor.getOption(144)&&!Do;this._contextMenuIsBeingShownCount++,this._contextMenuService.showContextMenu({domForShadowRoot:C?this._editor.getDomNode():void 0,useWindowContainerForShadowRoot:C&&this._editor.getOption(51),getAnchor:()=>n,getActions:()=>S,onHide:(x)=>{this._contextMenuIsBeingShownCount--,this._editor.focus()}})}_keybindingFor(n){return this._keybindingService.lookupKeybinding(n.id)}dispose(){if(this._contextMenuIsBeingShownCount>0)this._contextViewService.hideContextView();this._toDispose.dispose()}};Fu=IS=LO([Md(1,Yn),Md(2,xs),Md(3,G),Md(4,me),Md(5,Oi),Md(6,re),Md(7,ma)],Fu);class cD extends U{constructor(){super({id:"editor.action.showContextMenu",label:b(964,"Show Editor Context Menu"),precondition:void 0,kbOpts:{kbExpr:r.textInputFocus,primary:1092,weight:100}})}run(u,n){Fu.get(n)?.showContextMenu()}}fe(Fu.ID,Fu,2);O(cD);class LS extends i{static{this.ID="editor.contrib.readOnlyMessageController"}constructor(u){super();this.editor=u,this._register(this.editor.onDidAttemptReadOnlyEdit(()=>this._onDidAttemptReadOnlyEdit()))}_onDidAttemptReadOnlyEdit(){let u=ci.get(this.editor);if(u&&this.editor.hasModel()){let n=this.editor.getOptions().get(105);if(!n)if(this.editor.isSimpleWidget)n=new Mn(e(1447,"Cannot edit in read-only input"));else n=new Mn(e(1448,"Cannot edit in read-only editor"));u.showMessage(n,this.editor.getPosition())}}}fe(LS.ID,LS,2);class kS extends Cn{static{this.ID="editor.action.toggleTabFocusMode"}constructor(){super({id:kS.ID,title:b(1604,"Toggle Tab Key Moves Focus"),precondition:void 0,keybinding:{primary:2091,mac:{primary:1323},weight:100},metadata:{description:b(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 n=!Wh.getTabFocusMode();if(Wh.setTabFocusMode(n),n)zn(e(1602,"Pressing Tab will now move focus to the next focusable element"));else zn(e(1603,"Pressing Tab will now insert the tab character"))}}lt(kS);var lD=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},ES=function(u,n){return function(h,g){n(h,g,u)}},kO=26,Hf=class u extends i{constructor(n,h){super();this._editor=n,this.instantiationService=h,this.banner=this._register(this.instantiationService.createInstance(DS))}hide(){this._editor.setBanner(null,0),this.banner.clear()}show(n){this.banner.show({...n,onClose:()=>{this.hide(),n.onClose?.()}}),this._editor.setBanner(this.banner.element,kO)}};Hf=lD([ES(1,A)],Hf);var DS=class u extends i{constructor(n,h){super();this.instantiationService=n,this.markdownRendererService=h,this.element=w("div.editor-banner"),this.element.tabIndex=0}getAriaLabel(n){if(n.ariaLabel)return n.ariaLabel;if(typeof n.message==="string")return n.message;return}getBannerMessage(n){if(typeof n==="string"){let h=w("span");return h.innerText=n,h}return this.markdownRendererService.render(n).element}clear(){mn(this.element)}show(n){mn(this.element);let h=this.getAriaLabel(n);if(h)this.element.setAttribute("aria-label",h);let g=k(this.element,w("div.icon-container"));if(g.setAttribute("aria-hidden","true"),n.icon)g.appendChild(w(`div${J.asCSSSelector(n.icon)}`));let p=k(this.element,w("div.message-container"));if(p.setAttribute("aria-hidden","true"),p.appendChild(this.getBannerMessage(n.message)),this.messageActionsContainer=k(this.element,w("div.message-actions-container")),n.actions)for(let v of n.actions)this._register(this.instantiationService.createInstance(Ad,this.messageActionsContainer,{...v,tabIndex:-1},{}));let m=k(this.element,w("div.action-container"));this.actionBar=this._register(new Qi(m)),this.actionBar.push(this._register(new xo("banner.close",e(1607,"Close Banner"),J.asClassName(tk),!0,()=>{if(typeof n.onClose==="function")n.onClose()})),{icon:!0,label:!1}),this.actionBar.setFocusable(!1)}};DS=lD([ES(0,A),ES(1,zo)],DS);var OS=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,v;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var S=u.length-1;S>=0;S--)if(v=u[S])m=(p<3?v(m):p>3?v(n,h,m):v(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Hu=function(u,n){return function(h,g){n(h,g,u)}},EO=Ht("extensions-warning-message",_.warning,e(1608,"Icon shown with a warning message in the extensions editor.")),Wu=class u extends i{static{this.ID="editor.contrib.unicodeHighlighter"}constructor(n,h,g,p){super();this._editor=n,this._editorWorkerService=h,this._workspaceTrustService=g,this._highlighter=null,this._bannerClosed=!1,this._updateState=(m)=>{if(m&&m.hasMore){if(this._bannerClosed)return;let v=Math.max(m.ambiguousCharacterCount,m.nonBasicAsciiCharacterCount,m.invisibleCharacterCount),S;if(m.nonBasicAsciiCharacterCount>=v)S={message:e(1609,"This document contains many non-basic ASCII unicode characters"),command:new Vu};else if(m.ambiguousCharacterCount>=v)S={message:e(1610,"This document contains many ambiguous unicode characters"),command:new Od};else if(m.invisibleCharacterCount>=v)S={message:e(1611,"This document contains many invisible unicode characters"),command:new Bu};else throw Error("Unreachable");this._bannerController.show({id:"unicodeHighlightBanner",message:S.message,icon:EO,actions:[{label:S.command.shortLabel,href:`command:${S.command.desc.id}`}],onClose:()=>{this._bannerClosed=!0}})}else this._bannerController.hide()},this._bannerController=this._register(p.createInstance(Hf,n)),this._register(this._editor.onDidChangeModel(()=>{this._bannerClosed=!1,this._updateHighlighter()})),this._options=n.getOption(142),this._register(g.onDidChangeTrust((m)=>{this._updateHighlighter()})),this._register(n.onDidChangeConfiguration((m)=>{if(m.hasChanged(142))this._options=n.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 n=DO(this._workspaceTrustService.isWorkspaceTrusted(),this._options);if([n.nonBasicASCII,n.ambiguousCharacters,n.invisibleCharacters].every((g)=>g===!1))return;let h={nonBasicASCII:n.nonBasicASCII,ambiguousCharacters:n.ambiguousCharacters,invisibleCharacters:n.invisibleCharacters,includeComments:n.includeComments,includeStrings:n.includeStrings,allowedCodePoints:Object.keys(n.allowedCharacters).map((g)=>g.codePointAt(0)),allowedLocales:Object.keys(n.allowedLocales).map((g)=>{if(g==="_os")return mc.NumberFormat().value.resolvedOptions().locale;else if(g==="_vscode")return uM;return g})};if(this._editorWorkerService.canComputeUnicodeHighlights(this._editor.getModel().uri))this._highlighter=new RS(this._editor,h,this._updateState,this._editorWorkerService);else this._highlighter=new hD(this._editor,h,this._updateState)}getDecorationInfo(n){if(this._highlighter)return this._highlighter.getDecorationInfo(n);return null}};Wu=OS([Hu(1,Pi),Hu(2,J1),Hu(3,A)],Wu);function DO(u,n){return{nonBasicASCII:n.nonBasicASCII===ra?!u:n.nonBasicASCII,ambiguousCharacters:n.ambiguousCharacters,invisibleCharacters:n.invisibleCharacters,includeComments:n.includeComments===ra?!u:n.includeComments,includeStrings:n.includeStrings===ra?!u:n.includeStrings,allowedCharacters:n.allowedCharacters,allowedLocales:n.allowedLocales}}var RS=class u extends i{constructor(n,h,g,p){super();this._editor=n,this._options=h,this._updateState=g,this._editorWorkerService=p,this._model=this._editor.getModel(),this._decorations=this._editor.createDecorationsCollection(),this._updateSoon=this._register(new Ce(()=>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 n=this._model.getVersionId();this._editorWorkerService.computedUnicodeHighlights(this._model.uri,this._options).then((h)=>{if(this._model.isDisposed())return;if(this._model.getVersionId()!==n)return;this._updateState(h);let g=[];if(!h.hasMore)for(let p of h.ranges)g.push({range:p,options:Wf.instance.getDecorationFromOptions(this._options)});this._decorations.set(g)})}getDecorationInfo(n){if(!this._decorations.has(n))return null;let h=this._editor.getModel();if(!T0(h,n))return null;let g=h.getValueInRange(n.range);return{reason:gD(g,this._options),inComment:T1(h,n),inString:L1(h,n)}}};RS=OS([Hu(3,Pi)],RS);class hD extends i{constructor(u,n,h){super();this._editor=u,this._options=n,this._updateState=h,this._model=this._editor.getModel(),this._decorations=this._editor.createDecorationsCollection(),this._updateSoon=this._register(new Ce(()=>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 u=this._editor.getVisibleRanges(),n=[],h={ranges:[],ambiguousCharacterCount:0,invisibleCharacterCount:0,nonBasicAsciiCharacterCount:0,hasMore:!1};for(let g of u){let p=Yv.computeUnicodeHighlights(this._model,this._options,g);for(let m of p.ranges)h.ranges.push(m);h.ambiguousCharacterCount+=h.ambiguousCharacterCount,h.invisibleCharacterCount+=h.invisibleCharacterCount,h.nonBasicAsciiCharacterCount+=h.nonBasicAsciiCharacterCount,h.hasMore=h.hasMore||p.hasMore}if(!h.hasMore)for(let g of h.ranges)n.push({range:g,options:Wf.instance.getDecorationFromOptions(this._options)});this._updateState(h),this._decorations.set(n)}getDecorationInfo(u){if(!this._decorations.has(u))return null;let n=this._editor.getModel(),h=n.getValueInRange(u.range);if(!T0(n,u))return null;return{reason:gD(h,this._options),inComment:T1(n,u),inString:L1(n,u)}}}var uD=e(1612,"Configure Unicode Highlight Options"),NS=class u{constructor(n,h){this._editor=n,this._markdownRendererService=h,this.hoverOrdinal=5}computeSync(n,h){if(!this._editor.hasModel()||n.type!==1)return[];let g=this._editor.getModel(),p=this._editor.getContribution(Wu.ID);if(!p)return[];let m=[],v=new Set,S=300;for(let C of h){let x=p.getDecorationInfo(C);if(!x)continue;let R=g.getValueInRange(C.range).codePointAt(0),Z=TS(R),Y;switch(x.reason.kind){case 0:{if(ou(x.reason.confusableWith))Y=e(1613,"The character {0} could be confused with the ASCII character {1}, which is more common in source code.",Z,TS(x.reason.confusableWith.codePointAt(0)));else Y=e(1614,"The character {0} could be confused with the character {1}, which is more common in source code.",Z,TS(x.reason.confusableWith.codePointAt(0)));break}case 1:Y=e(1615,"The character {0} is invisible.",Z);break;case 2:Y=e(1616,"The character {0} is not a basic ASCII character.",Z);break}if(v.has(Y))continue;v.add(Y);let Q={codePoint:R,reason:x.reason,inComment:x.inComment,inString:x.inString},te=e(1617,"Adjust settings"),oe=O1(Bf.ID,Q),ne=new Mn("",!0).appendMarkdown(Y).appendText(" ").appendLink(oe,te,uD);m.push(new eo(this,C.range,[ne],!1,S++))}return m}renderHoverParts(n,h){return HL(n,h,this._editor,this._markdownRendererService)}getAccessibleContent(n){return n.contents.map((h)=>h.value).join(`
|
|
61
|
+
`)}};NS=OS([Hu(1,zo)],NS);function MS(u){return`U+${u.toString(16).padStart(4,"0")}`}function TS(u){let n=`\`${MS(u)}\``;if(!ld.isInvisibleCharacter(u))n+=` "${`${TO(u)}`}"`;return n}function TO(u){if(u===96)return"`` ` ``";return"`"+String.fromCodePoint(u)+"`"}function gD(u,n){return Yv.computeUnicodeHighlightReason(u,n)}class Wf{constructor(){this.map=new Map}static{this.instance=new Wf}getDecorationFromOptions(u){return this.getDecoration(!u.includeComments,!u.includeStrings)}getDecoration(u,n){let h=`${u}${n}`,g=this.map.get(h);if(!g)g=de.createDynamic({description:"unicode-highlight",stickiness:1,className:"unicode-highlight",showIfCollapsed:!0,overviewRuler:null,minimap:null,hideInCommentTokens:u,hideInStringTokens:n}),this.map.set(h,g);return g}}class pD extends U{constructor(){super({id:Od.ID,label:b(1626,"Disable highlighting of characters in comments"),precondition:void 0});this.shortLabel=e(1618,"Disable Highlight In Comments")}async run(u,n){let h=u.get(re);if(h)this.runAction(h)}async runAction(u){await u.updateValue(ps.includeComments,!1,2)}}class mD extends U{constructor(){super({id:Od.ID,label:b(1627,"Disable highlighting of characters in strings"),precondition:void 0});this.shortLabel=e(1619,"Disable Highlight In Strings")}async run(u,n){let h=u.get(re);if(h)this.runAction(h)}async runAction(u){await u.updateValue(ps.includeStrings,!1,2)}}class Od extends Cn{static{this.ID="editor.action.unicodeHighlight.disableHighlightingOfAmbiguousCharacters"}constructor(){super({id:Od.ID,title:b(1628,"Disable highlighting of ambiguous characters"),precondition:void 0,f1:!1});this.shortLabel=e(1620,"Disable Ambiguous Highlight")}async run(u,n){let h=u.get(re);if(h)this.runAction(h)}async runAction(u){await u.updateValue(ps.ambiguousCharacters,!1,2)}}class Bu extends Cn{static{this.ID="editor.action.unicodeHighlight.disableHighlightingOfInvisibleCharacters"}constructor(){super({id:Bu.ID,title:b(1629,"Disable highlighting of invisible characters"),precondition:void 0,f1:!1});this.shortLabel=e(1621,"Disable Invisible Highlight")}async run(u,n){let h=u.get(re);if(h)this.runAction(h)}async runAction(u){await u.updateValue(ps.invisibleCharacters,!1,2)}}class Vu extends Cn{static{this.ID="editor.action.unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters"}constructor(){super({id:Vu.ID,title:b(1630,"Disable highlighting of non basic ASCII characters"),precondition:void 0,f1:!1});this.shortLabel=e(1622,"Disable Non ASCII Highlight")}async run(u,n){let h=u.get(re);if(h)this.runAction(h)}async runAction(u){await u.updateValue(ps.nonBasicASCII,!1,2)}}class Bf extends Cn{static{this.ID="editor.action.unicodeHighlight.showExcludeOptions"}constructor(){super({id:Bf.ID,title:b(1631,"Show Exclude Options"),precondition:void 0,f1:!1})}async run(u,n){let{codePoint:h,reason:g,inString:p,inComment:m}=n,v=String.fromCodePoint(h),S=u.get(En),C=u.get(re);function x(Y){if(ld.isInvisibleCharacter(Y))return e(1623,"Exclude {0} (invisible character) from being highlighted",MS(Y));return e(1624,"Exclude {0} from being highlighted",`${MS(Y)} "${v}"`)}let T=[];if(g.kind===0)for(let Y of g.notAmbiguousInLocales)T.push({label:e(1625,'Allow unicode characters that are more common in the language "{0}".',Y),run:async()=>{NO(C,[Y])}});if(T.push({label:x(h),run:()=>RO(C,[h])}),m){let Y=new pD;T.push({label:Y.label,run:async()=>Y.runAction(C)})}else if(p){let Y=new mD;T.push({label:Y.label,run:async()=>Y.runAction(C)})}function R(Y){return typeof Y.desc.title==="string"?Y.desc.title:Y.desc.title.value}if(g.kind===0){let Y=new Od;T.push({label:R(Y),run:async()=>Y.runAction(C)})}else if(g.kind===1){let Y=new Bu;T.push({label:R(Y),run:async()=>Y.runAction(C)})}else if(g.kind===2){let Y=new Vu;T.push({label:R(Y),run:async()=>Y.runAction(C)})}else MO(g);let Z=await S.pick(T,{title:uD});if(Z)await Z.run()}}async function RO(u,n){let h=u.getValue(ps.allowedCharacters),g;if(typeof h==="object"&&h)g=h;else g={};for(let p of n)g[String.fromCodePoint(p)]=!0;await u.updateValue(ps.allowedCharacters,g,2)}async function NO(u,n){let h=u.inspect(ps.allowedLocales).user?.value,g;if(typeof h==="object"&&h)g=Object.assign({},h);else g={};for(let p of n)g[p]=!0;await u.updateValue(ps.allowedLocales,g,2)}function MO(u){throw Error(`Unexpected value: ${u}`)}lt(Od);lt(Bu);lt(Vu);lt(Bf);fe(Wu.ID,Wu,1);fl.register(NS);export{zt,Iv,Rh,VC,UC,qC,Rv,Dv,mI,GC,sd,ad,sM,e0,Dh,fl,Nv,Km,KC,JC,gI,bI,YC,vI,Nh,t0,ZC,XC,Jm,Av,Ym,Ov,QC,Ro,Mv,yI,Ah,Is,wI};
|
|
62
|
+
|
|
63
|
+
//# debugId=A314397406565AC164756E2164756E21
|
|
64
|
+
//# sourceMappingURL=studio-zz9qe3rw.js.map
|