@jxsuite/studio 2.2.1 → 2.3.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.
Files changed (182) hide show
  1. package/data/css-meta.json +1487 -0
  2. package/data/elements-meta.json +370 -0
  3. package/data/html-meta.json +366 -0
  4. package/data/stylebook-meta.json +200 -0
  5. package/data/webdata.json +1621 -0
  6. package/dist/chunks/{Overlay.dev-ymy3et3y.js → Overlay.dev-d2ajy6sj.js} +7 -7
  7. package/dist/chunks/{content-source-r2n7v682.js → content-source-56xpvx83.js} +13 -12
  8. package/dist/chunks/{convert-to-repeater-cnpyvj74.js → convert-to-repeater-0xh9wwek.js} +12 -11
  9. package/dist/chunks/{extension-sections-vpcm4jvx.js → extension-sections-g34239vm.js} +17 -16
  10. package/dist/chunks/{files-zeg88k2d.js → files-gkz202dp.js} +18 -19
  11. package/dist/chunks/{format-host-taymsw55.js → format-host-pej3srnw.js} +2 -2
  12. package/dist/chunks/{git-panel-qp4rrwr9.js → git-panel-4j6xbh8g.js} +12 -11
  13. package/dist/chunks/{layers-panel-kj93w2zg.js → layers-panel-8mvn8sgd.js} +15 -14
  14. package/dist/chunks/{monaco-setup-xy3bs05d.js → monaco-setup-a5wkmbgh.js} +6 -3
  15. package/dist/chunks/{publish-panel-6qz6kp41.js → publish-panel-ptddc3kg.js} +6 -6
  16. package/dist/chunks/{quick-search-9wwa09hh.js → quick-search-j88azfs2.js} +19 -18
  17. package/dist/chunks/right-panel-egkaxy89.js +38 -0
  18. package/dist/chunks/{sp-overlay.dev-h6kdx076.js → sp-overlay.dev-s18hymn9.js} +8 -8
  19. package/dist/chunks/sp-progress-circle.dev-0zxcyz3r.js +15 -0
  20. package/dist/chunks/sp-tooltip.dev-5c6d1kjz.js +15 -0
  21. package/dist/chunks/{studio-753znj4c.js → studio-0e4h32g6.js} +5 -5
  22. package/dist/chunks/{studio-yz9s88s0.js → studio-10s469da.js} +25 -9
  23. package/dist/chunks/{studio-6f0am8f2.js → studio-2w11grav.js} +2 -2
  24. package/dist/chunks/{studio-zqv3w24n.js → studio-3q65xvzv.js} +5 -5
  25. package/dist/chunks/{studio-qhh8r5fz.js → studio-4058pg09.js} +4 -4
  26. package/dist/chunks/{studio-hekaagev.js → studio-4enps87v.js} +17 -17
  27. package/dist/chunks/{studio-tqemhphj.js → studio-50eed4c9.js} +4 -4
  28. package/dist/chunks/studio-53n8bp04.js +16 -0
  29. package/dist/chunks/{studio-nqq8jk8f.js → studio-5amdrjm4.js} +14 -14
  30. package/dist/chunks/{studio-6zzbyx17.js → studio-5ne8mdx9.js} +2 -2
  31. package/dist/chunks/{studio-3z8jjm2p.js → studio-7ejemhej.js} +3 -3
  32. package/dist/chunks/{studio-1kgfcv7s.js → studio-a11d3a1b.js} +12 -11
  33. package/dist/chunks/{studio-rgwcpast.js → studio-ay8wcr2b.js} +2 -2
  34. package/dist/chunks/{studio-fys6z73y.js → studio-bak2cyjr.js} +7 -7
  35. package/dist/chunks/{studio-xmvbhg31.js → studio-c31yb4t6.js} +2 -2
  36. package/dist/chunks/{studio-8sdyjfd6.js → studio-cf4rk7kv.js} +2 -2
  37. package/dist/chunks/{studio-yphy4z9m.js → studio-cv606rs1.js} +5 -5
  38. package/dist/chunks/{studio-5kt960pk.js → studio-hk523hby.js} +133 -147
  39. package/dist/chunks/{studio-x0et2z9g.js → studio-hs8x23fv.js} +15 -15
  40. package/dist/chunks/{studio-p471gg5n.js → studio-kvfx9z2c.js} +7 -3
  41. package/dist/chunks/{studio-22xr4q8q.js → studio-ncnet0ba.js} +18 -29
  42. package/dist/chunks/{studio-ckwz4d3x.js → studio-twsafr1e.js} +2 -2
  43. package/dist/chunks/{studio-qrsfh1w7.js → studio-tzx3xmvx.js} +5 -5
  44. package/dist/chunks/{studio-g8t7g0gp.js → studio-vdpcpada.js} +3 -3
  45. package/dist/chunks/{studio-6a0h7sne.js → studio-vhk5fmfv.js} +2 -2
  46. package/dist/chunks/{studio-hrajjyt2.js → studio-wdt9y92a.js} +2 -2
  47. package/dist/chunks/{studio-r8vx7bkz.js → studio-x3etxs0s.js} +14 -13
  48. package/dist/chunks/{studio-pv8m0h4a.js → studio-yxzgjq8q.js} +28 -23
  49. package/dist/chunks/{studio-300zsz1k.js → studio-zdkgwhkv.js} +6 -6
  50. package/dist/codicon.ttf +0 -0
  51. package/dist/iframe-entry.js +8 -1
  52. package/dist/manifest.json +82 -0
  53. package/dist/studio.js +232 -103
  54. package/index.html +0 -50
  55. package/package.json +12 -5
  56. package/src/canvas/iframe-entry.ts +5 -0
  57. package/src/canvas/iframe-host.ts +45 -4
  58. package/src/content/entry-editor.ts +2 -1
  59. package/src/editor/context-menu.ts +13 -2
  60. package/src/editor/slash-menu.ts +26 -11
  61. package/src/files/files.ts +11 -23
  62. package/src/grid/grid-panel.ts +27 -6
  63. package/src/hosting/document.ts +109 -0
  64. package/src/hosting/layout.ts +211 -0
  65. package/src/hosting/stage.ts +166 -0
  66. package/src/hosting/tsconfig.json +18 -0
  67. package/src/panels/ai-chat/chat-view.ts +25 -14
  68. package/src/panels/git-panel.ts +17 -14
  69. package/src/panels/head-panel.ts +32 -14
  70. package/src/panels/imports-panel.ts +32 -13
  71. package/src/panels/layers-panel.ts +9 -1
  72. package/src/panels/panel-registry.ts +0 -1
  73. package/src/panels/properties-panel.ts +3 -3
  74. package/src/panels/settings-pane.ts +1 -1
  75. package/src/panels/style-panel.ts +3 -3
  76. package/src/panels/stylebook-panel.ts +10 -1
  77. package/src/panels/toolbar.ts +1 -1
  78. package/src/services/bundle-base.ts +69 -0
  79. package/src/services/monaco-setup.ts +19 -13
  80. package/src/shell/tree.ts +155 -0
  81. package/src/shell.ts +0 -2
  82. package/src/studio.ts +22 -2
  83. package/src/types.ts +15 -0
  84. package/src/ui/regions.ts +10 -45
  85. package/styles/overlays.css +35 -0
  86. package/dist/chunks/2020-xp8vnwma.js.map +0 -24
  87. package/dist/chunks/Overlay.dev-ymy3et3y.js.map +0 -9
  88. package/dist/chunks/adapter-jkcyhgtr.js.map +0 -9
  89. package/dist/chunks/cf-settings-g5fbf2zp.js.map +0 -9
  90. package/dist/chunks/components-z6cnkyy1.js.map +0 -9
  91. package/dist/chunks/content-source-r2n7v682.js.map +0 -9
  92. package/dist/chunks/convert-to-repeater-cnpyvj74.js.map +0 -10
  93. package/dist/chunks/editor-cptq5jp1.js.map +0 -9
  94. package/dist/chunks/extension-sections-vpcm4jvx.js.map +0 -11
  95. package/dist/chunks/files-zeg88k2d.js.map +0 -9
  96. package/dist/chunks/flow-qbfgrpeh.js.map +0 -12
  97. package/dist/chunks/focus-trap.esm-ggawf1hy.js.map +0 -11
  98. package/dist/chunks/focus-visible-6eg70z18.js.map +0 -10
  99. package/dist/chunks/format-host-taymsw55.js.map +0 -9
  100. package/dist/chunks/git-panel-qp4rrwr9.js.map +0 -9
  101. package/dist/chunks/index-nj44jpzj.js.map +0 -14
  102. package/dist/chunks/index-zqxmqxmh.js.map +0 -9
  103. package/dist/chunks/javascript-q8kpmfah.js.map +0 -11
  104. package/dist/chunks/jsonMode-dkr040ga.js.map +0 -18
  105. package/dist/chunks/jx-validate-jj9rnt4n.js.map +0 -9
  106. package/dist/chunks/layers-panel-kj93w2zg.js.map +0 -9
  107. package/dist/chunks/monaco-binding-rj6xpx9y.js.map +0 -10
  108. package/dist/chunks/monaco-setup-xy3bs05d.js.map +0 -15
  109. package/dist/chunks/publish-panel-6qz6kp41.js.map +0 -9
  110. package/dist/chunks/quick-search-9wwa09hh.js.map +0 -9
  111. package/dist/chunks/right-panel-faf816ch.js +0 -37
  112. package/dist/chunks/right-panel-faf816ch.js.map +0 -9
  113. package/dist/chunks/section-registry-sx1ykvkw.js.map +0 -9
  114. package/dist/chunks/sp-overlay.dev-h6kdx076.js.map +0 -9
  115. package/dist/chunks/sp-popover.dev-dj9x7e7a.js.map +0 -9
  116. package/dist/chunks/sp-progress-circle.dev-0fpvhm52.js +0 -15
  117. package/dist/chunks/sp-progress-circle.dev-0fpvhm52.js.map +0 -9
  118. package/dist/chunks/sp-tooltip.dev-rvepkw4r.js +0 -15
  119. package/dist/chunks/sp-tooltip.dev-rvepkw4r.js.map +0 -9
  120. package/dist/chunks/sp-tray.dev-64v4pxw8.js.map +0 -12
  121. package/dist/chunks/studio-0a5qrh01.js.map +0 -9
  122. package/dist/chunks/studio-0rqqhrdy.js.map +0 -12
  123. package/dist/chunks/studio-18j3bmcz.js.map +0 -10
  124. package/dist/chunks/studio-1kgfcv7s.js.map +0 -13
  125. package/dist/chunks/studio-22xr4q8q.js.map +0 -13
  126. package/dist/chunks/studio-300zsz1k.js.map +0 -39
  127. package/dist/chunks/studio-3fk1ac9z.js.map +0 -12
  128. package/dist/chunks/studio-3n4ndrzh.js.map +0 -41
  129. package/dist/chunks/studio-3z8jjm2p.js.map +0 -13
  130. package/dist/chunks/studio-4mqb9a0j.js.map +0 -14
  131. package/dist/chunks/studio-4q0wznzf.js.map +0 -73
  132. package/dist/chunks/studio-5ehhackm.js.map +0 -10
  133. package/dist/chunks/studio-5kt960pk.js.map +0 -38
  134. package/dist/chunks/studio-5x5774ak.js.map +0 -10
  135. package/dist/chunks/studio-685s0ytq.js.map +0 -76
  136. package/dist/chunks/studio-6a0h7sne.js.map +0 -15
  137. package/dist/chunks/studio-6f0am8f2.js.map +0 -10
  138. package/dist/chunks/studio-6kv3apa9.js.map +0 -10
  139. package/dist/chunks/studio-6zzbyx17.js.map +0 -12
  140. package/dist/chunks/studio-753znj4c.js.map +0 -16
  141. package/dist/chunks/studio-7afd21nw.js.map +0 -10
  142. package/dist/chunks/studio-8jpzqk5s.js.map +0 -10
  143. package/dist/chunks/studio-8q517dfr.js.map +0 -10
  144. package/dist/chunks/studio-8sdyjfd6.js.map +0 -10
  145. package/dist/chunks/studio-a0tswy0w.js.map +0 -9
  146. package/dist/chunks/studio-a7pzveq1.js.map +0 -11
  147. package/dist/chunks/studio-ahnzd9rg.js.map +0 -10
  148. package/dist/chunks/studio-b9b6t1dg.js.map +0 -651
  149. package/dist/chunks/studio-bw5dz6km.js.map +0 -21
  150. package/dist/chunks/studio-cjm7fdjf.js.map +0 -14
  151. package/dist/chunks/studio-ckwz4d3x.js.map +0 -12
  152. package/dist/chunks/studio-d1ks410h.js.map +0 -10
  153. package/dist/chunks/studio-dg7zyt5x.js.map +0 -10
  154. package/dist/chunks/studio-fys6z73y.js.map +0 -10
  155. package/dist/chunks/studio-g1wdche0.js.map +0 -56
  156. package/dist/chunks/studio-g8t7g0gp.js.map +0 -10
  157. package/dist/chunks/studio-h4rxscfc.js.map +0 -10
  158. package/dist/chunks/studio-hekaagev.js.map +0 -18
  159. package/dist/chunks/studio-hrajjyt2.js.map +0 -10
  160. package/dist/chunks/studio-nqq8jk8f.js.map +0 -14
  161. package/dist/chunks/studio-p471gg5n.js.map +0 -14
  162. package/dist/chunks/studio-pv8m0h4a.js.map +0 -98
  163. package/dist/chunks/studio-qhh8r5fz.js.map +0 -13
  164. package/dist/chunks/studio-qrsfh1w7.js.map +0 -41
  165. package/dist/chunks/studio-r8vx7bkz.js.map +0 -235
  166. package/dist/chunks/studio-rgwcpast.js.map +0 -12
  167. package/dist/chunks/studio-s519zc99.js.map +0 -10
  168. package/dist/chunks/studio-sas7mt3k.js.map +0 -10
  169. package/dist/chunks/studio-t5wqwzdh.js.map +0 -10
  170. package/dist/chunks/studio-tqemhphj.js.map +0 -11
  171. package/dist/chunks/studio-tr20m8g8.js.map +0 -9
  172. package/dist/chunks/studio-tvgyw9xw.js.map +0 -14
  173. package/dist/chunks/studio-x0et2z9g.js.map +0 -32
  174. package/dist/chunks/studio-xm3dbxvn.js.map +0 -19
  175. package/dist/chunks/studio-xmvbhg31.js.map +0 -10
  176. package/dist/chunks/studio-ynxwkrzd.js.map +0 -246
  177. package/dist/chunks/studio-yphy4z9m.js.map +0 -10
  178. package/dist/chunks/studio-yz9s88s0.js.map +0 -54
  179. package/dist/chunks/studio-z6nw2ek2.js.map +0 -10
  180. package/dist/chunks/studio-zqv3w24n.js.map +0 -11
  181. package/dist/chunks/tsMode-76kr53q0.js.map +0 -13
  182. package/dist/chunks/ws-client-6shc5rze.js.map +0 -12
@@ -1,76 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../node_modules/monaco-editor/esm/vs/editor/browser/widget/diffEditor/commands.js", "../../../node_modules/monaco-editor/esm/vs/editor/browser/widget/diffEditor/diffEditor.contribution.js", "../../../node_modules/monaco-editor/esm/vs/editor/contrib/anchorSelect/browser/anchorSelect.js", "../../../node_modules/monaco-editor/esm/vs/editor/contrib/caretOperations/browser/moveCaretCommand.js", "../../../node_modules/monaco-editor/esm/vs/editor/contrib/caretOperations/browser/caretOperations.js", "../../../node_modules/monaco-editor/esm/vs/editor/contrib/caretOperations/browser/transpose.js", "../../../node_modules/monaco-editor/esm/vs/editor/contrib/codelens/browser/codelens.js", "../../../node_modules/monaco-editor/esm/vs/editor/contrib/codelens/browser/codeLensCache.js", "../../../node_modules/monaco-editor/esm/vs/editor/contrib/codelens/browser/codelensWidget.js", "../../../node_modules/monaco-editor/esm/vs/editor/contrib/codelens/browser/codelensController.js", "../../../node_modules/monaco-editor/esm/vs/editor/contrib/colorPicker/browser/hoverColorPicker/hoverColorPickerContribution.js", "../../../node_modules/monaco-editor/esm/vs/editor/contrib/colorPicker/browser/standaloneColorPicker/standaloneColorPickerParticipant.js", "../../../node_modules/monaco-editor/esm/vs/editor/contrib/colorPicker/browser/standaloneColorPicker/standaloneColorPickerWidget.js", "../../../node_modules/monaco-editor/esm/vs/editor/contrib/colorPicker/browser/standaloneColorPicker/standaloneColorPickerController.js", "../../../node_modules/monaco-editor/esm/vs/editor/contrib/colorPicker/browser/standaloneColorPicker/standaloneColorPickerActions.js", "../../../node_modules/monaco-editor/esm/vs/editor/contrib/colorPicker/browser/colorPickerContribution.js", "../../../node_modules/monaco-editor/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteContribution.js", "../../../node_modules/monaco-editor/esm/vs/editor/common/services/treeViewsDnd.js", "../../../node_modules/monaco-editor/esm/vs/editor/common/services/treeViewsDndService.js", "../../../node_modules/monaco-editor/esm/vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorController.js", "../../../node_modules/monaco-editor/esm/vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorContribution.js", "../../../node_modules/monaco-editor/esm/vs/editor/contrib/fontZoom/browser/fontZoom.js", "../../../node_modules/monaco-editor/esm/vs/editor/contrib/documentSymbols/browser/documentSymbols.js", "../../../node_modules/monaco-editor/esm/vs/editor/contrib/gotoError/browser/markerSelectionStatus.js", "../../../node_modules/monaco-editor/esm/vs/editor/contrib/gpu/browser/gpuActions.js", "../../../node_modules/monaco-editor/esm/vs/editor/contrib/inlayHints/browser/inlayHintsContribution.js", "../../../node_modules/monaco-editor/esm/vs/editor/contrib/inPlaceReplace/browser/inPlaceReplaceCommand.js", "../../../node_modules/monaco-editor/esm/vs/editor/contrib/inPlaceReplace/browser/inPlaceReplace.js", "../../../node_modules/monaco-editor/esm/vs/editor/contrib/insertFinalNewLine/browser/insertFinalNewLineCommand.js", "../../../node_modules/monaco-editor/esm/vs/editor/contrib/insertFinalNewLine/browser/insertFinalNewLine.js", "../../../node_modules/monaco-editor/esm/vs/editor/contrib/linkedEditing/browser/linkedEditing.js", "../../../node_modules/monaco-editor/esm/vs/editor/contrib/longLinesHelper/browser/longLinesHelper.js", "../../../node_modules/monaco-editor/esm/vs/editor/contrib/middleScroll/browser/middleScrollController.js", "../../../node_modules/monaco-editor/esm/vs/editor/contrib/middleScroll/browser/middleScroll.contribution.js", "../../../node_modules/monaco-editor/esm/vs/editor/contrib/placeholderText/browser/placeholderTextContribution.js", "../../../node_modules/monaco-editor/esm/vs/platform/observable/common/wrapInReloadableClass.js", "../../../node_modules/monaco-editor/esm/vs/editor/contrib/placeholderText/browser/placeholderText.contribution.js", "../../../node_modules/monaco-editor/esm/vs/editor/contrib/sectionHeaders/browser/sectionHeaders.js", "../../../node_modules/monaco-editor/esm/vs/editor/common/services/semanticTokensDto.js", "../../../node_modules/monaco-editor/esm/vs/editor/contrib/semanticTokens/common/getSemanticTokens.js", "../../../node_modules/monaco-editor/esm/vs/editor/contrib/semanticTokens/common/semanticTokensConfig.js", "../../../node_modules/monaco-editor/esm/vs/editor/contrib/semanticTokens/browser/documentSemanticTokens.js", "../../../node_modules/monaco-editor/esm/vs/editor/contrib/semanticTokens/browser/viewportSemanticTokens.js", "../../../node_modules/monaco-editor/esm/vs/platform/action/common/actionCommonCategories.js", "../../../node_modules/monaco-editor/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollActions.js", "../../../node_modules/monaco-editor/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollContribution.js", "../../../node_modules/monaco-editor/esm/vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators.js", "../../../node_modules/monaco-editor/esm/vs/editor/contrib/wordHighlighter/browser/textualHighlightProvider.js", "../../../node_modules/monaco-editor/esm/vs/editor/contrib/wordHighlighter/browser/wordHighlighter.js", "../../../node_modules/monaco-editor/esm/vs/editor/contrib/diffEditorBreadcrumbs/browser/contribution.js", "../../../node_modules/monaco-editor/esm/vs/editor/contrib/floatingMenu/browser/floatingMenu.js", "../../../node_modules/monaco-editor/esm/vs/editor/contrib/floatingMenu/browser/floatingMenu.contribution.js", "../../../node_modules/monaco-editor/esm/vs/editor/standalone/browser/iPadShowKeyboard/iPadShowKeyboard.js", "../../../node_modules/monaco-editor/esm/vs/editor/standalone/browser/inspectTokens/inspectTokens.js", "../../../node_modules/monaco-editor/esm/vs/platform/quickinput/browser/helpQuickAccess.js", "../../../node_modules/monaco-editor/esm/vs/editor/standalone/browser/quickAccess/standaloneHelpQuickAccess.js", "../../../node_modules/monaco-editor/esm/vs/base/common/fuzzyScorer.js", "../../../node_modules/monaco-editor/esm/vs/editor/contrib/quickAccess/browser/gotoSymbolQuickAccess.js", "../../../node_modules/monaco-editor/esm/vs/editor/standalone/browser/quickAccess/standaloneGotoSymbolQuickAccess.js", "../../../node_modules/monaco-editor/esm/vs/base/common/tfIdf.js", "../../../node_modules/monaco-editor/esm/vs/platform/quickinput/browser/pickerQuickAccess.js", "../../../node_modules/monaco-editor/esm/vs/platform/quickinput/browser/commandsQuickAccess.js", "../../../node_modules/monaco-editor/esm/vs/editor/contrib/quickAccess/browser/commandsQuickAccess.js", "../../../node_modules/monaco-editor/esm/vs/editor/standalone/browser/quickAccess/standaloneCommandsQuickAccess.js", "../../../node_modules/monaco-editor/esm/vs/editor/standalone/browser/referenceSearch/standaloneReferenceSearch.js", "../../../node_modules/monaco-editor/esm/vs/editor/standalone/browser/toggleHighContrast/toggleHighContrast.js", "../../../node_modules/monaco-editor/esm/vs/internal/common/workers.js"],
4
- "sourcesContent": [
5
- "import { getActiveElement } from '../../../../base/browser/dom.js';\nimport { Codicon } from '../../../../base/common/codicons.js';\nimport { EditorAction2 } from '../../editorExtensions.js';\nimport { ICodeEditorService } from '../../services/codeEditorService.js';\nimport { DiffEditorWidget } from './diffEditorWidget.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { localize2 } from '../../../../nls.js';\nimport { Action2, MenuId } from '../../../../platform/actions/common/actions.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nimport { ContextKeyExpr } from '../../../../platform/contextkey/common/contextkey.js';\nimport './registrations.contribution.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nclass ToggleCollapseUnchangedRegions extends Action2 {\n constructor() {\n super({\n id: 'diffEditor.toggleCollapseUnchangedRegions',\n title: localize2(101, 'Toggle Collapse Unchanged Regions'),\n icon: Codicon.map,\n toggled: ContextKeyExpr.has('config.diffEditor.hideUnchangedRegions.enabled'),\n precondition: ContextKeyExpr.has('isInDiffEditor'),\n menu: {\n when: ContextKeyExpr.has('isInDiffEditor'),\n id: MenuId.EditorTitle,\n order: 22,\n group: 'navigation',\n },\n });\n }\n run(accessor, ...args) {\n const configurationService = accessor.get(IConfigurationService);\n const newValue = !configurationService.getValue('diffEditor.hideUnchangedRegions.enabled');\n configurationService.updateValue('diffEditor.hideUnchangedRegions.enabled', newValue);\n }\n}\nclass ToggleShowMovedCodeBlocks extends Action2 {\n constructor() {\n super({\n id: 'diffEditor.toggleShowMovedCodeBlocks',\n title: localize2(102, 'Toggle Show Moved Code Blocks'),\n precondition: ContextKeyExpr.has('isInDiffEditor'),\n });\n }\n run(accessor, ...args) {\n const configurationService = accessor.get(IConfigurationService);\n const newValue = !configurationService.getValue('diffEditor.experimental.showMoves');\n configurationService.updateValue('diffEditor.experimental.showMoves', newValue);\n }\n}\nclass ToggleUseInlineViewWhenSpaceIsLimited extends Action2 {\n constructor() {\n super({\n id: 'diffEditor.toggleUseInlineViewWhenSpaceIsLimited',\n title: localize2(103, 'Toggle Use Inline View When Space Is Limited'),\n precondition: ContextKeyExpr.has('isInDiffEditor'),\n });\n }\n run(accessor, ...args) {\n const configurationService = accessor.get(IConfigurationService);\n const newValue = !configurationService.getValue('diffEditor.useInlineViewWhenSpaceIsLimited');\n configurationService.updateValue('diffEditor.useInlineViewWhenSpaceIsLimited', newValue);\n }\n}\nconst diffEditorCategory = localize2(104, \"Diff Editor\");\nclass SwitchSide extends EditorAction2 {\n constructor() {\n super({\n id: 'diffEditor.switchSide',\n title: localize2(105, 'Switch Side'),\n icon: Codicon.arrowSwap,\n precondition: ContextKeyExpr.has('isInDiffEditor'),\n f1: true,\n category: diffEditorCategory,\n });\n }\n runEditorCommand(accessor, editor, arg) {\n const diffEditor = findFocusedDiffEditor(accessor);\n if (diffEditor instanceof DiffEditorWidget) {\n if (arg && arg.dryRun) {\n return { destinationSelection: diffEditor.mapToOtherSide().destinationSelection };\n }\n else {\n diffEditor.switchSide();\n }\n }\n return undefined;\n }\n}\nclass ExitCompareMove extends EditorAction2 {\n constructor() {\n super({\n id: 'diffEditor.exitCompareMove',\n title: localize2(106, 'Exit Compare Move'),\n icon: Codicon.close,\n precondition: EditorContextKeys.comparingMovedCode,\n f1: false,\n category: diffEditorCategory,\n keybinding: {\n weight: 10000,\n primary: 9 /* KeyCode.Escape */,\n }\n });\n }\n runEditorCommand(accessor, editor, ...args) {\n const diffEditor = findFocusedDiffEditor(accessor);\n if (diffEditor instanceof DiffEditorWidget) {\n diffEditor.exitCompareMove();\n }\n }\n}\nclass CollapseAllUnchangedRegions extends EditorAction2 {\n constructor() {\n super({\n id: 'diffEditor.collapseAllUnchangedRegions',\n title: localize2(107, 'Collapse All Unchanged Regions'),\n icon: Codicon.fold,\n precondition: ContextKeyExpr.has('isInDiffEditor'),\n f1: true,\n category: diffEditorCategory,\n });\n }\n runEditorCommand(accessor, editor, ...args) {\n const diffEditor = findFocusedDiffEditor(accessor);\n if (diffEditor instanceof DiffEditorWidget) {\n diffEditor.collapseAllUnchangedRegions();\n }\n }\n}\nclass ShowAllUnchangedRegions extends EditorAction2 {\n constructor() {\n super({\n id: 'diffEditor.showAllUnchangedRegions',\n title: localize2(108, 'Show All Unchanged Regions'),\n icon: Codicon.unfold,\n precondition: ContextKeyExpr.has('isInDiffEditor'),\n f1: true,\n category: diffEditorCategory,\n });\n }\n runEditorCommand(accessor, editor, ...args) {\n const diffEditor = findFocusedDiffEditor(accessor);\n if (diffEditor instanceof DiffEditorWidget) {\n diffEditor.showAllUnchangedRegions();\n }\n }\n}\nclass RevertHunkOrSelection extends Action2 {\n constructor() {\n super({\n id: 'diffEditor.revert',\n title: localize2(109, 'Revert'),\n f1: true,\n category: diffEditorCategory,\n precondition: ContextKeyExpr.has('isInDiffEditor'),\n });\n }\n run(accessor, arg) {\n return arg ? this.runViaToolbarContext(accessor, arg) : this.runViaCursorOrSelection(accessor);\n }\n runViaCursorOrSelection(accessor) {\n const diffEditor = findFocusedDiffEditor(accessor);\n if (diffEditor instanceof DiffEditorWidget) {\n diffEditor.revertFocusedRangeMappings();\n }\n return undefined;\n }\n runViaToolbarContext(accessor, arg) {\n const diffEditor = findDiffEditor(accessor, arg.originalUri, arg.modifiedUri);\n if (diffEditor instanceof DiffEditorWidget) {\n diffEditor.revertRangeMappings(arg.mapping.innerChanges ?? []);\n }\n return undefined;\n }\n}\nconst accessibleDiffViewerCategory = localize2(110, \"Accessible Diff Viewer\");\nclass AccessibleDiffViewerNext extends Action2 {\n static { this.id = 'editor.action.accessibleDiffViewer.next'; }\n constructor() {\n super({\n id: AccessibleDiffViewerNext.id,\n title: localize2(111, 'Go to Next Difference'),\n category: accessibleDiffViewerCategory,\n precondition: ContextKeyExpr.has('isInDiffEditor'),\n keybinding: {\n primary: 65 /* KeyCode.F7 */,\n weight: 100 /* KeybindingWeight.EditorContrib */\n },\n f1: true,\n });\n }\n run(accessor) {\n const diffEditor = findFocusedDiffEditor(accessor);\n diffEditor?.accessibleDiffViewerNext();\n }\n}\nclass AccessibleDiffViewerPrev extends Action2 {\n static { this.id = 'editor.action.accessibleDiffViewer.prev'; }\n constructor() {\n super({\n id: AccessibleDiffViewerPrev.id,\n title: localize2(112, 'Go to Previous Difference'),\n category: accessibleDiffViewerCategory,\n precondition: ContextKeyExpr.has('isInDiffEditor'),\n keybinding: {\n primary: 1024 /* KeyMod.Shift */ | 65 /* KeyCode.F7 */,\n weight: 100 /* KeybindingWeight.EditorContrib */\n },\n f1: true,\n });\n }\n run(accessor) {\n const diffEditor = findFocusedDiffEditor(accessor);\n diffEditor?.accessibleDiffViewerPrev();\n }\n}\nfunction findDiffEditor(accessor, originalUri, modifiedUri) {\n const codeEditorService = accessor.get(ICodeEditorService);\n const diffEditors = codeEditorService.listDiffEditors();\n return diffEditors.find(diffEditor => {\n const modified = diffEditor.getModifiedEditor();\n const original = diffEditor.getOriginalEditor();\n return modified && modified.getModel()?.uri.toString() === modifiedUri.toString()\n && original && original.getModel()?.uri.toString() === originalUri.toString();\n }) || null;\n}\nfunction findFocusedDiffEditor(accessor) {\n const codeEditorService = accessor.get(ICodeEditorService);\n const diffEditors = codeEditorService.listDiffEditors();\n const activeElement = getActiveElement();\n if (activeElement) {\n for (const d of diffEditors) {\n const container = d.getContainerDomNode();\n if (container.contains(activeElement)) {\n return d;\n }\n }\n }\n return null;\n}\n\nexport { AccessibleDiffViewerNext, AccessibleDiffViewerPrev, CollapseAllUnchangedRegions, ExitCompareMove, RevertHunkOrSelection, ShowAllUnchangedRegions, SwitchSide, ToggleCollapseUnchangedRegions, ToggleShowMovedCodeBlocks, ToggleUseInlineViewWhenSpaceIsLimited, findDiffEditor, findFocusedDiffEditor };\n",
6
- "import { Codicon } from '../../../../base/common/codicons.js';\nimport { ToggleCollapseUnchangedRegions, ToggleShowMovedCodeBlocks, ToggleUseInlineViewWhenSpaceIsLimited, RevertHunkOrSelection, SwitchSide, ExitCompareMove, CollapseAllUnchangedRegions, ShowAllUnchangedRegions, AccessibleDiffViewerNext, AccessibleDiffViewerPrev } from './commands.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { localize } from '../../../../nls.js';\nimport { registerAction2, MenuRegistry, MenuId } from '../../../../platform/actions/common/actions.js';\nimport { CommandsRegistry } from '../../../../platform/commands/common/commands.js';\nimport { ContextKeyExpr, ContextKeyEqualsExpr } from '../../../../platform/contextkey/common/contextkey.js';\nimport './registrations.contribution.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nregisterAction2(ToggleCollapseUnchangedRegions);\nregisterAction2(ToggleShowMovedCodeBlocks);\nregisterAction2(ToggleUseInlineViewWhenSpaceIsLimited);\nMenuRegistry.appendMenuItem(MenuId.EditorTitle, {\n command: {\n id: new ToggleUseInlineViewWhenSpaceIsLimited().desc.id,\n title: localize(135, \"Use Inline View When Space Is Limited\"),\n toggled: ContextKeyExpr.has('config.diffEditor.useInlineViewWhenSpaceIsLimited'),\n precondition: ContextKeyExpr.has('isInDiffEditor'),\n },\n order: 11,\n group: '1_diff',\n when: ContextKeyExpr.and(EditorContextKeys.diffEditorRenderSideBySideInlineBreakpointReached, ContextKeyExpr.has('isInDiffEditor')),\n});\nMenuRegistry.appendMenuItem(MenuId.EditorTitle, {\n command: {\n id: new ToggleShowMovedCodeBlocks().desc.id,\n title: localize(136, \"Show Moved Code Blocks\"),\n icon: Codicon.move,\n toggled: ContextKeyEqualsExpr.create('config.diffEditor.experimental.showMoves', true),\n precondition: ContextKeyExpr.has('isInDiffEditor'),\n },\n order: 10,\n group: '1_diff',\n when: ContextKeyExpr.has('isInDiffEditor'),\n});\nregisterAction2(RevertHunkOrSelection);\nfor (const ctx of [\n { icon: Codicon.arrowRight, key: EditorContextKeys.diffEditorInlineMode.toNegated() },\n { icon: Codicon.discard, key: EditorContextKeys.diffEditorInlineMode }\n]) {\n MenuRegistry.appendMenuItem(MenuId.DiffEditorHunkToolbar, {\n command: {\n id: new RevertHunkOrSelection().desc.id,\n title: localize(137, \"Revert Block\"),\n icon: ctx.icon,\n },\n when: ContextKeyExpr.and(EditorContextKeys.diffEditorModifiedWritable, ctx.key),\n order: 5,\n group: 'primary',\n });\n MenuRegistry.appendMenuItem(MenuId.DiffEditorSelectionToolbar, {\n command: {\n id: new RevertHunkOrSelection().desc.id,\n title: localize(138, \"Revert Selection\"),\n icon: ctx.icon,\n },\n when: ContextKeyExpr.and(EditorContextKeys.diffEditorModifiedWritable, ctx.key),\n order: 5,\n group: 'primary',\n });\n}\nregisterAction2(SwitchSide);\nregisterAction2(ExitCompareMove);\nregisterAction2(CollapseAllUnchangedRegions);\nregisterAction2(ShowAllUnchangedRegions);\nMenuRegistry.appendMenuItem(MenuId.EditorTitle, {\n command: {\n id: AccessibleDiffViewerNext.id,\n title: localize(139, \"Open Accessible Diff Viewer\"),\n precondition: ContextKeyExpr.has('isInDiffEditor'),\n },\n order: 10,\n group: '2_diff',\n when: ContextKeyExpr.and(EditorContextKeys.accessibleDiffViewerVisible.negate(), ContextKeyExpr.has('isInDiffEditor')),\n});\nCommandsRegistry.registerCommandAlias('editor.action.diffReview.next', AccessibleDiffViewerNext.id);\nregisterAction2(AccessibleDiffViewerNext);\nCommandsRegistry.registerCommandAlias('editor.action.diffReview.prev', AccessibleDiffViewerPrev.id);\nregisterAction2(AccessibleDiffViewerPrev);\n",
7
- "import { alert } from '../../../../base/browser/ui/aria/aria.js';\nimport { MarkdownString } from '../../../../base/common/htmlContent.js';\nimport { KeyChord } from '../../../../base/common/keyCodes.js';\nimport './anchorSelect.css';\nimport { registerEditorContribution, registerEditorAction, EditorAction } from '../../../browser/editorExtensions.js';\nimport { Selection } from '../../../common/core/selection.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { localize, localize2 } from '../../../../nls.js';\nimport { RawContextKey, IContextKeyService } from '../../../../platform/contextkey/common/contextkey.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar SelectionAnchorController_1;\nconst SelectionAnchorSet = new RawContextKey('selectionAnchorSet', false);\nlet SelectionAnchorController = class SelectionAnchorController {\n static { SelectionAnchorController_1 = this; }\n static { this.ID = 'editor.contrib.selectionAnchorController'; }\n static get(editor) {\n return editor.getContribution(SelectionAnchorController_1.ID);\n }\n constructor(editor, contextKeyService) {\n this.editor = editor;\n this.selectionAnchorSetContextKey = SelectionAnchorSet.bindTo(contextKeyService);\n this.modelChangeListener = editor.onDidChangeModel(() => this.selectionAnchorSetContextKey.reset());\n }\n setSelectionAnchor() {\n if (this.editor.hasModel()) {\n const position = this.editor.getPosition();\n this.editor.changeDecorations((accessor) => {\n if (this.decorationId) {\n accessor.removeDecoration(this.decorationId);\n }\n this.decorationId = accessor.addDecoration(Selection.fromPositions(position, position), {\n description: 'selection-anchor',\n stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */,\n hoverMessage: new MarkdownString().appendText(localize(834, \"Selection Anchor\")),\n className: 'selection-anchor'\n });\n });\n this.selectionAnchorSetContextKey.set(!!this.decorationId);\n alert(localize(835, \"Anchor set at {0}:{1}\", position.lineNumber, position.column));\n }\n }\n goToSelectionAnchor() {\n if (this.editor.hasModel() && this.decorationId) {\n const anchorPosition = this.editor.getModel().getDecorationRange(this.decorationId);\n if (anchorPosition) {\n this.editor.setPosition(anchorPosition.getStartPosition());\n }\n }\n }\n selectFromAnchorToCursor() {\n if (this.editor.hasModel() && this.decorationId) {\n const start = this.editor.getModel().getDecorationRange(this.decorationId);\n if (start) {\n const end = this.editor.getPosition();\n this.editor.setSelection(Selection.fromPositions(start.getStartPosition(), end));\n this.cancelSelectionAnchor();\n }\n }\n }\n cancelSelectionAnchor() {\n if (this.decorationId) {\n const decorationId = this.decorationId;\n this.editor.changeDecorations((accessor) => {\n accessor.removeDecoration(decorationId);\n this.decorationId = undefined;\n });\n this.selectionAnchorSetContextKey.set(false);\n }\n }\n dispose() {\n this.cancelSelectionAnchor();\n this.modelChangeListener.dispose();\n }\n};\nSelectionAnchorController = SelectionAnchorController_1 = __decorate([\n __param(1, IContextKeyService)\n], SelectionAnchorController);\nclass SetSelectionAnchor extends EditorAction {\n constructor() {\n super({\n id: 'editor.action.setSelectionAnchor',\n label: localize2(836, \"Set Selection Anchor\"),\n precondition: undefined,\n kbOpts: {\n kbExpr: EditorContextKeys.editorTextFocus,\n primary: KeyChord(2048 /* KeyMod.CtrlCmd */ | 41 /* KeyCode.KeyK */, 2048 /* KeyMod.CtrlCmd */ | 32 /* KeyCode.KeyB */),\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n async run(_accessor, editor) {\n SelectionAnchorController.get(editor)?.setSelectionAnchor();\n }\n}\nclass GoToSelectionAnchor extends EditorAction {\n constructor() {\n super({\n id: 'editor.action.goToSelectionAnchor',\n label: localize2(837, \"Go to Selection Anchor\"),\n precondition: SelectionAnchorSet,\n });\n }\n async run(_accessor, editor) {\n SelectionAnchorController.get(editor)?.goToSelectionAnchor();\n }\n}\nclass SelectFromAnchorToCursor extends EditorAction {\n constructor() {\n super({\n id: 'editor.action.selectFromAnchorToCursor',\n label: localize2(838, \"Select from Anchor to Cursor\"),\n precondition: SelectionAnchorSet,\n kbOpts: {\n kbExpr: EditorContextKeys.editorTextFocus,\n primary: KeyChord(2048 /* KeyMod.CtrlCmd */ | 41 /* KeyCode.KeyK */, 2048 /* KeyMod.CtrlCmd */ | 41 /* KeyCode.KeyK */),\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n async run(_accessor, editor) {\n SelectionAnchorController.get(editor)?.selectFromAnchorToCursor();\n }\n}\nclass CancelSelectionAnchor extends EditorAction {\n constructor() {\n super({\n id: 'editor.action.cancelSelectionAnchor',\n label: localize2(839, \"Cancel Selection Anchor\"),\n precondition: SelectionAnchorSet,\n kbOpts: {\n kbExpr: EditorContextKeys.editorTextFocus,\n primary: 9 /* KeyCode.Escape */,\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n async run(_accessor, editor) {\n SelectionAnchorController.get(editor)?.cancelSelectionAnchor();\n }\n}\nregisterEditorContribution(SelectionAnchorController.ID, SelectionAnchorController, 4 /* EditorContributionInstantiation.Lazy */);\nregisterEditorAction(SetSelectionAnchor);\nregisterEditorAction(GoToSelectionAnchor);\nregisterEditorAction(SelectFromAnchorToCursor);\nregisterEditorAction(CancelSelectionAnchor);\n\nexport { SelectionAnchorSet };\n",
8
- "import { Range } from '../../../common/core/range.js';\nimport { Selection } from '../../../common/core/selection.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nclass MoveCaretCommand {\n constructor(selection, isMovingLeft) {\n this._selection = selection;\n this._isMovingLeft = isMovingLeft;\n }\n getEditOperations(model, builder) {\n if (this._selection.startLineNumber !== this._selection.endLineNumber || this._selection.isEmpty()) {\n return;\n }\n const lineNumber = this._selection.startLineNumber;\n const startColumn = this._selection.startColumn;\n const endColumn = this._selection.endColumn;\n if (this._isMovingLeft && startColumn === 1) {\n return;\n }\n if (!this._isMovingLeft && endColumn === model.getLineMaxColumn(lineNumber)) {\n return;\n }\n if (this._isMovingLeft) {\n const rangeBefore = new Range(lineNumber, startColumn - 1, lineNumber, startColumn);\n const charBefore = model.getValueInRange(rangeBefore);\n builder.addEditOperation(rangeBefore, null);\n builder.addEditOperation(new Range(lineNumber, endColumn, lineNumber, endColumn), charBefore);\n }\n else {\n const rangeAfter = new Range(lineNumber, endColumn, lineNumber, endColumn + 1);\n const charAfter = model.getValueInRange(rangeAfter);\n builder.addEditOperation(rangeAfter, null);\n builder.addEditOperation(new Range(lineNumber, startColumn, lineNumber, startColumn), charAfter);\n }\n }\n computeCursorState(model, helper) {\n if (this._isMovingLeft) {\n return new Selection(this._selection.startLineNumber, this._selection.startColumn - 1, this._selection.endLineNumber, this._selection.endColumn - 1);\n }\n else {\n return new Selection(this._selection.startLineNumber, this._selection.startColumn + 1, this._selection.endLineNumber, this._selection.endColumn + 1);\n }\n }\n}\n\nexport { MoveCaretCommand };\n",
9
- "import { registerEditorAction, EditorAction } from '../../../browser/editorExtensions.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { MoveCaretCommand } from './moveCaretCommand.js';\nimport { localize2 } from '../../../../nls.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nclass MoveCaretAction extends EditorAction {\n constructor(left, opts) {\n super(opts);\n this.left = left;\n }\n run(accessor, editor) {\n if (!editor.hasModel()) {\n return;\n }\n const commands = [];\n const selections = editor.getSelections();\n for (const selection of selections) {\n commands.push(new MoveCaretCommand(selection, this.left));\n }\n editor.pushUndoStop();\n editor.executeCommands(this.id, commands);\n editor.pushUndoStop();\n }\n}\nclass MoveCaretLeftAction extends MoveCaretAction {\n constructor() {\n super(true, {\n id: 'editor.action.moveCarretLeftAction',\n label: localize2(846, \"Move Selected Text Left\"),\n precondition: EditorContextKeys.writable\n });\n }\n}\nclass MoveCaretRightAction extends MoveCaretAction {\n constructor() {\n super(false, {\n id: 'editor.action.moveCarretRightAction',\n label: localize2(847, \"Move Selected Text Right\"),\n precondition: EditorContextKeys.writable\n });\n }\n}\nregisterEditorAction(MoveCaretLeftAction);\nregisterEditorAction(MoveCaretRightAction);\n",
10
- "import { registerEditorAction, EditorAction } from '../../../browser/editorExtensions.js';\nimport { ReplaceCommand } from '../../../common/commands/replaceCommand.js';\nimport { MoveOperations } from '../../../common/cursor/cursorMoveOperations.js';\nimport { Range } from '../../../common/core/range.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { localize2 } from '../../../../nls.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nclass TransposeLettersAction extends EditorAction {\n constructor() {\n super({\n id: 'editor.action.transposeLetters',\n label: localize2(848, \"Transpose Letters\"),\n precondition: EditorContextKeys.writable,\n kbOpts: {\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 0,\n mac: {\n primary: 256 /* KeyMod.WinCtrl */ | 50 /* KeyCode.KeyT */\n },\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n run(accessor, editor) {\n if (!editor.hasModel()) {\n return;\n }\n const model = editor.getModel();\n const commands = [];\n const selections = editor.getSelections();\n for (const selection of selections) {\n if (!selection.isEmpty()) {\n continue;\n }\n const lineNumber = selection.startLineNumber;\n const column = selection.startColumn;\n const lastColumn = model.getLineMaxColumn(lineNumber);\n if (lineNumber === 1 && (column === 1 || (column === 2 && lastColumn === 2))) {\n // at beginning of file, nothing to do\n continue;\n }\n // handle special case: when at end of line, transpose left two chars\n // otherwise, transpose left and right chars\n const endPosition = (column === lastColumn) ?\n selection.getPosition() :\n MoveOperations.rightPosition(model, selection.getPosition().lineNumber, selection.getPosition().column);\n const middlePosition = MoveOperations.leftPosition(model, endPosition);\n const beginPosition = MoveOperations.leftPosition(model, middlePosition);\n const leftChar = model.getValueInRange(Range.fromPositions(beginPosition, middlePosition));\n const rightChar = model.getValueInRange(Range.fromPositions(middlePosition, endPosition));\n const replaceRange = Range.fromPositions(beginPosition, endPosition);\n commands.push(new ReplaceCommand(replaceRange, rightChar + leftChar));\n }\n if (commands.length > 0) {\n editor.pushUndoStop();\n editor.executeCommands(this.id, commands);\n editor.pushUndoStop();\n }\n }\n}\nregisterEditorAction(TransposeLettersAction);\n",
11
- "import { CancellationToken } from '../../../../base/common/cancellation.js';\nimport { illegalArgument, onUnexpectedExternalError } from '../../../../base/common/errors.js';\nimport { isDisposable, DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { assertType } from '../../../../base/common/types.js';\nimport { URI } from '../../../../base/common/uri.js';\nimport { IModelService } from '../../../common/services/model.js';\nimport { CommandsRegistry } from '../../../../platform/commands/common/commands.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nclass CodeLensModel {\n constructor() {\n this.lenses = [];\n }\n static { this.Empty = new CodeLensModel(); }\n dispose() {\n this._store?.dispose();\n }\n get isDisposed() {\n return this._store?.isDisposed ?? false;\n }\n add(list, provider) {\n if (isDisposable(list)) {\n this._store ??= new DisposableStore();\n this._store.add(list);\n }\n for (const symbol of list.lenses) {\n this.lenses.push({ symbol, provider });\n }\n }\n}\nasync function getCodeLensModel(registry, model, token) {\n const provider = registry.ordered(model);\n const providerRanks = new Map();\n const result = new CodeLensModel();\n const promises = provider.map(async (provider, i) => {\n providerRanks.set(provider, i);\n try {\n const list = await Promise.resolve(provider.provideCodeLenses(model, token));\n if (list) {\n result.add(list, provider);\n }\n }\n catch (err) {\n onUnexpectedExternalError(err);\n }\n });\n await Promise.all(promises);\n if (token.isCancellationRequested) {\n result.dispose();\n return CodeLensModel.Empty;\n }\n result.lenses = result.lenses.sort((a, b) => {\n // sort by lineNumber, provider-rank, and column\n if (a.symbol.range.startLineNumber < b.symbol.range.startLineNumber) {\n return -1;\n }\n else if (a.symbol.range.startLineNumber > b.symbol.range.startLineNumber) {\n return 1;\n }\n else if ((providerRanks.get(a.provider)) < (providerRanks.get(b.provider))) {\n return -1;\n }\n else if ((providerRanks.get(a.provider)) > (providerRanks.get(b.provider))) {\n return 1;\n }\n else if (a.symbol.range.startColumn < b.symbol.range.startColumn) {\n return -1;\n }\n else if (a.symbol.range.startColumn > b.symbol.range.startColumn) {\n return 1;\n }\n else {\n return 0;\n }\n });\n return result;\n}\nCommandsRegistry.registerCommand('_executeCodeLensProvider', function (accessor, ...args) {\n let [uri, itemResolveCount] = args;\n assertType(URI.isUri(uri));\n assertType(typeof itemResolveCount === 'number' || !itemResolveCount);\n const { codeLensProvider } = accessor.get(ILanguageFeaturesService);\n const model = accessor.get(IModelService).getModel(uri);\n if (!model) {\n throw illegalArgument();\n }\n const result = [];\n const disposables = new DisposableStore();\n return getCodeLensModel(codeLensProvider, model, CancellationToken.None).then(value => {\n disposables.add(value);\n const resolve = [];\n for (const item of value.lenses) {\n if (itemResolveCount === undefined || itemResolveCount === null || Boolean(item.symbol.command)) {\n result.push(item.symbol);\n }\n else if (itemResolveCount-- > 0 && item.provider.resolveCodeLens) {\n resolve.push(Promise.resolve(item.provider.resolveCodeLens(model, item.symbol, CancellationToken.None)).then(symbol => result.push(symbol || item.symbol)));\n }\n }\n return Promise.all(resolve);\n }).then(() => {\n return result;\n }).finally(() => {\n // make sure to return results, then (on next tick)\n // dispose the results\n setTimeout(() => disposables.dispose(), 100);\n });\n});\n\nexport { CodeLensModel, getCodeLensModel };\n",
12
- "import { Event } from '../../../../base/common/event.js';\nimport { LRUCache } from '../../../../base/common/map.js';\nimport { Range } from '../../../common/core/range.js';\nimport { CodeLensModel } from './codelens.js';\nimport { registerSingleton } from '../../../../platform/instantiation/common/extensions.js';\nimport { createDecorator } from '../../../../platform/instantiation/common/instantiation.js';\nimport { IStorageService, WillSaveStateReason } from '../../../../platform/storage/common/storage.js';\nimport { mainWindow } from '../../../../base/browser/window.js';\nimport { runWhenWindowIdle } from '../../../../base/browser/dom.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nconst ICodeLensCache = createDecorator('ICodeLensCache');\nclass CacheItem {\n constructor(lineCount, data) {\n this.lineCount = lineCount;\n this.data = data;\n }\n}\nlet CodeLensCache = class CodeLensCache {\n constructor(storageService) {\n this._fakeProvider = new class {\n provideCodeLenses() {\n throw new Error('not supported');\n }\n };\n this._cache = new LRUCache(20, 0.75);\n // remove old data\n const oldkey = 'codelens/cache';\n runWhenWindowIdle(mainWindow, () => storageService.remove(oldkey, 1 /* StorageScope.WORKSPACE */));\n // restore lens data on start\n const key = 'codelens/cache2';\n const raw = storageService.get(key, 1 /* StorageScope.WORKSPACE */, '{}');\n this._deserialize(raw);\n // store lens data on shutdown\n const onWillSaveStateBecauseOfShutdown = Event.filter(storageService.onWillSaveState, e => e.reason === WillSaveStateReason.SHUTDOWN);\n Event.once(onWillSaveStateBecauseOfShutdown)(e => {\n storageService.store(key, this._serialize(), 1 /* StorageScope.WORKSPACE */, 1 /* StorageTarget.MACHINE */);\n });\n }\n put(model, data) {\n // create a copy of the model that is without command-ids\n // but with comand-labels\n const copyItems = data.lenses.map((item) => {\n return {\n range: item.symbol.range,\n command: item.symbol.command && { id: '', title: item.symbol.command?.title },\n };\n });\n const copyModel = new CodeLensModel();\n copyModel.add({ lenses: copyItems }, this._fakeProvider);\n const item = new CacheItem(model.getLineCount(), copyModel);\n this._cache.set(model.uri.toString(), item);\n }\n get(model) {\n const item = this._cache.get(model.uri.toString());\n return item && item.lineCount === model.getLineCount() ? item.data : undefined;\n }\n delete(model) {\n this._cache.delete(model.uri.toString());\n }\n // --- persistence\n _serialize() {\n const data = Object.create(null);\n for (const [key, value] of this._cache) {\n const lines = new Set();\n for (const d of value.data.lenses) {\n lines.add(d.symbol.range.startLineNumber);\n }\n data[key] = {\n lineCount: value.lineCount,\n lines: [...lines.values()]\n };\n }\n return JSON.stringify(data);\n }\n _deserialize(raw) {\n try {\n const data = JSON.parse(raw);\n for (const key in data) {\n const element = data[key];\n const lenses = [];\n for (const line of element.lines) {\n lenses.push({ range: new Range(line, 1, line, 11) });\n }\n const model = new CodeLensModel();\n model.add({ lenses }, this._fakeProvider);\n this._cache.set(key, new CacheItem(element.lineCount, model));\n }\n }\n catch {\n // ignore...\n }\n }\n};\nCodeLensCache = __decorate([\n __param(0, IStorageService)\n], CodeLensCache);\nregisterSingleton(ICodeLensCache, CodeLensCache, 1 /* InstantiationType.Delayed */);\n\nexport { CodeLensCache, ICodeLensCache };\n",
13
- "import { $, reset } from '../../../../base/browser/dom.js';\nimport { renderLabelWithIcons } from '../../../../base/browser/ui/iconLabel/iconLabels.js';\nimport './codelensWidget.css';\nimport { Range } from '../../../common/core/range.js';\nimport { ModelDecorationOptions } from '../../../common/model/textModel.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nclass CodeLensViewZone {\n constructor(afterLineNumber, heightInPx, onHeight) {\n /**\n * We want that this view zone, which reserves space for a code lens appears\n * as close as possible to the next line, so we use a very large value here.\n */\n this.afterColumn = 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */;\n this.afterLineNumber = afterLineNumber;\n this.heightInPx = heightInPx;\n this._onHeight = onHeight;\n this.suppressMouseDown = true;\n this.domNode = document.createElement('div');\n }\n onComputedHeight(height) {\n if (this._lastHeight === undefined) {\n this._lastHeight = height;\n }\n else if (this._lastHeight !== height) {\n this._lastHeight = height;\n this._onHeight();\n }\n }\n isVisible() {\n return this._lastHeight !== 0\n && this.domNode.hasAttribute('monaco-visible-view-zone');\n }\n}\nclass CodeLensContentWidget {\n static { this._idPool = 0; }\n constructor(editor, line) {\n // Editor.IContentWidget.allowEditorOverflow\n this.allowEditorOverflow = false;\n this.suppressMouseDown = true;\n this._commands = new Map();\n this._isEmpty = true;\n this._editor = editor;\n this._id = `codelens.widget-${(CodeLensContentWidget._idPool++)}`;\n this.updatePosition(line);\n this._domNode = document.createElement('span');\n this._domNode.className = `codelens-decoration`;\n }\n withCommands(lenses, animate) {\n this._commands.clear();\n const children = [];\n let hasSymbol = false;\n for (let i = 0; i < lenses.length; i++) {\n const lens = lenses[i];\n if (!lens) {\n continue;\n }\n hasSymbol = true;\n if (lens.command) {\n const title = renderLabelWithIcons(lens.command.title.trim());\n if (lens.command.id) {\n const id = `c${(CodeLensContentWidget._idPool++)}`;\n children.push($('a', { id, title: lens.command.tooltip, role: 'button' }, ...title));\n this._commands.set(id, lens.command);\n }\n else {\n children.push($('span', { title: lens.command.tooltip }, ...title));\n }\n if (i + 1 < lenses.length) {\n children.push($('span', undefined, '\\u00a0|\\u00a0'));\n }\n }\n }\n if (!hasSymbol) {\n // symbols but no commands\n reset(this._domNode, $('span', undefined, 'no commands'));\n }\n else {\n // symbols and commands\n reset(this._domNode, ...children);\n if (this._isEmpty && animate) {\n this._domNode.classList.add('fadein');\n }\n this._isEmpty = false;\n }\n }\n getCommand(link) {\n return link.parentElement === this._domNode\n ? this._commands.get(link.id)\n : undefined;\n }\n getId() {\n return this._id;\n }\n getDomNode() {\n return this._domNode;\n }\n updatePosition(line) {\n const column = this._editor.getModel().getLineFirstNonWhitespaceColumn(line);\n this._widgetPosition = {\n position: { lineNumber: line, column: column },\n preference: [1 /* ContentWidgetPositionPreference.ABOVE */]\n };\n }\n getPosition() {\n return this._widgetPosition || null;\n }\n}\nclass CodeLensHelper {\n constructor() {\n this._removeDecorations = [];\n this._addDecorations = [];\n this._addDecorationsCallbacks = [];\n }\n addDecoration(decoration, callback) {\n this._addDecorations.push(decoration);\n this._addDecorationsCallbacks.push(callback);\n }\n removeDecoration(decorationId) {\n this._removeDecorations.push(decorationId);\n }\n commit(changeAccessor) {\n const resultingDecorations = changeAccessor.deltaDecorations(this._removeDecorations, this._addDecorations);\n for (let i = 0, len = resultingDecorations.length; i < len; i++) {\n this._addDecorationsCallbacks[i](resultingDecorations[i]);\n }\n }\n}\nconst codeLensDecorationOptions = ModelDecorationOptions.register({\n collapseOnReplaceEdit: true,\n description: 'codelens'\n});\nclass CodeLensWidget {\n constructor(data, editor, helper, viewZoneChangeAccessor, heightInPx, updateCallback) {\n this._isDisposed = false;\n this._editor = editor;\n this._data = data;\n // create combined range, track all ranges with decorations,\n // check if there is already something to render\n this._decorationIds = [];\n let range;\n const lenses = [];\n this._data.forEach((codeLensData, i) => {\n if (codeLensData.symbol.command) {\n lenses.push(codeLensData.symbol);\n }\n helper.addDecoration({\n range: codeLensData.symbol.range,\n options: codeLensDecorationOptions\n }, id => this._decorationIds[i] = id);\n // the range contains all lenses on this line\n if (!range) {\n range = Range.lift(codeLensData.symbol.range);\n }\n else {\n range = Range.plusRange(range, codeLensData.symbol.range);\n }\n });\n this._viewZone = new CodeLensViewZone(range.startLineNumber - 1, heightInPx, updateCallback);\n this._viewZoneId = viewZoneChangeAccessor.addZone(this._viewZone);\n if (lenses.length > 0) {\n this._createContentWidgetIfNecessary();\n this._contentWidget.withCommands(lenses, false);\n }\n }\n _createContentWidgetIfNecessary() {\n if (!this._contentWidget) {\n this._contentWidget = new CodeLensContentWidget(this._editor, this._viewZone.afterLineNumber + 1);\n this._editor.addContentWidget(this._contentWidget);\n }\n else {\n this._editor.layoutContentWidget(this._contentWidget);\n }\n }\n dispose(helper, viewZoneChangeAccessor) {\n this._decorationIds.forEach(helper.removeDecoration, helper);\n this._decorationIds = [];\n viewZoneChangeAccessor?.removeZone(this._viewZoneId);\n if (this._contentWidget) {\n this._editor.removeContentWidget(this._contentWidget);\n this._contentWidget = undefined;\n }\n this._isDisposed = true;\n }\n isDisposed() {\n return this._isDisposed;\n }\n isValid() {\n return this._decorationIds.some((id, i) => {\n const range = this._editor.getModel().getDecorationRange(id);\n const symbol = this._data[i].symbol;\n return !!(range && Range.isEmpty(symbol.range) === range.isEmpty());\n });\n }\n updateCodeLensSymbols(data, helper) {\n this._decorationIds.forEach(helper.removeDecoration, helper);\n this._decorationIds = [];\n this._data = data;\n this._data.forEach((codeLensData, i) => {\n helper.addDecoration({\n range: codeLensData.symbol.range,\n options: codeLensDecorationOptions\n }, id => this._decorationIds[i] = id);\n });\n }\n updateHeight(height, viewZoneChangeAccessor) {\n this._viewZone.heightInPx = height;\n viewZoneChangeAccessor.layoutZone(this._viewZoneId);\n if (this._contentWidget) {\n this._editor.layoutContentWidget(this._contentWidget);\n }\n }\n computeIfNecessary(model) {\n if (!this._viewZone.isVisible()) {\n return null;\n }\n // Read editor current state\n for (let i = 0; i < this._decorationIds.length; i++) {\n const range = model.getDecorationRange(this._decorationIds[i]);\n if (range) {\n this._data[i].symbol.range = range;\n }\n }\n return this._data;\n }\n updateCommands(symbols) {\n this._createContentWidgetIfNecessary();\n this._contentWidget.withCommands(symbols, true);\n for (let i = 0; i < this._data.length; i++) {\n const resolved = symbols[i];\n if (resolved) {\n const { symbol } = this._data[i];\n symbol.command = resolved.command || symbol.command;\n }\n }\n }\n getCommand(link) {\n return this._contentWidget?.getCommand(link);\n }\n getLineNumber() {\n const range = this._editor.getModel().getDecorationRange(this._decorationIds[0]);\n if (range) {\n return range.startLineNumber;\n }\n return -1;\n }\n update(viewZoneChangeAccessor) {\n if (this.isValid()) {\n const range = this._editor.getModel().getDecorationRange(this._decorationIds[0]);\n if (range) {\n this._viewZone.afterLineNumber = range.startLineNumber - 1;\n viewZoneChangeAccessor.layoutZone(this._viewZoneId);\n if (this._contentWidget) {\n this._contentWidget.updatePosition(range.startLineNumber);\n this._editor.layoutContentWidget(this._contentWidget);\n }\n }\n }\n }\n}\n\nexport { CodeLensHelper, CodeLensWidget };\n",
14
- "import { RunOnceScheduler, disposableTimeout, createCancelablePromise } from '../../../../base/common/async.js';\nimport { onUnexpectedError, onUnexpectedExternalError } from '../../../../base/common/errors.js';\nimport { DisposableStore, toDisposable } from '../../../../base/common/lifecycle.js';\nimport { StableEditorScrollState } from '../../../browser/stableEditorScroll.js';\nimport { registerEditorContribution, registerEditorAction, EditorAction } from '../../../browser/editorExtensions.js';\nimport { EDITOR_FONT_DEFAULTS } from '../../../common/config/fontInfo.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { getCodeLensModel } from './codelens.js';\nimport { ICodeLensCache } from './codeLensCache.js';\nimport { CodeLensHelper, CodeLensWidget } from './codelensWidget.js';\nimport { localize2, localize } from '../../../../nls.js';\nimport { ICommandService } from '../../../../platform/commands/common/commands.js';\nimport { INotificationService } from '../../../../platform/notification/common/notification.js';\nimport { IQuickInputService } from '../../../../platform/quickinput/common/quickInput.js';\nimport { ILanguageFeatureDebounceService } from '../../../common/services/languageFeatureDebounce.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nlet CodeLensContribution = class CodeLensContribution {\n static { this.ID = 'css.editor.codeLens'; }\n constructor(_editor, _languageFeaturesService, debounceService, _commandService, _notificationService, _codeLensCache) {\n this._editor = _editor;\n this._languageFeaturesService = _languageFeaturesService;\n this._commandService = _commandService;\n this._notificationService = _notificationService;\n this._codeLensCache = _codeLensCache;\n this._disposables = new DisposableStore();\n this._localToDispose = new DisposableStore();\n this._lenses = [];\n this._oldCodeLensModels = new DisposableStore();\n this._provideCodeLensDebounce = debounceService.for(_languageFeaturesService.codeLensProvider, 'CodeLensProvide', { min: 250 });\n this._resolveCodeLensesDebounce = debounceService.for(_languageFeaturesService.codeLensProvider, 'CodeLensResolve', { min: 250, salt: 'resolve' });\n this._resolveCodeLensesScheduler = new RunOnceScheduler(() => this._resolveCodeLensesInViewport(), this._resolveCodeLensesDebounce.default());\n this._disposables.add(this._editor.onDidChangeModel(() => this._onModelChange()));\n this._disposables.add(this._editor.onDidChangeModelLanguage(() => this._onModelChange()));\n this._disposables.add(this._editor.onDidChangeConfiguration((e) => {\n if (e.hasChanged(59 /* EditorOption.fontInfo */) || e.hasChanged(25 /* EditorOption.codeLensFontSize */) || e.hasChanged(24 /* EditorOption.codeLensFontFamily */)) {\n this._updateLensStyle();\n }\n if (e.hasChanged(23 /* EditorOption.codeLens */)) {\n this._onModelChange();\n }\n }));\n this._disposables.add(_languageFeaturesService.codeLensProvider.onDidChange(this._onModelChange, this));\n this._onModelChange();\n this._updateLensStyle();\n }\n dispose() {\n this._localDispose();\n this._localToDispose.dispose();\n this._disposables.dispose();\n this._resolveCodeLensesScheduler.dispose();\n this._oldCodeLensModels.dispose();\n this._currentCodeLensModel?.dispose();\n }\n _getLayoutInfo() {\n const lineHeightFactor = Math.max(1.3, this._editor.getOption(75 /* EditorOption.lineHeight */) / this._editor.getOption(61 /* EditorOption.fontSize */));\n let fontSize = this._editor.getOption(25 /* EditorOption.codeLensFontSize */);\n if (!fontSize || fontSize < 5) {\n fontSize = (this._editor.getOption(61 /* EditorOption.fontSize */) * .9) | 0;\n }\n return {\n fontSize,\n codeLensHeight: (fontSize * lineHeightFactor) | 0,\n };\n }\n _updateLensStyle() {\n const { codeLensHeight, fontSize } = this._getLayoutInfo();\n const fontFamily = this._editor.getOption(24 /* EditorOption.codeLensFontFamily */);\n const editorFontInfo = this._editor.getOption(59 /* EditorOption.fontInfo */);\n const { style } = this._editor.getContainerDomNode();\n style.setProperty('--vscode-editorCodeLens-lineHeight', `${codeLensHeight}px`);\n style.setProperty('--vscode-editorCodeLens-fontSize', `${fontSize}px`);\n style.setProperty('--vscode-editorCodeLens-fontFeatureSettings', editorFontInfo.fontFeatureSettings);\n if (fontFamily) {\n style.setProperty('--vscode-editorCodeLens-fontFamily', fontFamily);\n style.setProperty('--vscode-editorCodeLens-fontFamilyDefault', EDITOR_FONT_DEFAULTS.fontFamily);\n }\n //\n this._editor.changeViewZones(accessor => {\n for (const lens of this._lenses) {\n lens.updateHeight(codeLensHeight, accessor);\n }\n });\n }\n _localDispose() {\n this._getCodeLensModelPromise?.cancel();\n this._getCodeLensModelPromise = undefined;\n this._resolveCodeLensesPromise?.cancel();\n this._resolveCodeLensesPromise = undefined;\n this._localToDispose.clear();\n this._oldCodeLensModels.clear();\n this._currentCodeLensModel?.dispose();\n }\n _onModelChange() {\n this._localDispose();\n const model = this._editor.getModel();\n if (!model) {\n return;\n }\n if (!this._editor.getOption(23 /* EditorOption.codeLens */) || model.isTooLargeForTokenization()) {\n return;\n }\n const cachedLenses = this._codeLensCache.get(model);\n if (cachedLenses) {\n this._renderCodeLensSymbols(cachedLenses);\n }\n if (!this._languageFeaturesService.codeLensProvider.has(model)) {\n // no provider -> return but check with\n // cached lenses. they expire after 30 seconds\n if (cachedLenses) {\n disposableTimeout(() => {\n const cachedLensesNow = this._codeLensCache.get(model);\n if (cachedLenses === cachedLensesNow) {\n this._codeLensCache.delete(model);\n this._onModelChange();\n }\n }, 30 * 1000, this._localToDispose);\n }\n return;\n }\n for (const provider of this._languageFeaturesService.codeLensProvider.all(model)) {\n if (typeof provider.onDidChange === 'function') {\n const registration = provider.onDidChange(() => scheduler.schedule());\n this._localToDispose.add(registration);\n }\n }\n const scheduler = new RunOnceScheduler(() => {\n const t1 = Date.now();\n this._getCodeLensModelPromise?.cancel();\n this._getCodeLensModelPromise = createCancelablePromise(token => getCodeLensModel(this._languageFeaturesService.codeLensProvider, model, token));\n this._getCodeLensModelPromise.then(result => {\n if (this._currentCodeLensModel) {\n this._oldCodeLensModels.add(this._currentCodeLensModel);\n }\n this._currentCodeLensModel = result;\n // cache model to reduce flicker\n this._codeLensCache.put(model, result);\n // update moving average\n const newDelay = this._provideCodeLensDebounce.update(model, Date.now() - t1);\n scheduler.delay = newDelay;\n // render lenses\n this._renderCodeLensSymbols(result);\n // dom.scheduleAtNextAnimationFrame(() => this._resolveCodeLensesInViewport());\n this._resolveCodeLensesInViewportSoon();\n }, onUnexpectedError);\n }, this._provideCodeLensDebounce.get(model));\n this._localToDispose.add(scheduler);\n this._localToDispose.add(toDisposable(() => this._resolveCodeLensesScheduler.cancel()));\n this._localToDispose.add(this._editor.onDidChangeModelContent(() => {\n this._editor.changeDecorations(decorationsAccessor => {\n this._editor.changeViewZones(viewZonesAccessor => {\n const toDispose = [];\n let lastLensLineNumber = -1;\n this._lenses.forEach((lens) => {\n if (!lens.isValid() || lastLensLineNumber === lens.getLineNumber()) {\n // invalid -> lens collapsed, attach range doesn't exist anymore\n // line_number -> lenses should never be on the same line\n toDispose.push(lens);\n }\n else {\n lens.update(viewZonesAccessor);\n lastLensLineNumber = lens.getLineNumber();\n }\n });\n const helper = new CodeLensHelper();\n toDispose.forEach((l) => {\n l.dispose(helper, viewZonesAccessor);\n this._lenses.splice(this._lenses.indexOf(l), 1);\n });\n helper.commit(decorationsAccessor);\n });\n });\n // Ask for all references again\n scheduler.schedule();\n // Cancel pending and active resolve requests\n this._resolveCodeLensesScheduler.cancel();\n this._resolveCodeLensesPromise?.cancel();\n this._resolveCodeLensesPromise = undefined;\n }));\n this._localToDispose.add(this._editor.onDidFocusEditorText(() => {\n scheduler.schedule();\n }));\n this._localToDispose.add(this._editor.onDidBlurEditorText(() => {\n scheduler.cancel();\n }));\n this._localToDispose.add(this._editor.onDidScrollChange(e => {\n if (e.scrollTopChanged && this._lenses.length > 0) {\n this._resolveCodeLensesInViewportSoon();\n }\n }));\n this._localToDispose.add(this._editor.onDidLayoutChange(() => {\n this._resolveCodeLensesInViewportSoon();\n }));\n this._localToDispose.add(toDisposable(() => {\n if (this._editor.getModel()) {\n const scrollState = StableEditorScrollState.capture(this._editor);\n this._editor.changeDecorations(decorationsAccessor => {\n this._editor.changeViewZones(viewZonesAccessor => {\n this._disposeAllLenses(decorationsAccessor, viewZonesAccessor);\n });\n });\n scrollState.restore(this._editor);\n }\n else {\n // No accessors available\n this._disposeAllLenses(undefined, undefined);\n }\n }));\n this._localToDispose.add(this._editor.onMouseDown(e => {\n if (e.target.type !== 9 /* MouseTargetType.CONTENT_WIDGET */) {\n return;\n }\n let target = e.target.element;\n if (target?.tagName === 'SPAN') {\n target = target.parentElement;\n }\n if (target?.tagName === 'A') {\n for (const lens of this._lenses) {\n const command = lens.getCommand(target);\n if (command) {\n this._commandService.executeCommand(command.id, ...(command.arguments || [])).catch(err => this._notificationService.error(err));\n break;\n }\n }\n }\n }));\n scheduler.schedule();\n }\n _disposeAllLenses(decChangeAccessor, viewZoneChangeAccessor) {\n const helper = new CodeLensHelper();\n for (const lens of this._lenses) {\n lens.dispose(helper, viewZoneChangeAccessor);\n }\n if (decChangeAccessor) {\n helper.commit(decChangeAccessor);\n }\n this._lenses.length = 0;\n }\n _renderCodeLensSymbols(symbols) {\n if (!this._editor.hasModel()) {\n return;\n }\n const maxLineNumber = this._editor.getModel().getLineCount();\n const groups = [];\n let lastGroup;\n for (const symbol of symbols.lenses) {\n const line = symbol.symbol.range.startLineNumber;\n if (line < 1 || line > maxLineNumber) {\n // invalid code lens\n continue;\n }\n else if (lastGroup && lastGroup[lastGroup.length - 1].symbol.range.startLineNumber === line) {\n // on same line as previous\n lastGroup.push(symbol);\n }\n else {\n // on later line as previous\n lastGroup = [symbol];\n groups.push(lastGroup);\n }\n }\n if (!groups.length && !this._lenses.length) {\n // Nothing to change\n return;\n }\n const scrollState = StableEditorScrollState.capture(this._editor);\n const layoutInfo = this._getLayoutInfo();\n this._editor.changeDecorations(decorationsAccessor => {\n this._editor.changeViewZones(viewZoneAccessor => {\n const helper = new CodeLensHelper();\n let codeLensIndex = 0;\n let groupsIndex = 0;\n while (groupsIndex < groups.length && codeLensIndex < this._lenses.length) {\n const symbolsLineNumber = groups[groupsIndex][0].symbol.range.startLineNumber;\n const codeLensLineNumber = this._lenses[codeLensIndex].getLineNumber();\n if (codeLensLineNumber < symbolsLineNumber) {\n this._lenses[codeLensIndex].dispose(helper, viewZoneAccessor);\n this._lenses.splice(codeLensIndex, 1);\n }\n else if (codeLensLineNumber === symbolsLineNumber) {\n this._lenses[codeLensIndex].updateCodeLensSymbols(groups[groupsIndex], helper);\n groupsIndex++;\n codeLensIndex++;\n }\n else {\n this._lenses.splice(codeLensIndex, 0, new CodeLensWidget(groups[groupsIndex], this._editor, helper, viewZoneAccessor, layoutInfo.codeLensHeight, () => this._resolveCodeLensesInViewportSoon()));\n codeLensIndex++;\n groupsIndex++;\n }\n }\n // Delete extra code lenses\n while (codeLensIndex < this._lenses.length) {\n this._lenses[codeLensIndex].dispose(helper, viewZoneAccessor);\n this._lenses.splice(codeLensIndex, 1);\n }\n // Create extra symbols\n while (groupsIndex < groups.length) {\n this._lenses.push(new CodeLensWidget(groups[groupsIndex], this._editor, helper, viewZoneAccessor, layoutInfo.codeLensHeight, () => this._resolveCodeLensesInViewportSoon()));\n groupsIndex++;\n }\n helper.commit(decorationsAccessor);\n });\n });\n scrollState.restore(this._editor);\n }\n _resolveCodeLensesInViewportSoon() {\n const model = this._editor.getModel();\n if (model) {\n this._resolveCodeLensesScheduler.schedule();\n }\n }\n _resolveCodeLensesInViewport() {\n this._resolveCodeLensesPromise?.cancel();\n this._resolveCodeLensesPromise = undefined;\n const model = this._editor.getModel();\n if (!model) {\n return;\n }\n const toResolve = [];\n const lenses = [];\n this._lenses.forEach((lens) => {\n const request = lens.computeIfNecessary(model);\n if (request) {\n toResolve.push(request);\n lenses.push(lens);\n }\n });\n if (toResolve.length === 0) {\n this._oldCodeLensModels.clear();\n return;\n }\n const t1 = Date.now();\n const resolvePromise = createCancelablePromise(token => {\n const promises = toResolve.map((request, i) => {\n const resolvedSymbols = new Array(request.length);\n const promises = request.map((request, i) => {\n if (!request.symbol.command && typeof request.provider.resolveCodeLens === 'function') {\n return Promise.resolve(request.provider.resolveCodeLens(model, request.symbol, token)).then(symbol => {\n resolvedSymbols[i] = symbol;\n }, onUnexpectedExternalError);\n }\n else {\n resolvedSymbols[i] = request.symbol;\n return Promise.resolve(undefined);\n }\n });\n return Promise.all(promises).then(() => {\n if (!token.isCancellationRequested && !lenses[i].isDisposed()) {\n lenses[i].updateCommands(resolvedSymbols);\n }\n });\n });\n return Promise.all(promises);\n });\n this._resolveCodeLensesPromise = resolvePromise;\n this._resolveCodeLensesPromise.then(() => {\n // update moving average\n const newDelay = this._resolveCodeLensesDebounce.update(model, Date.now() - t1);\n this._resolveCodeLensesScheduler.delay = newDelay;\n if (this._currentCodeLensModel) { // update the cached state with new resolved items\n this._codeLensCache.put(model, this._currentCodeLensModel);\n }\n this._oldCodeLensModels.clear(); // dispose old models once we have updated the UI with the current model\n if (resolvePromise === this._resolveCodeLensesPromise) {\n this._resolveCodeLensesPromise = undefined;\n }\n }, err => {\n onUnexpectedError(err); // can also be cancellation!\n if (resolvePromise === this._resolveCodeLensesPromise) {\n this._resolveCodeLensesPromise = undefined;\n }\n });\n }\n async getModel() {\n await this._getCodeLensModelPromise;\n await this._resolveCodeLensesPromise;\n return !this._currentCodeLensModel?.isDisposed\n ? this._currentCodeLensModel\n : undefined;\n }\n};\nCodeLensContribution = __decorate([\n __param(1, ILanguageFeaturesService),\n __param(2, ILanguageFeatureDebounceService),\n __param(3, ICommandService),\n __param(4, INotificationService),\n __param(5, ICodeLensCache)\n], CodeLensContribution);\nregisterEditorContribution(CodeLensContribution.ID, CodeLensContribution, 1 /* EditorContributionInstantiation.AfterFirstRender */);\nregisterEditorAction(class ShowLensesInCurrentLine extends EditorAction {\n constructor() {\n super({\n id: 'codelens.showLensesInCurrentLine',\n precondition: EditorContextKeys.hasCodeLensProvider,\n label: localize2(920, \"Show CodeLens Commands for Current Line\"),\n });\n }\n async run(accessor, editor) {\n if (!editor.hasModel()) {\n return;\n }\n const quickInputService = accessor.get(IQuickInputService);\n const commandService = accessor.get(ICommandService);\n const notificationService = accessor.get(INotificationService);\n const lineNumber = editor.getSelection().positionLineNumber;\n const codelensController = editor.getContribution(CodeLensContribution.ID);\n if (!codelensController) {\n return;\n }\n const model = await codelensController.getModel();\n if (!model) {\n // nothing\n return;\n }\n const items = [];\n for (const lens of model.lenses) {\n if (lens.symbol.command && lens.symbol.range.startLineNumber === lineNumber) {\n items.push({\n label: lens.symbol.command.title,\n command: lens.symbol.command\n });\n }\n }\n if (items.length === 0) {\n // We dont want an empty picker\n return;\n }\n const item = await quickInputService.pick(items, {\n canPickMany: false,\n placeHolder: localize(919, \"Select a command\")\n });\n if (!item) {\n // Nothing picked\n return;\n }\n let command = item.command;\n if (model.isDisposed) {\n // try to find the same command again in-case the model has been re-created in the meantime\n // this is a best attempt approach which shouldn't be needed because eager model re-creates\n // shouldn't happen due to focus in/out anymore\n const newModel = await codelensController.getModel();\n const newLens = newModel?.lenses.find(lens => lens.symbol.range.startLineNumber === lineNumber && lens.symbol.command?.title === command.title);\n if (!newLens || !newLens.symbol.command) {\n return;\n }\n command = newLens.symbol.command;\n }\n try {\n await commandService.executeCommand(command.id, ...(command.arguments || []));\n }\n catch (err) {\n notificationService.error(err);\n }\n }\n});\n\nexport { CodeLensContribution };\n",
15
- "import { Disposable } from '../../../../../base/common/lifecycle.js';\nimport { Range } from '../../../../common/core/range.js';\nimport { ContentHoverController } from '../../../hover/browser/contentHoverController.js';\nimport { isOnColorDecorator } from './hoverColorPicker.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nclass HoverColorPickerContribution extends Disposable {\n static { this.ID = 'editor.contrib.colorContribution'; } // ms\n constructor(_editor) {\n super();\n this._editor = _editor;\n this._register(_editor.onMouseDown((e) => this.onMouseDown(e)));\n }\n dispose() {\n super.dispose();\n }\n onMouseDown(mouseEvent) {\n const colorDecoratorsActivatedOn = this._editor.getOption(168 /* EditorOption.colorDecoratorsActivatedOn */);\n if (colorDecoratorsActivatedOn !== 'click' && colorDecoratorsActivatedOn !== 'clickAndHover') {\n return;\n }\n if (!isOnColorDecorator(mouseEvent)) {\n return;\n }\n const hoverController = this._editor.getContribution(ContentHoverController.ID);\n if (!hoverController) {\n return;\n }\n if (hoverController.isColorPickerVisible) {\n return;\n }\n const targetRange = mouseEvent.target.range;\n if (!targetRange) {\n return;\n }\n const range = new Range(targetRange.startLineNumber, targetRange.startColumn + 1, targetRange.endLineNumber, targetRange.endColumn + 1);\n hoverController.showContentHover(range, 1 /* HoverStartMode.Immediate */, 1 /* HoverStartSource.Click */, false);\n }\n}\n\nexport { HoverColorPickerContribution };\n",
16
- "import { CancellationToken } from '../../../../../base/common/cancellation.js';\nimport { Disposable } from '../../../../../base/common/lifecycle.js';\nimport { IThemeService } from '../../../../../platform/theme/common/themeService.js';\nimport { getColors } from '../color.js';\nimport { ColorDetector } from '../colorDetector.js';\nimport { createColorHover, updateColorPresentations, updateEditorModel } from '../colorPickerParticipantUtils.js';\nimport { ColorPickerWidget } from '../colorPickerWidget.js';\nimport { Range } from '../../../../common/core/range.js';\nimport { Dimension } from '../../../../../base/browser/dom.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nclass StandaloneColorPickerHover {\n constructor(owner, range, model, provider) {\n this.owner = owner;\n this.range = range;\n this.model = model;\n this.provider = provider;\n }\n static fromBaseColor(owner, color) {\n return new StandaloneColorPickerHover(owner, color.range, color.model, color.provider);\n }\n}\nclass StandaloneColorPickerRenderedParts extends Disposable {\n constructor(editor, context, colorHover, themeService) {\n super();\n const editorModel = editor.getModel();\n const colorPickerModel = colorHover.model;\n this.color = colorHover.model.color;\n this.colorPicker = this._register(new ColorPickerWidget(context.fragment, colorPickerModel, editor.getOption(163 /* EditorOption.pixelRatio */), themeService, \"standalone\" /* ColorPickerWidgetType.Standalone */));\n this._register(colorPickerModel.onColorFlushed((color) => {\n this.color = color;\n }));\n this._register(colorPickerModel.onDidChangeColor((color) => {\n updateColorPresentations(editorModel, colorPickerModel, color, colorHover.range, colorHover);\n }));\n this._register(editor.onDidChangeModelContent((e) => {\n {\n context.hide();\n editor.focus();\n }\n }));\n updateColorPresentations(editorModel, colorPickerModel, this.color, colorHover.range, colorHover);\n }\n}\nlet StandaloneColorPickerParticipant = class StandaloneColorPickerParticipant {\n constructor(_editor, _themeService) {\n this._editor = _editor;\n this._themeService = _themeService;\n }\n async createColorHover(defaultColorInfo, defaultColorProvider, colorProviderRegistry) {\n if (!this._editor.hasModel()) {\n return null;\n }\n const colorDetector = ColorDetector.get(this._editor);\n if (!colorDetector) {\n return null;\n }\n const colors = await getColors(colorProviderRegistry, this._editor.getModel(), CancellationToken.None);\n let foundColorInfo = null;\n let foundColorProvider = null;\n for (const colorData of colors) {\n const colorInfo = colorData.colorInfo;\n if (Range.containsRange(colorInfo.range, defaultColorInfo.range)) {\n foundColorInfo = colorInfo;\n foundColorProvider = colorData.provider;\n }\n }\n const colorInfo = foundColorInfo ?? defaultColorInfo;\n const colorProvider = foundColorProvider ?? defaultColorProvider;\n const foundInEditor = !!foundColorInfo;\n const colorHover = StandaloneColorPickerHover.fromBaseColor(this, await createColorHover(this._editor.getModel(), colorInfo, colorProvider));\n return { colorHover, foundInEditor };\n }\n async updateEditorModel(colorHoverData) {\n if (!this._editor.hasModel()) {\n return;\n }\n const colorPickerModel = colorHoverData.model;\n let range = new Range(colorHoverData.range.startLineNumber, colorHoverData.range.startColumn, colorHoverData.range.endLineNumber, colorHoverData.range.endColumn);\n if (this._color) {\n await updateColorPresentations(this._editor.getModel(), colorPickerModel, this._color, range, colorHoverData);\n range = updateEditorModel(this._editor, range, colorPickerModel);\n }\n }\n renderHoverParts(context, hoverParts) {\n if (hoverParts.length === 0 || !this._editor.hasModel()) {\n return undefined;\n }\n this._setMinimumDimensions(context);\n this._renderedParts = new StandaloneColorPickerRenderedParts(this._editor, context, hoverParts[0], this._themeService);\n return this._renderedParts;\n }\n _setMinimumDimensions(context) {\n const minimumHeight = this._editor.getOption(75 /* EditorOption.lineHeight */) + 8;\n context.setMinimumDimensions(new Dimension(302, minimumHeight));\n }\n get _color() {\n return this._renderedParts?.color;\n }\n};\nStandaloneColorPickerParticipant = __decorate([\n __param(1, IThemeService)\n], StandaloneColorPickerParticipant);\n\nexport { StandaloneColorPickerHover, StandaloneColorPickerParticipant, StandaloneColorPickerRenderedParts };\n",
17
- "import '../colorPicker.css';\nimport { Disposable, MutableDisposable } from '../../../../../base/common/lifecycle.js';\nimport { IInstantiationService } from '../../../../../platform/instantiation/common/instantiation.js';\nimport { EditorHoverStatusBar } from '../../../hover/browser/contentHoverStatusBar.js';\nimport { IKeybindingService } from '../../../../../platform/keybinding/common/keybinding.js';\nimport { Emitter } from '../../../../../base/common/event.js';\nimport { ILanguageFeaturesService } from '../../../../common/services/languageFeatures.js';\nimport { DefaultDocumentColorProvider } from '../defaultDocumentColorProvider.js';\nimport { IEditorWorkerService } from '../../../../common/services/editorWorker.js';\nimport { StandaloneColorPickerParticipant } from './standaloneColorPickerParticipant.js';\nimport { trackFocus } from '../../../../../base/browser/dom.js';\nimport { IHoverService } from '../../../../../platform/hover/browser/hover.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar StandaloneColorPickerWidget_1;\nclass StandaloneColorPickerResult {\n // The color picker result consists of: an array of color results and a boolean indicating if the color was found in the editor\n constructor(value, foundInEditor) {\n this.value = value;\n this.foundInEditor = foundInEditor;\n }\n}\nconst PADDING = 8;\nconst CLOSE_BUTTON_WIDTH = 22;\nlet StandaloneColorPickerWidget = class StandaloneColorPickerWidget extends Disposable {\n static { StandaloneColorPickerWidget_1 = this; }\n static { this.ID = 'editor.contrib.standaloneColorPickerWidget'; }\n constructor(_editor, _standaloneColorPickerVisible, _standaloneColorPickerFocused, _instantiationService, _keybindingService, _languageFeaturesService, _editorWorkerService, _hoverService) {\n super();\n this._editor = _editor;\n this._standaloneColorPickerVisible = _standaloneColorPickerVisible;\n this._standaloneColorPickerFocused = _standaloneColorPickerFocused;\n this._keybindingService = _keybindingService;\n this._languageFeaturesService = _languageFeaturesService;\n this._editorWorkerService = _editorWorkerService;\n this._hoverService = _hoverService;\n this.allowEditorOverflow = true;\n this._position = undefined;\n this._body = document.createElement('div');\n this._colorHover = null;\n this._selectionSetInEditor = false;\n this._onResult = this._register(new Emitter());\n this.onResult = this._onResult.event;\n this._renderedHoverParts = this._register(new MutableDisposable());\n this._renderedStatusBar = this._register(new MutableDisposable());\n this._standaloneColorPickerVisible.set(true);\n this._standaloneColorPickerParticipant = _instantiationService.createInstance(StandaloneColorPickerParticipant, this._editor);\n this._position = this._editor._getViewModel()?.getPrimaryCursorState().modelState.position;\n const editorSelection = this._editor.getSelection();\n const selection = editorSelection ?\n {\n startLineNumber: editorSelection.startLineNumber,\n startColumn: editorSelection.startColumn,\n endLineNumber: editorSelection.endLineNumber,\n endColumn: editorSelection.endColumn\n } : { startLineNumber: 0, endLineNumber: 0, endColumn: 0, startColumn: 0 };\n const focusTracker = this._register(trackFocus(this._body));\n this._register(focusTracker.onDidBlur(_ => {\n this.hide();\n }));\n this._register(focusTracker.onDidFocus(_ => {\n this.focus();\n }));\n // When the cursor position changes, hide the color picker\n this._register(this._editor.onDidChangeCursorPosition(() => {\n // Do not hide the color picker when the cursor changes position due to the keybindings\n if (!this._selectionSetInEditor) {\n this.hide();\n }\n else {\n this._selectionSetInEditor = false;\n }\n }));\n this._register(this._editor.onMouseMove((e) => {\n const classList = e.target.element?.classList;\n if (classList && classList.contains('colorpicker-color-decoration')) {\n this.hide();\n }\n }));\n this._register(this.onResult((result) => {\n this._render(result.value, result.foundInEditor);\n }));\n this._start(selection);\n this._body.style.zIndex = '50';\n this._editor.addContentWidget(this);\n }\n updateEditor() {\n if (this._colorHover) {\n this._standaloneColorPickerParticipant.updateEditorModel(this._colorHover);\n }\n }\n getId() {\n return StandaloneColorPickerWidget_1.ID;\n }\n getDomNode() {\n return this._body;\n }\n getPosition() {\n if (!this._position) {\n return null;\n }\n const positionPreference = this._editor.getOption(69 /* EditorOption.hover */).above;\n return {\n position: this._position,\n secondaryPosition: this._position,\n preference: positionPreference ? [1 /* ContentWidgetPositionPreference.ABOVE */, 2 /* ContentWidgetPositionPreference.BELOW */] : [2 /* ContentWidgetPositionPreference.BELOW */, 1 /* ContentWidgetPositionPreference.ABOVE */],\n positionAffinity: 2 /* PositionAffinity.None */\n };\n }\n hide() {\n this.dispose();\n this._standaloneColorPickerVisible.set(false);\n this._standaloneColorPickerFocused.set(false);\n this._editor.removeContentWidget(this);\n this._editor.focus();\n }\n focus() {\n this._standaloneColorPickerFocused.set(true);\n this._body.focus();\n }\n async _start(selection) {\n const computeAsyncResult = await this._computeAsync(selection);\n if (!computeAsyncResult) {\n return;\n }\n this._onResult.fire(new StandaloneColorPickerResult(computeAsyncResult.result, computeAsyncResult.foundInEditor));\n }\n async _computeAsync(range) {\n if (!this._editor.hasModel()) {\n return null;\n }\n const colorInfo = {\n range: range,\n color: { red: 0, green: 0, blue: 0, alpha: 1 }\n };\n const colorHoverResult = await this._standaloneColorPickerParticipant.createColorHover(colorInfo, new DefaultDocumentColorProvider(this._editorWorkerService), this._languageFeaturesService.colorProvider);\n if (!colorHoverResult) {\n return null;\n }\n return { result: colorHoverResult.colorHover, foundInEditor: colorHoverResult.foundInEditor };\n }\n _render(colorHover, foundInEditor) {\n const fragment = document.createDocumentFragment();\n this._renderedStatusBar.value = this._register(new EditorHoverStatusBar(this._keybindingService, this._hoverService));\n const context = {\n fragment,\n statusBar: this._renderedStatusBar.value,\n onContentsChanged: () => { },\n setMinimumDimensions: () => { },\n hide: () => this.hide(),\n focus: () => this.focus()\n };\n this._colorHover = colorHover;\n this._renderedHoverParts.value = this._standaloneColorPickerParticipant.renderHoverParts(context, [colorHover]);\n if (!this._renderedHoverParts.value) {\n this._renderedStatusBar.clear();\n this._renderedHoverParts.clear();\n return;\n }\n const colorPicker = this._renderedHoverParts.value.colorPicker;\n this._body.classList.add('standalone-colorpicker-body');\n this._body.style.maxHeight = Math.max(this._editor.getLayoutInfo().height / 4, 250) + 'px';\n this._body.style.maxWidth = Math.max(this._editor.getLayoutInfo().width * 0.66, 500) + 'px';\n this._body.tabIndex = 0;\n this._body.appendChild(fragment);\n colorPicker.layout();\n const colorPickerBody = colorPicker.body;\n const saturationBoxWidth = colorPickerBody.saturationBox.domNode.clientWidth;\n const widthOfOriginalColorBox = colorPickerBody.domNode.clientWidth - saturationBoxWidth - CLOSE_BUTTON_WIDTH - PADDING;\n const enterButton = colorPicker.body.enterButton;\n enterButton?.onClicked(() => {\n this.updateEditor();\n this.hide();\n });\n const colorPickerHeader = colorPicker.header;\n const pickedColorNode = colorPickerHeader.pickedColorNode;\n pickedColorNode.style.width = saturationBoxWidth + PADDING + 'px';\n const originalColorNode = colorPickerHeader.originalColorNode;\n originalColorNode.style.width = widthOfOriginalColorBox + 'px';\n const closeButton = colorPicker.header.closeButton;\n closeButton?.onClicked(() => {\n this.hide();\n });\n // When found in the editor, highlight the selection in the editor\n if (foundInEditor) {\n if (enterButton) {\n enterButton.button.textContent = 'Replace';\n }\n this._selectionSetInEditor = true;\n this._editor.setSelection(colorHover.range);\n }\n this._editor.layoutContentWidget(this);\n }\n};\nStandaloneColorPickerWidget = StandaloneColorPickerWidget_1 = __decorate([\n __param(3, IInstantiationService),\n __param(4, IKeybindingService),\n __param(5, ILanguageFeaturesService),\n __param(6, IEditorWorkerService),\n __param(7, IHoverService)\n], StandaloneColorPickerWidget);\n\nexport { StandaloneColorPickerWidget };\n",
18
- "import { IContextKeyService } from '../../../../../platform/contextkey/common/contextkey.js';\nimport { IInstantiationService } from '../../../../../platform/instantiation/common/instantiation.js';\nimport { EditorContextKeys } from '../../../../common/editorContextKeys.js';\nimport { StandaloneColorPickerWidget } from './standaloneColorPickerWidget.js';\nimport { Disposable } from '../../../../../base/common/lifecycle.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar StandaloneColorPickerController_1;\nlet StandaloneColorPickerController = class StandaloneColorPickerController extends Disposable {\n static { StandaloneColorPickerController_1 = this; }\n static { this.ID = 'editor.contrib.standaloneColorPickerController'; }\n constructor(_editor, _contextKeyService, _instantiationService) {\n super();\n this._editor = _editor;\n this._instantiationService = _instantiationService;\n this._standaloneColorPickerWidget = null;\n this._standaloneColorPickerVisible = EditorContextKeys.standaloneColorPickerVisible.bindTo(_contextKeyService);\n this._standaloneColorPickerFocused = EditorContextKeys.standaloneColorPickerFocused.bindTo(_contextKeyService);\n }\n showOrFocus() {\n if (!this._editor.hasModel()) {\n return;\n }\n if (!this._standaloneColorPickerVisible.get()) {\n this._standaloneColorPickerWidget = this._instantiationService.createInstance(StandaloneColorPickerWidget, this._editor, this._standaloneColorPickerVisible, this._standaloneColorPickerFocused);\n }\n else if (!this._standaloneColorPickerFocused.get()) {\n this._standaloneColorPickerWidget?.focus();\n }\n }\n hide() {\n this._standaloneColorPickerFocused.set(false);\n this._standaloneColorPickerVisible.set(false);\n this._standaloneColorPickerWidget?.hide();\n this._editor.focus();\n }\n insertColor() {\n this._standaloneColorPickerWidget?.updateEditor();\n this.hide();\n }\n static get(editor) {\n return editor.getContribution(StandaloneColorPickerController_1.ID);\n }\n};\nStandaloneColorPickerController = StandaloneColorPickerController_1 = __decorate([\n __param(1, IContextKeyService),\n __param(2, IInstantiationService)\n], StandaloneColorPickerController);\n\nexport { StandaloneColorPickerController };\n",
19
- "import { EditorAction, EditorAction2 } from '../../../../browser/editorExtensions.js';\nimport { localize2, localize } from '../../../../../nls.js';\nimport { EditorContextKeys } from '../../../../common/editorContextKeys.js';\nimport { MenuId } from '../../../../../platform/actions/common/actions.js';\nimport { StandaloneColorPickerController } from './standaloneColorPickerController.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nclass ShowOrFocusStandaloneColorPicker extends EditorAction2 {\n constructor() {\n super({\n id: 'editor.action.showOrFocusStandaloneColorPicker',\n title: {\n ...localize2(925, \"Show or Focus Standalone Color Picker\"),\n mnemonicTitle: localize(924, \"&&Show or Focus Standalone Color Picker\"),\n },\n precondition: undefined,\n menu: [\n { id: MenuId.CommandPalette },\n ],\n metadata: {\n description: localize2(926, \"Show or focus a standalone color picker which uses the default color provider. It displays hex/rgb/hsl colors.\"),\n }\n });\n }\n runEditorCommand(_accessor, editor) {\n StandaloneColorPickerController.get(editor)?.showOrFocus();\n }\n}\nclass HideStandaloneColorPicker extends EditorAction {\n constructor() {\n super({\n id: 'editor.action.hideColorPicker',\n label: localize2(927, \"Hide the Color Picker\"),\n\n\n\n\n\n precondition: EditorContextKeys.standaloneColorPickerVisible.isEqualTo(true),\n kbOpts: {\n primary: 9 /* KeyCode.Escape */,\n weight: 100 /* KeybindingWeight.EditorContrib */\n },\n metadata: {\n description: localize2(928, \"Hide the standalone color picker.\"),\n }\n });\n }\n run(_accessor, editor) {\n StandaloneColorPickerController.get(editor)?.hide();\n }\n}\nclass InsertColorWithStandaloneColorPicker extends EditorAction {\n constructor() {\n super({\n id: 'editor.action.insertColorWithStandaloneColorPicker',\n label: localize2(929, \"Insert Color with Standalone Color Picker\"),\n\n\n\n\n\n precondition: EditorContextKeys.standaloneColorPickerFocused.isEqualTo(true),\n kbOpts: {\n primary: 3 /* KeyCode.Enter */,\n weight: 100 /* KeybindingWeight.EditorContrib */\n },\n metadata: {\n description: localize2(930, \"Insert hex/rgb/hsl colors with the focused standalone color picker.\"),\n }\n });\n }\n run(_accessor, editor) {\n StandaloneColorPickerController.get(editor)?.insertColor();\n }\n}\n\nexport { HideStandaloneColorPicker, InsertColorWithStandaloneColorPicker, ShowOrFocusStandaloneColorPicker };\n",
20
- "import { CancellationToken } from '../../../../base/common/cancellation.js';\nimport { illegalArgument } from '../../../../base/common/errors.js';\nimport { URI } from '../../../../base/common/uri.js';\nimport { registerAction2 } from '../../../../platform/actions/common/actions.js';\nimport { CommandsRegistry } from '../../../../platform/commands/common/commands.js';\nimport { registerEditorAction, registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { registerEditorFeature } from '../../../common/editorFeatures.js';\nimport { HoverParticipantRegistry } from '../../hover/browser/hoverTypes.js';\nimport { _setupColorCommand, _findColorData, ExtColorDataCollector, ColorPresentationsCollector } from './color.js';\nimport { ColorDetector } from './colorDetector.js';\nimport { DefaultDocumentColorProviderFeature } from './defaultDocumentColorProvider.js';\nimport { HoverColorPickerContribution } from './hoverColorPicker/hoverColorPickerContribution.js';\nimport { HoverColorPickerParticipant } from './hoverColorPicker/hoverColorPickerParticipant.js';\nimport { HideStandaloneColorPicker, InsertColorWithStandaloneColorPicker, ShowOrFocusStandaloneColorPicker } from './standaloneColorPicker/standaloneColorPickerActions.js';\nimport { StandaloneColorPickerController } from './standaloneColorPicker/standaloneColorPickerController.js';\nimport { Range } from '../../../common/core/range.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nregisterEditorAction(HideStandaloneColorPicker);\nregisterEditorAction(InsertColorWithStandaloneColorPicker);\nregisterAction2(ShowOrFocusStandaloneColorPicker);\nregisterEditorContribution(HoverColorPickerContribution.ID, HoverColorPickerContribution, 2 /* EditorContributionInstantiation.BeforeFirstInteraction */);\nregisterEditorContribution(StandaloneColorPickerController.ID, StandaloneColorPickerController, 1 /* EditorContributionInstantiation.AfterFirstRender */);\nregisterEditorContribution(ColorDetector.ID, ColorDetector, 1 /* EditorContributionInstantiation.AfterFirstRender */);\nregisterEditorFeature(DefaultDocumentColorProviderFeature);\nHoverParticipantRegistry.register(HoverColorPickerParticipant);\nCommandsRegistry.registerCommand('_executeDocumentColorProvider', function (accessor, ...args) {\n const [resource] = args;\n if (!(resource instanceof URI)) {\n throw illegalArgument();\n }\n const { model, colorProviderRegistry, defaultColorDecoratorsEnablement } = _setupColorCommand(accessor, resource);\n return _findColorData(new ExtColorDataCollector(), colorProviderRegistry, model, CancellationToken.None, defaultColorDecoratorsEnablement);\n});\nCommandsRegistry.registerCommand('_executeColorPresentationProvider', function (accessor, ...args) {\n const [color, context] = args;\n if (!context) {\n return;\n }\n const { uri, range } = context;\n if (!(uri instanceof URI) || !Array.isArray(color) || color.length !== 4 || !Range.isIRange(range)) {\n throw illegalArgument();\n }\n const { model, colorProviderRegistry, defaultColorDecoratorsEnablement } = _setupColorCommand(accessor, uri);\n const [red, green, blue, alpha] = color;\n return _findColorData(new ColorPresentationsCollector({ range: range, color: { red, green, blue, alpha } }), colorProviderRegistry, model, CancellationToken.None, defaultColorDecoratorsEnablement);\n});\n",
21
- "import { HierarchicalKind } from '../../../../base/common/hierarchicalKind.js';\nimport { localize, localize2 } from '../../../../nls.js';\nimport { registerEditorContribution, registerEditorCommand, EditorCommand, registerEditorAction, EditorAction } from '../../../browser/editorExtensions.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { registerEditorFeature } from '../../../common/editorFeatures.js';\nimport { CopyPasteController, pasteWidgetVisibleCtx, changePasteTypeCommandId } from './copyPasteController.js';\nimport { DefaultTextPasteOrDropEditProvider, DefaultPasteProvidersFeature } from './defaultProviders.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nconst pasteAsCommandId = 'editor.action.pasteAs';\nregisterEditorContribution(CopyPasteController.ID, CopyPasteController, 0 /* EditorContributionInstantiation.Eager */); // eager because it listens to events on the container dom node of the editor\nregisterEditorFeature(DefaultPasteProvidersFeature);\nregisterEditorCommand(new class extends EditorCommand {\n constructor() {\n super({\n id: changePasteTypeCommandId,\n precondition: pasteWidgetVisibleCtx,\n kbOpts: {\n weight: 100 /* KeybindingWeight.EditorContrib */,\n primary: 2048 /* KeyMod.CtrlCmd */ | 89 /* KeyCode.Period */,\n }\n });\n }\n runEditorCommand(_accessor, editor) {\n return CopyPasteController.get(editor)?.changePasteType();\n }\n});\nregisterEditorCommand(new class extends EditorCommand {\n constructor() {\n super({\n id: 'editor.hidePasteWidget',\n precondition: pasteWidgetVisibleCtx,\n kbOpts: {\n weight: 100 /* KeybindingWeight.EditorContrib */,\n primary: 9 /* KeyCode.Escape */,\n }\n });\n }\n runEditorCommand(_accessor, editor) {\n CopyPasteController.get(editor)?.clearWidgets();\n }\n});\nregisterEditorAction(class PasteAsAction extends EditorAction {\n static { this.argsSchema = {\n oneOf: [\n {\n type: 'object',\n required: ['kind'],\n properties: {\n kind: {\n type: 'string',\n description: localize(952, \"The kind of the paste edit to try pasting with.\\nIf there are multiple edits for this kind, the editor will show a picker. If there are no edits of this kind, the editor will show an error message.\"),\n }\n },\n },\n {\n type: 'object',\n required: ['preferences'],\n properties: {\n preferences: {\n type: 'array',\n description: localize(953, \"List of preferred paste edit kind to try applying.\\nThe first edit matching the preferences will be applied.\"),\n items: { type: 'string' }\n }\n },\n }\n ]\n }; }\n constructor() {\n super({\n id: pasteAsCommandId,\n label: localize2(954, \"Paste As...\"),\n precondition: EditorContextKeys.writable,\n metadata: {\n description: 'Paste as',\n args: [{\n name: 'args',\n schema: PasteAsAction.argsSchema\n }]\n },\n canTriggerInlineEdits: true,\n });\n }\n run(_accessor, editor, args) {\n let preference;\n if (args) {\n if ('kind' in args) {\n preference = { only: new HierarchicalKind(args.kind) };\n }\n else if ('preferences' in args) {\n preference = { preferences: args.preferences.map(kind => new HierarchicalKind(kind)) };\n }\n }\n return CopyPasteController.get(editor)?.pasteAs(preference);\n }\n});\nregisterEditorAction(class extends EditorAction {\n constructor() {\n super({\n id: 'editor.action.pasteAsText',\n label: localize2(955, \"Paste as Text\"),\n precondition: EditorContextKeys.writable,\n canTriggerInlineEdits: true,\n });\n }\n run(_accessor, editor) {\n return CopyPasteController.get(editor)?.pasteAs({ providerId: DefaultTextPasteOrDropEditProvider.id });\n }\n});\n\nexport { pasteAsCommandId };\n",
22
- "/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nclass TreeViewsDnDService {\n constructor() {\n this._dragOperations = new Map();\n }\n removeDragOperationTransfer(uuid) {\n if ((uuid && this._dragOperations.has(uuid))) {\n const operation = this._dragOperations.get(uuid);\n this._dragOperations.delete(uuid);\n return operation;\n }\n return undefined;\n }\n}\nclass DraggedTreeItemsIdentifier {\n constructor(identifier) {\n this.identifier = identifier;\n }\n}\n\nexport { DraggedTreeItemsIdentifier, TreeViewsDnDService };\n",
23
- "import { registerSingleton } from '../../../platform/instantiation/common/extensions.js';\nimport { createDecorator } from '../../../platform/instantiation/common/instantiation.js';\nimport { TreeViewsDnDService } from './treeViewsDnd.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nconst ITreeViewsDnDService = createDecorator('treeViewsDndService');\nregisterSingleton(ITreeViewsDnDService, TreeViewsDnDService, 1 /* InstantiationType.Delayed */);\n\nexport { ITreeViewsDnDService };\n",
24
- "import { coalesce } from '../../../../base/common/arrays.js';\nimport { createCancelablePromise, raceCancellation } from '../../../../base/common/async.js';\nimport { VSDataTransfer } from '../../../../base/common/dataTransfer.js';\nimport { isCancellationError } from '../../../../base/common/errors.js';\nimport { HierarchicalKind } from '../../../../base/common/hierarchicalKind.js';\nimport { Disposable, DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { localize } from '../../../../nls.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nimport { RawContextKey } from '../../../../platform/contextkey/common/contextkey.js';\nimport { LocalSelectionTransfer } from '../../../../platform/dnd/browser/dnd.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { toExternalVSDataTransfer } from '../../../browser/dataTransfer.js';\nimport { Range } from '../../../common/core/range.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { DraggedTreeItemsIdentifier } from '../../../common/services/treeViewsDnd.js';\nimport { ITreeViewsDnDService } from '../../../common/services/treeViewsDndService.js';\nimport { EditorStateCancellationTokenSource } from '../../editorState/browser/editorState.js';\nimport { InlineProgressManager } from '../../inlineProgress/browser/inlineProgress.js';\nimport { sortEditsByYieldTo } from './edit.js';\nimport { PostEditWidgetManager } from './postEditWidget.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar DropIntoEditorController_1;\nconst dropAsPreferenceConfig = 'editor.dropIntoEditor.preferences';\nconst changeDropTypeCommandId = 'editor.changeDropType';\nconst dropWidgetVisibleCtx = new RawContextKey('dropWidgetVisible', false, localize(973, \"Whether the drop widget is showing\"));\nlet DropIntoEditorController = class DropIntoEditorController extends Disposable {\n static { DropIntoEditorController_1 = this; }\n static { this.ID = 'editor.contrib.dropIntoEditorController'; }\n static get(editor) {\n return editor.getContribution(DropIntoEditorController_1.ID);\n }\n constructor(editor, instantiationService, _configService, _languageFeaturesService, _treeViewsDragAndDropService) {\n super();\n this._configService = _configService;\n this._languageFeaturesService = _languageFeaturesService;\n this._treeViewsDragAndDropService = _treeViewsDragAndDropService;\n this.treeItemsTransfer = LocalSelectionTransfer.getInstance();\n this._dropProgressManager = this._register(instantiationService.createInstance(InlineProgressManager, 'dropIntoEditor', editor));\n this._postDropWidgetManager = this._register(instantiationService.createInstance(PostEditWidgetManager, 'dropIntoEditor', editor, dropWidgetVisibleCtx, { id: changeDropTypeCommandId, label: localize(974, \"Show drop options...\") }, () => DropIntoEditorController_1._configureDefaultAction ? [DropIntoEditorController_1._configureDefaultAction] : []));\n this._register(editor.onDropIntoEditor(e => this.onDropIntoEditor(editor, e.position, e.event)));\n }\n clearWidgets() {\n this._postDropWidgetManager.clear();\n }\n changeDropType() {\n this._postDropWidgetManager.tryShowSelector();\n }\n async onDropIntoEditor(editor, position, dragEvent) {\n if (!dragEvent.dataTransfer || !editor.hasModel()) {\n return;\n }\n DropIntoEditorController_1._currentDropOperation?.cancel();\n editor.focus();\n editor.setPosition(position);\n const p = createCancelablePromise(async (token) => {\n const disposables = new DisposableStore();\n const tokenSource = disposables.add(new EditorStateCancellationTokenSource(editor, 1 /* CodeEditorStateFlag.Value */, undefined, token));\n try {\n const ourDataTransfer = await this.extractDataTransferData(dragEvent);\n if (ourDataTransfer.size === 0 || tokenSource.token.isCancellationRequested) {\n return;\n }\n const model = editor.getModel();\n if (!model) {\n return;\n }\n const providers = this._languageFeaturesService.documentDropEditProvider\n .ordered(model)\n .filter(provider => {\n if (!provider.dropMimeTypes) {\n // Keep all providers that don't specify mime types\n return true;\n }\n return provider.dropMimeTypes.some(mime => ourDataTransfer.matches(mime));\n });\n const editSession = disposables.add(await this.getDropEdits(providers, model, position, ourDataTransfer, tokenSource.token));\n if (tokenSource.token.isCancellationRequested) {\n return;\n }\n if (editSession.edits.length) {\n const activeEditIndex = this.getInitialActiveEditIndex(model, editSession.edits);\n const canShowWidget = editor.getOption(43 /* EditorOption.dropIntoEditor */).showDropSelector === 'afterDrop';\n // Pass in the parent token here as it tracks cancelling the entire drop operation\n await this._postDropWidgetManager.applyEditAndShowIfNeeded([Range.fromPositions(position)], { activeEditIndex, allEdits: editSession.edits }, canShowWidget, async (edit) => edit, token);\n }\n }\n finally {\n disposables.dispose();\n if (DropIntoEditorController_1._currentDropOperation === p) {\n DropIntoEditorController_1._currentDropOperation = undefined;\n }\n }\n });\n this._dropProgressManager.showWhile(position, localize(975, \"Running drop handlers. Click to cancel\"), p, { cancel: () => p.cancel() });\n DropIntoEditorController_1._currentDropOperation = p;\n }\n async getDropEdits(providers, model, position, dataTransfer, token) {\n const disposables = new DisposableStore();\n const results = await raceCancellation(Promise.all(providers.map(async (provider) => {\n try {\n const edits = await provider.provideDocumentDropEdits(model, position, dataTransfer, token);\n if (edits) {\n disposables.add(edits);\n }\n return edits?.edits.map(edit => ({ ...edit, providerId: provider.id }));\n }\n catch (err) {\n if (!isCancellationError(err)) {\n console.error(err);\n }\n console.error(err);\n }\n return undefined;\n })), token);\n const edits = coalesce(results ?? []).flat();\n return {\n edits: sortEditsByYieldTo(edits),\n dispose: () => disposables.dispose()\n };\n }\n getInitialActiveEditIndex(model, edits) {\n const preferredProviders = this._configService.getValue(dropAsPreferenceConfig, { resource: model.uri });\n for (const config of Array.isArray(preferredProviders) ? preferredProviders : []) {\n const desiredKind = new HierarchicalKind(config);\n const editIndex = edits.findIndex(edit => edit.kind && desiredKind.contains(edit.kind));\n if (editIndex >= 0) {\n return editIndex;\n }\n }\n return 0;\n }\n async extractDataTransferData(dragEvent) {\n if (!dragEvent.dataTransfer) {\n return new VSDataTransfer();\n }\n const dataTransfer = toExternalVSDataTransfer(dragEvent.dataTransfer);\n if (this.treeItemsTransfer.hasData(DraggedTreeItemsIdentifier.prototype)) {\n const data = this.treeItemsTransfer.getData(DraggedTreeItemsIdentifier.prototype);\n if (Array.isArray(data)) {\n for (const id of data) {\n const treeDataTransfer = await this._treeViewsDragAndDropService.removeDragOperationTransfer(id.identifier);\n if (treeDataTransfer) {\n for (const [type, value] of treeDataTransfer) {\n dataTransfer.replace(type, value);\n }\n }\n }\n }\n }\n return dataTransfer;\n }\n};\nDropIntoEditorController = DropIntoEditorController_1 = __decorate([\n __param(1, IInstantiationService),\n __param(2, IConfigurationService),\n __param(3, ILanguageFeaturesService),\n __param(4, ITreeViewsDnDService)\n], DropIntoEditorController);\n\nexport { DropIntoEditorController, changeDropTypeCommandId, dropAsPreferenceConfig, dropWidgetVisibleCtx };\n",
25
- "import { registerEditorContribution, registerEditorCommand, EditorCommand } from '../../../browser/editorExtensions.js';\nimport { registerEditorFeature } from '../../../common/editorFeatures.js';\nimport { DefaultDropProvidersFeature } from './defaultProviders.js';\nimport { DropIntoEditorController, dropWidgetVisibleCtx, changeDropTypeCommandId } from './dropIntoEditorController.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nregisterEditorContribution(DropIntoEditorController.ID, DropIntoEditorController, 2 /* EditorContributionInstantiation.BeforeFirstInteraction */);\nregisterEditorFeature(DefaultDropProvidersFeature);\nregisterEditorCommand(new class extends EditorCommand {\n constructor() {\n super({\n id: changeDropTypeCommandId,\n precondition: dropWidgetVisibleCtx,\n kbOpts: {\n weight: 100 /* KeybindingWeight.EditorContrib */,\n primary: 2048 /* KeyMod.CtrlCmd */ | 89 /* KeyCode.Period */,\n }\n });\n }\n runEditorCommand(_accessor, editor, _args) {\n DropIntoEditorController.get(editor)?.changeDropType();\n }\n});\nregisterEditorCommand(new class extends EditorCommand {\n constructor() {\n super({\n id: 'editor.hideDropWidget',\n precondition: dropWidgetVisibleCtx,\n kbOpts: {\n weight: 100 /* KeybindingWeight.EditorContrib */,\n primary: 9 /* KeyCode.Escape */,\n }\n });\n }\n runEditorCommand(_accessor, editor, _args) {\n DropIntoEditorController.get(editor)?.clearWidgets();\n }\n});\n",
26
- "import { registerEditorAction, EditorAction } from '../../../browser/editorExtensions.js';\nimport { EditorZoom } from '../../../common/config/editorZoom.js';\nimport { localize2 } from '../../../../nls.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nclass EditorFontZoomIn extends EditorAction {\n constructor() {\n super({\n id: 'editor.action.fontZoomIn',\n label: localize2(1054, \"Increase Editor Font Size\"),\n precondition: undefined\n });\n }\n run(accessor, editor) {\n EditorZoom.setZoomLevel(EditorZoom.getZoomLevel() + 1);\n }\n}\nclass EditorFontZoomOut extends EditorAction {\n constructor() {\n super({\n id: 'editor.action.fontZoomOut',\n label: localize2(1055, \"Decrease Editor Font Size\"),\n precondition: undefined\n });\n }\n run(accessor, editor) {\n EditorZoom.setZoomLevel(EditorZoom.getZoomLevel() - 1);\n }\n}\nclass EditorFontZoomReset extends EditorAction {\n constructor() {\n super({\n id: 'editor.action.fontZoomReset',\n label: localize2(1056, \"Reset Editor Font Size\"),\n precondition: undefined\n });\n }\n run(accessor, editor) {\n EditorZoom.setZoomLevel(0);\n }\n}\nregisterEditorAction(EditorFontZoomIn);\nregisterEditorAction(EditorFontZoomOut);\nregisterEditorAction(EditorFontZoomReset);\n",
27
- "import { CancellationToken } from '../../../../base/common/cancellation.js';\nimport { assertType } from '../../../../base/common/types.js';\nimport { URI } from '../../../../base/common/uri.js';\nimport { ITextModelService } from '../../../common/services/resolverService.js';\nimport { IOutlineModelService } from './outlineModel.js';\nimport { CommandsRegistry } from '../../../../platform/commands/common/commands.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nCommandsRegistry.registerCommand('_executeDocumentSymbolProvider', async function (accessor, ...args) {\n const [resource] = args;\n assertType(URI.isUri(resource));\n const outlineService = accessor.get(IOutlineModelService);\n const modelService = accessor.get(ITextModelService);\n const reference = await modelService.createModelReference(resource);\n try {\n return (await outlineService.getOrCreate(reference.object.textEditorModel, CancellationToken.None)).getTopLevelSymbols();\n }\n finally {\n reference.dispose();\n }\n});\n",
28
- "import { Disposable } from '../../../../base/common/lifecycle.js';\nimport { isEqual } from '../../../../base/common/resources.js';\nimport { registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { Range } from '../../../common/core/range.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { IContextKeyService } from '../../../../platform/contextkey/common/contextkey.js';\nimport { MarkerSeverity, IMarkerService } from '../../../../platform/markers/common/markers.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nlet MarkerSelectionStatus = class MarkerSelectionStatus extends Disposable {\n static { this.ID = 'editor.contrib.markerSelectionStatus'; }\n constructor(_editor, contextKeyService, _markerService) {\n super();\n this._editor = _editor;\n this._markerService = _markerService;\n this._ctxHasDiagnostics = EditorContextKeys.selectionHasDiagnostics.bindTo(contextKeyService);\n this._store.add(this._editor.onDidChangeCursorSelection(() => this._update()));\n this._store.add(this._editor.onDidChangeModel(() => this._update()));\n this._store.add(this._markerService.onMarkerChanged(e => {\n const model = this._editor.getModel();\n if (model && e.some(uri => isEqual(uri, model.uri))) {\n this._update();\n }\n }));\n this._update();\n }\n dispose() {\n this._ctxHasDiagnostics.reset();\n super.dispose();\n }\n _update() {\n const model = this._editor.getModel();\n const selection = this._editor.getSelection();\n if (!model || !selection) {\n this._ctxHasDiagnostics.reset();\n return;\n }\n const markers = this._markerService.read({\n resource: model.uri,\n severities: MarkerSeverity.Error | MarkerSeverity.Warning | MarkerSeverity.Info\n });\n const hasIntersecting = markers.some(marker => Range.areIntersecting({ startLineNumber: marker.startLineNumber, startColumn: marker.startColumn, endLineNumber: marker.endLineNumber, endColumn: marker.endColumn }, selection));\n this._ctxHasDiagnostics.set(hasIntersecting);\n }\n};\nMarkerSelectionStatus = __decorate([\n __param(1, IContextKeyService),\n __param(2, IMarkerService)\n], MarkerSelectionStatus);\nregisterEditorContribution(MarkerSelectionStatus.ID, MarkerSelectionStatus, 1 /* EditorContributionInstantiation.AfterFirstRender */);\n",
29
- "import { getActiveWindow } from '../../../../base/browser/dom.js';\nimport { VSBuffer } from '../../../../base/common/buffer.js';\nimport { URI } from '../../../../base/common/uri.js';\nimport { localize2, localize } from '../../../../nls.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nimport { ContextKeyExpr } from '../../../../platform/contextkey/common/contextkey.js';\nimport { IFileService } from '../../../../platform/files/common/files.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { ILogService } from '../../../../platform/log/common/log.js';\nimport { IQuickInputService } from '../../../../platform/quickinput/common/quickInput.js';\nimport { IWorkspaceContextService } from '../../../../platform/workspace/common/workspace.js';\nimport { registerEditorAction, EditorAction } from '../../../browser/editorExtensions.js';\nimport { ensureNonNullable } from '../../../browser/gpu/gpuUtils.js';\nimport { GlyphRasterizer } from '../../../browser/gpu/raster/glyphRasterizer.js';\nimport { ViewGpuContext } from '../../../browser/gpu/viewGpuContext.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nclass DebugEditorGpuRendererAction extends EditorAction {\n constructor() {\n super({\n id: 'editor.action.debugEditorGpuRenderer',\n label: localize2(1144, \"Developer: Debug Editor GPU Renderer\"),\n // TODO: Why doesn't `ContextKeyExpr.equals('config:editor.experimentalGpuAcceleration', 'on')` work?\n precondition: ContextKeyExpr.true(),\n });\n }\n async run(accessor, editor) {\n const instantiationService = accessor.get(IInstantiationService);\n const quickInputService = accessor.get(IQuickInputService);\n const choice = await quickInputService.pick([\n {\n label: localize(1141, \"Log Texture Atlas Stats\"),\n id: 'logTextureAtlasStats',\n },\n {\n label: localize(1142, \"Save Texture Atlas\"),\n id: 'saveTextureAtlas',\n },\n {\n label: localize(1143, \"Draw Glyph\"),\n id: 'drawGlyph',\n },\n ], { canPickMany: false });\n if (!choice) {\n return;\n }\n switch (choice.id) {\n case 'logTextureAtlasStats':\n instantiationService.invokeFunction(accessor => {\n const logService = accessor.get(ILogService);\n const atlas = ViewGpuContext.atlas;\n if (!ViewGpuContext.atlas) {\n logService.error('No texture atlas found');\n return;\n }\n const stats = atlas.getStats();\n logService.info(['Texture atlas stats', ...stats].join('\\n\\n'));\n });\n break;\n case 'saveTextureAtlas':\n instantiationService.invokeFunction(async (accessor) => {\n const workspaceContextService = accessor.get(IWorkspaceContextService);\n const fileService = accessor.get(IFileService);\n const folders = workspaceContextService.getWorkspace().folders;\n if (folders.length > 0) {\n const atlas = ViewGpuContext.atlas;\n const promises = [];\n for (const [layerIndex, page] of atlas.pages.entries()) {\n promises.push(...[\n fileService.writeFile(URI.joinPath(folders[0].uri, `textureAtlasPage${layerIndex}_actual.png`), VSBuffer.wrap(new Uint8Array(await (await page.source.convertToBlob()).arrayBuffer()))),\n fileService.writeFile(URI.joinPath(folders[0].uri, `textureAtlasPage${layerIndex}_usage.png`), VSBuffer.wrap(new Uint8Array(await (await page.getUsagePreview()).arrayBuffer()))),\n ]);\n }\n await Promise.all(promises);\n }\n });\n break;\n case 'drawGlyph':\n instantiationService.invokeFunction(async (accessor) => {\n const configurationService = accessor.get(IConfigurationService);\n const fileService = accessor.get(IFileService);\n const quickInputService = accessor.get(IQuickInputService);\n const workspaceContextService = accessor.get(IWorkspaceContextService);\n const folders = workspaceContextService.getWorkspace().folders;\n if (folders.length === 0) {\n return;\n }\n const atlas = ViewGpuContext.atlas;\n const fontFamily = configurationService.getValue('editor.fontFamily');\n const fontSize = configurationService.getValue('editor.fontSize');\n const rasterizer = new GlyphRasterizer(fontSize, fontFamily, getActiveWindow().devicePixelRatio, ViewGpuContext.decorationStyleCache);\n let chars = await quickInputService.input({\n prompt: 'Enter a character to draw (prefix with 0x for code point))'\n });\n if (!chars) {\n return;\n }\n const codePoint = chars.match(/0x(?<codePoint>[0-9a-f]+)/i)?.groups?.codePoint;\n if (codePoint !== undefined) {\n chars = String.fromCodePoint(parseInt(codePoint, 16));\n }\n const tokenMetadata = 0;\n const charMetadata = 0;\n const rasterizedGlyph = atlas.getGlyph(rasterizer, chars, tokenMetadata, charMetadata, 0);\n if (!rasterizedGlyph) {\n return;\n }\n const imageData = atlas.pages[rasterizedGlyph.pageIndex].source.getContext('2d')?.getImageData(rasterizedGlyph.x, rasterizedGlyph.y, rasterizedGlyph.w, rasterizedGlyph.h);\n if (!imageData) {\n return;\n }\n const canvas = new OffscreenCanvas(imageData.width, imageData.height);\n const ctx = ensureNonNullable(canvas.getContext('2d'));\n ctx.putImageData(imageData, 0, 0);\n const blob = await canvas.convertToBlob({ type: 'image/png' });\n const resource = URI.joinPath(folders[0].uri, `glyph_${chars}_${tokenMetadata}_${fontSize}px_${fontFamily.replaceAll(/[,\\\\\\/\\.'\\s]/g, '_')}.png`);\n await fileService.writeFile(resource, VSBuffer.wrap(new Uint8Array(await blob.arrayBuffer())));\n });\n break;\n }\n }\n}\nregisterEditorAction(DebugEditorGpuRendererAction);\n",
30
- "import { registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { HoverParticipantRegistry } from '../../hover/browser/hoverTypes.js';\nimport { InlayHintsController } from './inlayHintsController.js';\nimport { InlayHintsHover } from './inlayHintsHover.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nregisterEditorContribution(InlayHintsController.ID, InlayHintsController, 1 /* EditorContributionInstantiation.AfterFirstRender */);\nHoverParticipantRegistry.register(InlayHintsHover);\n",
31
- "import { Selection } from '../../../common/core/selection.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nclass InPlaceReplaceCommand {\n constructor(editRange, originalSelection, text) {\n this._editRange = editRange;\n this._originalSelection = originalSelection;\n this._text = text;\n }\n getEditOperations(model, builder) {\n builder.addTrackedEditOperation(this._editRange, this._text);\n }\n computeCursorState(model, helper) {\n const inverseEditOperations = helper.getInverseEditOperations();\n const srcRange = inverseEditOperations[0].range;\n if (!this._originalSelection.isEmpty()) {\n // Preserve selection and extends to typed text\n return new Selection(srcRange.endLineNumber, srcRange.endColumn - this._text.length, srcRange.endLineNumber, srcRange.endColumn);\n }\n return new Selection(srcRange.endLineNumber, Math.min(this._originalSelection.positionColumn, srcRange.endColumn), srcRange.endLineNumber, Math.min(this._originalSelection.positionColumn, srcRange.endColumn));\n }\n}\n\nexport { InPlaceReplaceCommand };\n",
32
- "import { createCancelablePromise, timeout } from '../../../../base/common/async.js';\nimport { onUnexpectedError } from '../../../../base/common/errors.js';\nimport { EditorState } from '../../editorState/browser/editorState.js';\nimport { registerEditorContribution, registerEditorAction, EditorAction } from '../../../browser/editorExtensions.js';\nimport { Range } from '../../../common/core/range.js';\nimport { Selection } from '../../../common/core/selection.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { ModelDecorationOptions } from '../../../common/model/textModel.js';\nimport { IEditorWorkerService } from '../../../common/services/editorWorker.js';\nimport { localize2 } from '../../../../nls.js';\nimport { InPlaceReplaceCommand } from './inPlaceReplaceCommand.js';\nimport './inPlaceReplace.css';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar InPlaceReplaceController_1;\nlet InPlaceReplaceController = class InPlaceReplaceController {\n static { InPlaceReplaceController_1 = this; }\n static { this.ID = 'editor.contrib.inPlaceReplaceController'; }\n static get(editor) {\n return editor.getContribution(InPlaceReplaceController_1.ID);\n }\n static { this.DECORATION = ModelDecorationOptions.register({\n description: 'in-place-replace',\n className: 'valueSetReplacement'\n }); }\n constructor(editor, editorWorkerService) {\n this.editor = editor;\n this.editorWorkerService = editorWorkerService;\n this.decorations = this.editor.createDecorationsCollection();\n }\n dispose() {\n }\n run(source, up) {\n // cancel any pending request\n this.currentRequest?.cancel();\n const editorSelection = this.editor.getSelection();\n const model = this.editor.getModel();\n if (!model || !editorSelection) {\n return undefined;\n }\n let selection = editorSelection;\n if (selection.startLineNumber !== selection.endLineNumber) {\n // Can't accept multiline selection\n return undefined;\n }\n const state = new EditorState(this.editor, 1 /* CodeEditorStateFlag.Value */ | 4 /* CodeEditorStateFlag.Position */);\n const modelURI = model.uri;\n if (!this.editorWorkerService.canNavigateValueSet(modelURI)) {\n return Promise.resolve(undefined);\n }\n this.currentRequest = createCancelablePromise(token => this.editorWorkerService.navigateValueSet(modelURI, selection, up));\n return this.currentRequest.then(result => {\n if (!result || !result.range || !result.value) {\n // No proper result\n return;\n }\n if (!state.validate(this.editor)) {\n // state has changed\n return;\n }\n // Selection\n const editRange = Range.lift(result.range);\n let highlightRange = result.range;\n const diff = result.value.length - (selection.endColumn - selection.startColumn);\n // highlight\n highlightRange = {\n startLineNumber: highlightRange.startLineNumber,\n startColumn: highlightRange.startColumn,\n endLineNumber: highlightRange.endLineNumber,\n endColumn: highlightRange.startColumn + result.value.length\n };\n if (diff > 1) {\n selection = new Selection(selection.startLineNumber, selection.startColumn, selection.endLineNumber, selection.endColumn + diff - 1);\n }\n // Insert new text\n const command = new InPlaceReplaceCommand(editRange, selection, result.value);\n this.editor.pushUndoStop();\n this.editor.executeCommand(source, command);\n this.editor.pushUndoStop();\n // add decoration\n this.decorations.set([{\n range: highlightRange,\n options: InPlaceReplaceController_1.DECORATION\n }]);\n // remove decoration after delay\n this.decorationRemover?.cancel();\n this.decorationRemover = timeout(350);\n this.decorationRemover.then(() => this.decorations.clear()).catch(onUnexpectedError);\n }).catch(onUnexpectedError);\n }\n};\nInPlaceReplaceController = InPlaceReplaceController_1 = __decorate([\n __param(1, IEditorWorkerService)\n], InPlaceReplaceController);\nclass InPlaceReplaceUp extends EditorAction {\n constructor() {\n super({\n id: 'editor.action.inPlaceReplace.up',\n label: localize2(1286, \"Replace with Previous Value\"),\n precondition: EditorContextKeys.writable,\n kbOpts: {\n kbExpr: EditorContextKeys.editorTextFocus,\n primary: 2048 /* KeyMod.CtrlCmd */ | 1024 /* KeyMod.Shift */ | 87 /* KeyCode.Comma */,\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n run(accessor, editor) {\n const controller = InPlaceReplaceController.get(editor);\n if (!controller) {\n return Promise.resolve(undefined);\n }\n return controller.run(this.id, false);\n }\n}\nclass InPlaceReplaceDown extends EditorAction {\n constructor() {\n super({\n id: 'editor.action.inPlaceReplace.down',\n label: localize2(1287, \"Replace with Next Value\"),\n precondition: EditorContextKeys.writable,\n kbOpts: {\n kbExpr: EditorContextKeys.editorTextFocus,\n primary: 2048 /* KeyMod.CtrlCmd */ | 1024 /* KeyMod.Shift */ | 89 /* KeyCode.Period */,\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n run(accessor, editor) {\n const controller = InPlaceReplaceController.get(editor);\n if (!controller) {\n return Promise.resolve(undefined);\n }\n return controller.run(this.id, true);\n }\n}\nregisterEditorContribution(InPlaceReplaceController.ID, InPlaceReplaceController, 4 /* EditorContributionInstantiation.Lazy */);\nregisterEditorAction(InPlaceReplaceUp);\nregisterEditorAction(InPlaceReplaceDown);\n",
33
- "import { lastNonWhitespaceIndex } from '../../../../base/common/strings.js';\nimport { EditOperation } from '../../../common/core/editOperation.js';\nimport { Position } from '../../../common/core/position.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nclass InsertFinalNewLineCommand {\n constructor(selection) {\n this._selection = selection;\n this._selectionId = null;\n }\n getEditOperations(model, builder) {\n const op = insertFinalNewLine(model);\n if (op) {\n builder.addEditOperation(op.range, op.text);\n }\n this._selectionId = builder.trackSelection(this._selection);\n }\n computeCursorState(model, helper) {\n return helper.getTrackedSelection(this._selectionId);\n }\n}\n/**\n * Generate edit operations for inserting a final new line if needed.\n * Returns undefined if no edit is needed.\n */\nfunction insertFinalNewLine(model) {\n const lineCount = model.getLineCount();\n const lastLine = model.getLineContent(lineCount);\n const lastLineIsEmptyOrWhitespace = lastNonWhitespaceIndex(lastLine) === -1;\n if (!lineCount || lastLineIsEmptyOrWhitespace) {\n return;\n }\n return EditOperation.insert(new Position(lineCount, model.getLineMaxColumn(lineCount)), model.getEOL());\n}\n\nexport { InsertFinalNewLineCommand, insertFinalNewLine };\n",
34
- "import { EditorAction, registerEditorAction } from '../../../browser/editorExtensions.js';\nimport { InsertFinalNewLineCommand } from './insertFinalNewLineCommand.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { localize2 } from '../../../../nls.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nclass InsertFinalNewLineAction extends EditorAction {\n static { this.ID = 'editor.action.insertFinalNewLine'; }\n constructor() {\n super({\n id: InsertFinalNewLineAction.ID,\n label: localize2(1288, \"Insert Final New Line\"),\n precondition: EditorContextKeys.writable\n });\n }\n run(_accessor, editor, args) {\n const selection = editor.getSelection();\n if (selection === null) {\n return;\n }\n const command = new InsertFinalNewLineCommand(selection);\n editor.pushUndoStop();\n editor.executeCommands(this.id, [command]);\n editor.pushUndoStop();\n }\n}\nregisterEditorAction(InsertFinalNewLineAction);\n\nexport { InsertFinalNewLineAction };\n",
35
- "import { isNonEmptyArray } from '../../../../base/common/arrays.js';\nimport { Delayer, first } from '../../../../base/common/async.js';\nimport { CancellationTokenSource, CancellationToken } from '../../../../base/common/cancellation.js';\nimport { Color } from '../../../../base/common/color.js';\nimport { isCancellationError, onUnexpectedError, onUnexpectedExternalError } from '../../../../base/common/errors.js';\nimport { Event } from '../../../../base/common/event.js';\nimport { Disposable, DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { commonPrefixLength, commonSuffixLength } from '../../../../base/common/strings.js';\nimport { URI } from '../../../../base/common/uri.js';\nimport { EditorCommand, registerEditorCommand, registerModelAndPositionCommand, registerEditorContribution, registerEditorAction, EditorAction } from '../../../browser/editorExtensions.js';\nimport { ICodeEditorService } from '../../../browser/services/codeEditorService.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { ModelDecorationOptions } from '../../../common/model/textModel.js';\nimport { ILanguageConfigurationService } from '../../../common/languages/languageConfigurationRegistry.js';\nimport { localize, localize2 } from '../../../../nls.js';\nimport { RawContextKey, IContextKeyService, ContextKeyExpr } from '../../../../platform/contextkey/common/contextkey.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { registerColor } from '../../../../platform/theme/common/colorUtils.js';\nimport '../../../../platform/theme/common/colors/baseColors.js';\nimport '../../../../platform/theme/common/colors/chartsColors.js';\nimport '../../../../platform/theme/common/colors/editorColors.js';\nimport '../../../../platform/theme/common/colors/inputColors.js';\nimport '../../../../platform/theme/common/colors/listColors.js';\nimport '../../../../platform/theme/common/colors/menuColors.js';\nimport '../../../../platform/theme/common/colors/minimapColors.js';\nimport '../../../../platform/theme/common/colors/miscColors.js';\nimport '../../../../platform/theme/common/colors/quickpickColors.js';\nimport '../../../../platform/theme/common/colors/searchColors.js';\nimport { ILanguageFeatureDebounceService } from '../../../common/services/languageFeatureDebounce.js';\nimport { StopWatch } from '../../../../base/common/stopwatch.js';\nimport './linkedEditing.css';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar LinkedEditingContribution_1;\nconst CONTEXT_ONTYPE_RENAME_INPUT_VISIBLE = new RawContextKey('LinkedEditingInputVisible', false);\nconst DECORATION_CLASS_NAME = 'linked-editing-decoration';\nlet LinkedEditingContribution = class LinkedEditingContribution extends Disposable {\n static { LinkedEditingContribution_1 = this; }\n static { this.ID = 'editor.contrib.linkedEditing'; }\n static { this.DECORATION = ModelDecorationOptions.register({\n description: 'linked-editing',\n stickiness: 0 /* TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges */,\n className: DECORATION_CLASS_NAME\n }); }\n static get(editor) {\n return editor.getContribution(LinkedEditingContribution_1.ID);\n }\n constructor(editor, contextKeyService, languageFeaturesService, languageConfigurationService, languageFeatureDebounceService) {\n super();\n this.languageConfigurationService = languageConfigurationService;\n this._syncRangesToken = 0;\n this._localToDispose = this._register(new DisposableStore());\n this._editor = editor;\n this._providers = languageFeaturesService.linkedEditingRangeProvider;\n this._enabled = false;\n this._visibleContextKey = CONTEXT_ONTYPE_RENAME_INPUT_VISIBLE.bindTo(contextKeyService);\n this._debounceInformation = languageFeatureDebounceService.for(this._providers, 'Linked Editing', { max: 200 });\n this._currentDecorations = this._editor.createDecorationsCollection();\n this._languageWordPattern = null;\n this._currentWordPattern = null;\n this._ignoreChangeEvent = false;\n this._localToDispose = this._register(new DisposableStore());\n this._rangeUpdateTriggerPromise = null;\n this._rangeSyncTriggerPromise = null;\n this._currentRequestCts = null;\n this._currentRequestPosition = null;\n this._currentRequestModelVersion = null;\n this._register(this._editor.onDidChangeModel(() => this.reinitialize(true)));\n this._register(this._editor.onDidChangeConfiguration(e => {\n if (e.hasChanged(78 /* EditorOption.linkedEditing */) || e.hasChanged(106 /* EditorOption.renameOnType */)) {\n this.reinitialize(false);\n }\n }));\n this._register(this._providers.onDidChange(() => this.reinitialize(false)));\n this._register(this._editor.onDidChangeModelLanguage(() => this.reinitialize(true)));\n this.reinitialize(true);\n }\n reinitialize(forceRefresh) {\n const model = this._editor.getModel();\n const isEnabled = model !== null && (this._editor.getOption(78 /* EditorOption.linkedEditing */) || this._editor.getOption(106 /* EditorOption.renameOnType */)) && this._providers.has(model);\n if (isEnabled === this._enabled && !forceRefresh) {\n return;\n }\n this._enabled = isEnabled;\n this.clearRanges();\n this._localToDispose.clear();\n if (!isEnabled || model === null) {\n return;\n }\n this._localToDispose.add(Event.runAndSubscribe(model.onDidChangeLanguageConfiguration, () => {\n this._languageWordPattern = this.languageConfigurationService.getLanguageConfiguration(model.getLanguageId()).getWordDefinition();\n }));\n const rangeUpdateScheduler = new Delayer(this._debounceInformation.get(model));\n const triggerRangeUpdate = () => {\n this._rangeUpdateTriggerPromise = rangeUpdateScheduler.trigger(() => this.updateRanges(), this._debounceDuration ?? this._debounceInformation.get(model));\n };\n const rangeSyncScheduler = new Delayer(0);\n const triggerRangeSync = (token) => {\n this._rangeSyncTriggerPromise = rangeSyncScheduler.trigger(() => this._syncRanges(token));\n };\n this._localToDispose.add(this._editor.onDidChangeCursorPosition(() => {\n triggerRangeUpdate();\n }));\n this._localToDispose.add(this._editor.onDidChangeModelContent((e) => {\n if (!this._ignoreChangeEvent) {\n if (this._currentDecorations.length > 0) {\n const referenceRange = this._currentDecorations.getRange(0);\n if (referenceRange && e.changes.every(c => referenceRange.intersectRanges(c.range))) {\n triggerRangeSync(this._syncRangesToken);\n return;\n }\n }\n }\n triggerRangeUpdate();\n }));\n this._localToDispose.add({\n dispose: () => {\n rangeUpdateScheduler.dispose();\n rangeSyncScheduler.dispose();\n }\n });\n this.updateRanges();\n }\n _syncRanges(token) {\n // delayed invocation, make sure we're still on\n if (!this._editor.hasModel() || token !== this._syncRangesToken || this._currentDecorations.length === 0) {\n // nothing to do\n return;\n }\n const model = this._editor.getModel();\n const referenceRange = this._currentDecorations.getRange(0);\n if (!referenceRange || referenceRange.startLineNumber !== referenceRange.endLineNumber) {\n return this.clearRanges();\n }\n const referenceValue = model.getValueInRange(referenceRange);\n if (this._currentWordPattern) {\n const match = referenceValue.match(this._currentWordPattern);\n const matchLength = match ? match[0].length : 0;\n if (matchLength !== referenceValue.length) {\n return this.clearRanges();\n }\n }\n const edits = [];\n for (let i = 1, len = this._currentDecorations.length; i < len; i++) {\n const mirrorRange = this._currentDecorations.getRange(i);\n if (!mirrorRange) {\n continue;\n }\n if (mirrorRange.startLineNumber !== mirrorRange.endLineNumber) {\n edits.push({\n range: mirrorRange,\n text: referenceValue\n });\n }\n else {\n let oldValue = model.getValueInRange(mirrorRange);\n let newValue = referenceValue;\n let rangeStartColumn = mirrorRange.startColumn;\n let rangeEndColumn = mirrorRange.endColumn;\n const commonPrefixLength$1 = commonPrefixLength(oldValue, newValue);\n rangeStartColumn += commonPrefixLength$1;\n oldValue = oldValue.substr(commonPrefixLength$1);\n newValue = newValue.substr(commonPrefixLength$1);\n const commonSuffixLength$1 = commonSuffixLength(oldValue, newValue);\n rangeEndColumn -= commonSuffixLength$1;\n oldValue = oldValue.substr(0, oldValue.length - commonSuffixLength$1);\n newValue = newValue.substr(0, newValue.length - commonSuffixLength$1);\n if (rangeStartColumn !== rangeEndColumn || newValue.length !== 0) {\n edits.push({\n range: new Range(mirrorRange.startLineNumber, rangeStartColumn, mirrorRange.endLineNumber, rangeEndColumn),\n text: newValue\n });\n }\n }\n }\n if (edits.length === 0) {\n return;\n }\n try {\n this._editor.popUndoStop();\n this._ignoreChangeEvent = true;\n const prevEditOperationType = this._editor._getViewModel().getPrevEditOperationType();\n this._editor.executeEdits('linkedEditing', edits);\n this._editor._getViewModel().setPrevEditOperationType(prevEditOperationType);\n }\n finally {\n this._ignoreChangeEvent = false;\n }\n }\n dispose() {\n this.clearRanges();\n super.dispose();\n }\n clearRanges() {\n this._visibleContextKey.set(false);\n this._currentDecorations.clear();\n if (this._currentRequestCts) {\n this._currentRequestCts.cancel();\n this._currentRequestCts = null;\n this._currentRequestPosition = null;\n }\n }\n async updateRanges(force = false) {\n if (!this._editor.hasModel()) {\n this.clearRanges();\n return;\n }\n const position = this._editor.getPosition();\n if (!this._enabled && !force || this._editor.getSelections().length > 1) {\n // disabled or multicursor\n this.clearRanges();\n return;\n }\n const model = this._editor.getModel();\n const modelVersionId = model.getVersionId();\n if (this._currentRequestPosition && this._currentRequestModelVersion === modelVersionId) {\n if (position.equals(this._currentRequestPosition)) {\n return; // same position\n }\n if (this._currentDecorations.length > 0) {\n const range = this._currentDecorations.getRange(0);\n if (range && range.containsPosition(position)) {\n return; // just moving inside the existing primary range\n }\n }\n }\n if (!this._currentRequestPosition?.equals(position)) {\n // Get the current range of the first decoration (reference range)\n const currentRange = this._currentDecorations.getRange(0);\n // If there is no current range or the current range does not contain the new position, clear the ranges\n if (!currentRange?.containsPosition(position)) {\n // Clear existing decorations while we compute new ones\n this.clearRanges();\n }\n }\n this._currentRequestPosition = position;\n this._currentRequestModelVersion = modelVersionId;\n const currentRequestCts = this._currentRequestCts = new CancellationTokenSource();\n try {\n const sw = new StopWatch(false);\n const response = await getLinkedEditingRanges(this._providers, model, position, currentRequestCts.token);\n this._debounceInformation.update(model, sw.elapsed());\n if (currentRequestCts !== this._currentRequestCts) {\n return;\n }\n this._currentRequestCts = null;\n if (modelVersionId !== model.getVersionId()) {\n return;\n }\n let ranges = [];\n if (response?.ranges) {\n ranges = response.ranges;\n }\n this._currentWordPattern = response?.wordPattern || this._languageWordPattern;\n let foundReferenceRange = false;\n for (let i = 0, len = ranges.length; i < len; i++) {\n if (Range.containsPosition(ranges[i], position)) {\n foundReferenceRange = true;\n if (i !== 0) {\n const referenceRange = ranges[i];\n ranges.splice(i, 1);\n ranges.unshift(referenceRange);\n }\n break;\n }\n }\n if (!foundReferenceRange) {\n // Cannot do linked editing if the ranges are not where the cursor is...\n this.clearRanges();\n return;\n }\n const decorations = ranges.map(range => ({ range: range, options: LinkedEditingContribution_1.DECORATION }));\n this._visibleContextKey.set(true);\n this._currentDecorations.set(decorations);\n this._syncRangesToken++; // cancel any pending syncRanges call\n }\n catch (err) {\n if (!isCancellationError(err)) {\n onUnexpectedError(err);\n }\n if (this._currentRequestCts === currentRequestCts || !this._currentRequestCts) {\n // stop if we are still the latest request\n this.clearRanges();\n }\n }\n }\n};\nLinkedEditingContribution = LinkedEditingContribution_1 = __decorate([\n __param(1, IContextKeyService),\n __param(2, ILanguageFeaturesService),\n __param(3, ILanguageConfigurationService),\n __param(4, ILanguageFeatureDebounceService)\n], LinkedEditingContribution);\nclass LinkedEditingAction extends EditorAction {\n constructor() {\n super({\n id: 'editor.action.linkedEditing',\n label: localize2(1322, \"Start Linked Editing\"),\n precondition: ContextKeyExpr.and(EditorContextKeys.writable, EditorContextKeys.hasRenameProvider),\n kbOpts: {\n kbExpr: EditorContextKeys.editorTextFocus,\n primary: 2048 /* KeyMod.CtrlCmd */ | 1024 /* KeyMod.Shift */ | 60 /* KeyCode.F2 */,\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n runCommand(accessor, args) {\n const editorService = accessor.get(ICodeEditorService);\n const [uri, pos] = Array.isArray(args) && args || [undefined, undefined];\n if (URI.isUri(uri) && Position.isIPosition(pos)) {\n return editorService.openCodeEditor({ resource: uri }, editorService.getActiveCodeEditor()).then(editor => {\n if (!editor) {\n return;\n }\n editor.setPosition(pos);\n editor.invokeWithinContext(accessor => {\n this.reportTelemetry(accessor, editor);\n return this.run(accessor, editor);\n });\n }, onUnexpectedError);\n }\n return super.runCommand(accessor, args);\n }\n run(_accessor, editor) {\n const controller = LinkedEditingContribution.get(editor);\n if (controller) {\n return Promise.resolve(controller.updateRanges(true));\n }\n return Promise.resolve();\n }\n}\nconst LinkedEditingCommand = EditorCommand.bindToContribution(LinkedEditingContribution.get);\nregisterEditorCommand(new LinkedEditingCommand({\n id: 'cancelLinkedEditingInput',\n precondition: CONTEXT_ONTYPE_RENAME_INPUT_VISIBLE,\n handler: x => x.clearRanges(),\n kbOpts: {\n kbExpr: EditorContextKeys.editorTextFocus,\n weight: 100 /* KeybindingWeight.EditorContrib */ + 99,\n primary: 9 /* KeyCode.Escape */,\n secondary: [1024 /* KeyMod.Shift */ | 9 /* KeyCode.Escape */]\n }\n}));\nfunction getLinkedEditingRanges(providers, model, position, token) {\n const orderedByScore = providers.ordered(model);\n // in order of score ask the linked editing range provider\n // until someone response with a good result\n // (good = not null)\n return first(orderedByScore.map(provider => async () => {\n try {\n return await provider.provideLinkedEditingRanges(model, position, token);\n }\n catch (e) {\n onUnexpectedExternalError(e);\n return undefined;\n }\n }), result => !!result && isNonEmptyArray(result?.ranges));\n}\nregisterColor('editor.linkedEditingBackground', { dark: Color.fromHex('#f00').transparent(0.3), light: Color.fromHex('#f00').transparent(0.3), hcDark: Color.fromHex('#f00').transparent(0.3), hcLight: Color.white }, localize(1321, 'Background color when the editor auto renames on type.'));\nregisterModelAndPositionCommand('_executeLinkedEditingProvider', (_accessor, model, position) => {\n const { linkedEditingRangeProvider } = _accessor.get(ILanguageFeaturesService);\n return getLinkedEditingRanges(linkedEditingRangeProvider, model, position, CancellationToken.None);\n});\nregisterEditorContribution(LinkedEditingContribution.ID, LinkedEditingContribution, 1 /* EditorContributionInstantiation.AfterFirstRender */);\nregisterEditorAction(LinkedEditingAction);\n\nexport { CONTEXT_ONTYPE_RENAME_INPUT_VISIBLE, LinkedEditingAction, LinkedEditingContribution };\n",
36
- "import { Disposable } from '../../../../base/common/lifecycle.js';\nimport { registerEditorContribution } from '../../../browser/editorExtensions.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nclass LongLinesHelper extends Disposable {\n static { this.ID = 'editor.contrib.longLinesHelper'; }\n constructor(_editor) {\n super();\n this._editor = _editor;\n this._register(this._editor.onMouseDown((e) => {\n const stopRenderingLineAfter = this._editor.getOption(133 /* EditorOption.stopRenderingLineAfter */);\n if (stopRenderingLineAfter >= 0 && e.target.type === 6 /* MouseTargetType.CONTENT_TEXT */ && e.target.position.column >= stopRenderingLineAfter) {\n this._editor.updateOptions({\n stopRenderingLineAfter: -1\n });\n }\n }));\n }\n}\nregisterEditorContribution(LongLinesHelper.ID, LongLinesHelper, 2 /* EditorContributionInstantiation.BeforeFirstInteraction */);\n",
37
- "import { getWindow, n, addDisposableListener } from '../../../../base/browser/dom.js';\nimport { Disposable, DisposableStore } from '../../../../base/common/lifecycle.js';\nimport '../../../../base/common/observableInternal/index.js';\nimport { observableCodeEditor } from '../../../browser/observableCodeEditor.js';\nimport { Point } from '../../../common/core/2d/point.js';\nimport { AnimationFrameScheduler } from '../../../../base/browser/animatedValue.js';\nimport { appendRemoveOnDispose } from '../../../browser/widget/diffEditor/utils.js';\nimport './middleScroll.css';\nimport { autorun } from '../../../../base/common/observableInternal/reactions/autorun.js';\nimport { disposableObservableValue, observableValue } from '../../../../base/common/observableInternal/observables/observableValue.js';\nimport { derived } from '../../../../base/common/observableInternal/observables/derived.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nclass MiddleScrollController extends Disposable {\n static { this.ID = 'editor.contrib.middleScroll'; }\n constructor(_editor) {\n super();\n this._editor = _editor;\n const obsEditor = observableCodeEditor(this._editor);\n const scrollOnMiddleClick = obsEditor.getOption(171 /* EditorOption.scrollOnMiddleClick */);\n this._register(autorun(reader => {\n if (!scrollOnMiddleClick.read(reader)) {\n return;\n }\n const editorDomNode = obsEditor.domNode.read(reader);\n if (!editorDomNode) {\n return;\n }\n const scrollingSession = reader.store.add(disposableObservableValue('scrollingSession', undefined));\n reader.store.add(this._editor.onMouseDown(e => {\n const session = scrollingSession.read(undefined);\n if (session) {\n scrollingSession.set(undefined, undefined);\n return;\n }\n if (!e.event.middleButton) {\n return;\n }\n e.event.stopPropagation();\n e.event.preventDefault();\n const store = new DisposableStore();\n const initialPos = new Point(e.event.posx, e.event.posy);\n const mousePos = observeWindowMousePos(getWindow(editorDomNode), initialPos, store);\n const mouseDeltaAfterThreshold = mousePos.map(v => v.subtract(initialPos).withThreshold(5));\n const editorDomNodeRect = editorDomNode.getBoundingClientRect();\n const initialMousePosInEditor = new Point(initialPos.x - editorDomNodeRect.left, initialPos.y - editorDomNodeRect.top);\n scrollingSession.set({\n mouseDeltaAfterThreshold,\n initialMousePosInEditor,\n didScroll: false,\n dispose: () => store.dispose(),\n }, undefined);\n store.add(this._editor.onMouseUp(e => {\n const session = scrollingSession.read(undefined);\n if (session && session.didScroll) {\n // Only cancel session on release if the user scrolled during it\n scrollingSession.set(undefined, undefined);\n }\n }));\n store.add(this._editor.onKeyDown(e => {\n scrollingSession.set(undefined, undefined);\n }));\n }));\n reader.store.add(autorun(reader => {\n const session = scrollingSession.read(reader);\n if (!session) {\n return;\n }\n let lastTime = Date.now();\n reader.store.add(autorun(reader => {\n AnimationFrameScheduler.instance.invalidateOnNextAnimationFrame(reader);\n const curTime = Date.now();\n const frameDurationMs = curTime - lastTime;\n lastTime = curTime;\n const mouseDelta = session.mouseDeltaAfterThreshold.read(undefined);\n // scroll by mouse delta every 32ms\n const factor = frameDurationMs / 32;\n const scrollDelta = mouseDelta.scale(factor);\n const scrollPos = new Point(this._editor.getScrollLeft(), this._editor.getScrollTop());\n this._editor.setScrollPosition(toScrollPosition(scrollPos.add(scrollDelta)));\n if (!scrollDelta.isZero()) {\n session.didScroll = true;\n }\n }));\n const directionAttr = derived(reader => {\n const delta = session.mouseDeltaAfterThreshold.read(reader);\n let direction = '';\n direction += (delta.y < 0 ? 'n' : (delta.y > 0 ? 's' : ''));\n direction += (delta.x < 0 ? 'w' : (delta.x > 0 ? 'e' : ''));\n return direction;\n });\n reader.store.add(autorun(reader => {\n editorDomNode.setAttribute('data-scroll-direction', directionAttr.read(reader));\n }));\n }));\n const dotDomElem = reader.store.add(n.div({\n class: ['scroll-editor-on-middle-click-dot', scrollingSession.map(session => session ? '' : 'hidden')],\n style: {\n left: scrollingSession.map((session) => session ? session.initialMousePosInEditor.x : 0),\n top: scrollingSession.map((session) => session ? session.initialMousePosInEditor.y : 0),\n }\n }).toDisposableLiveElement());\n reader.store.add(appendRemoveOnDispose(editorDomNode, dotDomElem.element));\n reader.store.add(autorun(reader => {\n const session = scrollingSession.read(reader);\n editorDomNode.classList.toggle('scroll-editor-on-middle-click-editor', !!session);\n }));\n }));\n }\n}\nfunction observeWindowMousePos(window, initialPos, store) {\n const val = observableValue('pos', initialPos);\n store.add(addDisposableListener(window, 'mousemove', (e) => {\n val.set(new Point(e.pageX, e.pageY), undefined);\n }));\n return val;\n}\nfunction toScrollPosition(p) {\n return {\n scrollLeft: p.x,\n scrollTop: p.y,\n };\n}\n\nexport { MiddleScrollController };\n",
38
- "import { registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { MiddleScrollController } from './middleScrollController.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nregisterEditorContribution(MiddleScrollController.ID, MiddleScrollController, 2 /* EditorContributionInstantiation.BeforeFirstInteraction */);\n",
39
- "import { h } from '../../../../base/browser/dom.js';\nimport { structuralEquals } from '../../../../base/common/equals.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport '../../../../base/common/observableInternal/index.js';\nimport { observableCodeEditor } from '../../../browser/observableCodeEditor.js';\nimport { derivedOpts, derived } from '../../../../base/common/observableInternal/observables/derived.js';\nimport { autorun } from '../../../../base/common/observableInternal/reactions/autorun.js';\nimport { constObservable } from '../../../../base/common/observableInternal/observables/constObservable.js';\nimport { derivedObservableWithCache } from '../../../../base/common/observableInternal/utils/utils.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n/**\n * Use the editor option to set the placeholder text.\n*/\nclass PlaceholderTextContribution extends Disposable {\n static { this.ID = 'editor.contrib.placeholderText'; }\n constructor(_editor) {\n super();\n this._editor = _editor;\n this._editorObs = observableCodeEditor(this._editor);\n this._placeholderText = this._editorObs.getOption(100 /* EditorOption.placeholder */);\n this._state = derivedOpts({ owner: this, equalsFn: structuralEquals }, reader => {\n const p = this._placeholderText.read(reader);\n if (!p) {\n return undefined;\n }\n if (!this._editorObs.valueIsEmpty.read(reader)) {\n return undefined;\n }\n return { placeholder: p };\n });\n this._shouldViewBeAlive = isOrWasTrue(this, reader => this._state.read(reader)?.placeholder !== undefined);\n this._view = derived((reader) => {\n if (!this._shouldViewBeAlive.read(reader)) {\n return;\n }\n const element = h('div.editorPlaceholder');\n reader.store.add(autorun(reader => {\n const data = this._state.read(reader);\n const shouldBeVisibile = data?.placeholder !== undefined;\n element.root.style.display = shouldBeVisibile ? 'block' : 'none';\n element.root.innerText = data?.placeholder ?? '';\n }));\n reader.store.add(autorun(reader => {\n const info = this._editorObs.layoutInfo.read(reader);\n element.root.style.left = `${info.contentLeft}px`;\n element.root.style.width = (info.contentWidth - info.verticalScrollbarWidth) + 'px';\n element.root.style.top = `${this._editor.getTopForLineNumber(0)}px`;\n }));\n reader.store.add(autorun(reader => {\n element.root.style.fontFamily = this._editorObs.getOption(58 /* EditorOption.fontFamily */).read(reader);\n element.root.style.fontSize = this._editorObs.getOption(61 /* EditorOption.fontSize */).read(reader) + 'px';\n element.root.style.lineHeight = this._editorObs.getOption(75 /* EditorOption.lineHeight */).read(reader) + 'px';\n }));\n reader.store.add(this._editorObs.createOverlayWidget({\n allowEditorOverflow: false,\n minContentWidthInPx: constObservable(0),\n position: constObservable(null),\n domNode: element.root,\n }));\n });\n this._view.recomputeInitiallyAndOnChange(this._store);\n }\n}\nfunction isOrWasTrue(owner, fn) {\n return derivedObservableWithCache(owner, (reader, lastValue) => {\n if (lastValue === true) {\n return true;\n }\n return fn(reader);\n });\n}\n\nexport { PlaceholderTextContribution };\n",
40
- "import '../../../base/common/observableInternal/index.js';\nimport { IInstantiationService } from '../../instantiation/common/instantiation.js';\n\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nclass BaseClass {\n constructor(instantiationService) {\n this.instantiationService = instantiationService;\n }\n init(...params) { }\n}\n/**\n * Wrap a class in a reloadable wrapper.\n * When the wrapper is created, the original class is created.\n * When the original class changes, the instance is re-created.\n*/\nfunction wrapInReloadableClass1(getClass) {\n // eslint-disable-next-line local/code-no-any-casts\n return getClass() ;\n}\nlet BaseClass1 = class BaseClass1 extends BaseClass {\n constructor(param1, i) { super(i); this.init(param1); }\n};\nBaseClass1 = __decorate([\n __param(1, IInstantiationService)\n], BaseClass1);\n\nexport { wrapInReloadableClass1 };\n",
41
- "import './placeholderText.css';\nimport { registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { ghostTextForeground } from '../../../common/core/editorColorRegistry.js';\nimport { localize } from '../../../../nls.js';\nimport { registerColor } from '../../../../platform/theme/common/colorUtils.js';\nimport { PlaceholderTextContribution } from './placeholderTextContribution.js';\nimport { wrapInReloadableClass1 } from '../../../../platform/observable/common/wrapInReloadableClass.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nregisterEditorContribution(PlaceholderTextContribution.ID, wrapInReloadableClass1(() => PlaceholderTextContribution), 0 /* EditorContributionInstantiation.Eager */);\nregisterColor('editor.placeholder.foreground', ghostTextForeground, localize(1380, 'Foreground color of the placeholder text in the editor.'));\n",
42
- "import { RunOnceScheduler } from '../../../../base/common/async.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { ILanguageConfigurationService } from '../../../common/languages/languageConfigurationRegistry.js';\nimport { ModelDecorationOptions } from '../../../common/model/textModel.js';\nimport { IEditorWorkerService } from '../../../common/services/editorWorker.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nlet SectionHeaderDetector = class SectionHeaderDetector extends Disposable {\n static { this.ID = 'editor.sectionHeaderDetector'; }\n constructor(editor, languageConfigurationService, editorWorkerService) {\n super();\n this.editor = editor;\n this.languageConfigurationService = languageConfigurationService;\n this.editorWorkerService = editorWorkerService;\n this.decorations = this.editor.createDecorationsCollection();\n this.options = this.createOptions(editor.getOption(81 /* EditorOption.minimap */));\n this.computePromise = null;\n this.currentOccurrences = {};\n this._register(editor.onDidChangeModel((e) => {\n this.currentOccurrences = {};\n this.options = this.createOptions(editor.getOption(81 /* EditorOption.minimap */));\n this.stop();\n this.computeSectionHeaders.schedule(0);\n }));\n this._register(editor.onDidChangeModelLanguage((e) => {\n this.currentOccurrences = {};\n this.options = this.createOptions(editor.getOption(81 /* EditorOption.minimap */));\n this.stop();\n this.computeSectionHeaders.schedule(0);\n }));\n this._register(languageConfigurationService.onDidChange((e) => {\n const editorLanguageId = this.editor.getModel()?.getLanguageId();\n if (editorLanguageId && e.affects(editorLanguageId)) {\n this.currentOccurrences = {};\n this.options = this.createOptions(editor.getOption(81 /* EditorOption.minimap */));\n this.stop();\n this.computeSectionHeaders.schedule(0);\n }\n }));\n this._register(editor.onDidChangeConfiguration(e => {\n if (this.options && !e.hasChanged(81 /* EditorOption.minimap */)) {\n return;\n }\n this.options = this.createOptions(editor.getOption(81 /* EditorOption.minimap */));\n // Remove any links (for the getting disabled case)\n this.updateDecorations([]);\n // Stop any computation (for the getting disabled case)\n this.stop();\n // Start computing (for the getting enabled case)\n this.computeSectionHeaders.schedule(0);\n }));\n this._register(this.editor.onDidChangeModelContent(e => {\n this.computeSectionHeaders.schedule();\n }));\n this._register(editor.onDidChangeModelTokens((e) => {\n if (!this.computeSectionHeaders.isScheduled()) {\n this.computeSectionHeaders.schedule(1000);\n }\n }));\n this.computeSectionHeaders = this._register(new RunOnceScheduler(() => {\n this.findSectionHeaders();\n }, 250));\n this.computeSectionHeaders.schedule(0);\n }\n createOptions(minimap) {\n if (!minimap || !this.editor.hasModel()) {\n return undefined;\n }\n const languageId = this.editor.getModel().getLanguageId();\n if (!languageId) {\n return undefined;\n }\n const commentsConfiguration = this.languageConfigurationService.getLanguageConfiguration(languageId).comments;\n const foldingRules = this.languageConfigurationService.getLanguageConfiguration(languageId).foldingRules;\n if (!commentsConfiguration && !foldingRules?.markers) {\n return undefined;\n }\n return {\n foldingRules,\n markSectionHeaderRegex: minimap.markSectionHeaderRegex,\n findMarkSectionHeaders: minimap.showMarkSectionHeaders,\n findRegionSectionHeaders: minimap.showRegionSectionHeaders,\n };\n }\n findSectionHeaders() {\n if (!this.editor.hasModel()\n || (!this.options?.findMarkSectionHeaders && !this.options?.findRegionSectionHeaders)) {\n return;\n }\n const model = this.editor.getModel();\n if (model.isDisposed() || model.isTooLargeForSyncing()) {\n return;\n }\n const modelVersionId = model.getVersionId();\n this.editorWorkerService.findSectionHeaders(model.uri, this.options)\n .then((sectionHeaders) => {\n if (model.isDisposed() || model.getVersionId() !== modelVersionId) {\n // model changed in the meantime\n return;\n }\n this.updateDecorations(sectionHeaders);\n });\n }\n updateDecorations(sectionHeaders) {\n const model = this.editor.getModel();\n if (model) {\n // Remove all section headers that should be in comments and are not in comments\n sectionHeaders = sectionHeaders.filter((sectionHeader) => {\n if (!sectionHeader.shouldBeInComments) {\n return true;\n }\n const validRange = model.validateRange(sectionHeader.range);\n const tokens = model.tokenization.getLineTokens(validRange.startLineNumber);\n const idx = tokens.findTokenIndexAtOffset(validRange.startColumn - 1);\n const tokenType = tokens.getStandardTokenType(idx);\n const languageIdAtPosition = model.getLanguageIdAtPosition(validRange.startLineNumber, validRange.startColumn);\n const tokenLanguageId = tokens.getLanguageId(idx);\n return (tokenLanguageId === languageIdAtPosition && tokenType === 1 /* StandardTokenType.Comment */);\n });\n }\n const oldDecorations = Object.values(this.currentOccurrences).map(occurrence => occurrence.decorationId);\n const newDecorations = sectionHeaders.map(sectionHeader => decoration(sectionHeader));\n this.editor.changeDecorations((changeAccessor) => {\n const decorations = changeAccessor.deltaDecorations(oldDecorations, newDecorations);\n this.currentOccurrences = {};\n for (let i = 0, len = decorations.length; i < len; i++) {\n const occurrence = { sectionHeader: sectionHeaders[i], decorationId: decorations[i] };\n this.currentOccurrences[occurrence.decorationId] = occurrence;\n }\n });\n }\n stop() {\n this.computeSectionHeaders.cancel();\n if (this.computePromise) {\n this.computePromise.cancel();\n this.computePromise = null;\n }\n }\n dispose() {\n super.dispose();\n this.stop();\n this.decorations.clear();\n }\n};\nSectionHeaderDetector = __decorate([\n __param(1, ILanguageConfigurationService),\n __param(2, IEditorWorkerService)\n], SectionHeaderDetector);\nfunction decoration(sectionHeader) {\n return {\n range: sectionHeader.range,\n options: ModelDecorationOptions.createDynamic({\n description: 'section-header',\n stickiness: 3 /* TrackedRangeStickiness.GrowsOnlyWhenTypingAfter */,\n collapseOnReplaceEdit: true,\n minimap: {\n color: undefined,\n position: 1 /* MinimapPosition.Inline */,\n sectionHeaderStyle: sectionHeader.hasSeparatorLine ? 2 /* MinimapSectionHeaderStyle.Underlined */ : 1 /* MinimapSectionHeaderStyle.Normal */,\n sectionHeaderText: sectionHeader.text,\n },\n })\n };\n}\nregisterEditorContribution(SectionHeaderDetector.ID, SectionHeaderDetector, 1 /* EditorContributionInstantiation.AfterFirstRender */);\n\nexport { SectionHeaderDetector };\n",
43
- "import { VSBuffer } from '../../../base/common/buffer.js';\nimport { isLittleEndian } from '../../../base/common/platform.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nfunction reverseEndianness(arr) {\n for (let i = 0, len = arr.length; i < len; i += 4) {\n // flip bytes 0<->3 and 1<->2\n const b0 = arr[i + 0];\n const b1 = arr[i + 1];\n const b2 = arr[i + 2];\n const b3 = arr[i + 3];\n arr[i + 0] = b3;\n arr[i + 1] = b2;\n arr[i + 2] = b1;\n arr[i + 3] = b0;\n }\n}\nfunction toLittleEndianBuffer(arr) {\n const uint8Arr = new Uint8Array(arr.buffer, arr.byteOffset, arr.length * 4);\n if (!isLittleEndian()) {\n // the byte order must be changed\n reverseEndianness(uint8Arr);\n }\n return VSBuffer.wrap(uint8Arr);\n}\nfunction encodeSemanticTokensDto(semanticTokens) {\n const dest = new Uint32Array(encodeSemanticTokensDtoSize(semanticTokens));\n let offset = 0;\n dest[offset++] = semanticTokens.id;\n if (semanticTokens.type === 'full') {\n dest[offset++] = 1 /* EncodedSemanticTokensType.Full */;\n dest[offset++] = semanticTokens.data.length;\n dest.set(semanticTokens.data, offset);\n offset += semanticTokens.data.length;\n }\n else {\n dest[offset++] = 2 /* EncodedSemanticTokensType.Delta */;\n dest[offset++] = semanticTokens.deltas.length;\n for (const delta of semanticTokens.deltas) {\n dest[offset++] = delta.start;\n dest[offset++] = delta.deleteCount;\n if (delta.data) {\n dest[offset++] = delta.data.length;\n dest.set(delta.data, offset);\n offset += delta.data.length;\n }\n else {\n dest[offset++] = 0;\n }\n }\n }\n return toLittleEndianBuffer(dest);\n}\nfunction encodeSemanticTokensDtoSize(semanticTokens) {\n let result = 0;\n result += (1 // id\n + 1 // type\n );\n if (semanticTokens.type === 'full') {\n result += (1 // data length\n + semanticTokens.data.length);\n }\n else {\n result += (1 // delta count\n );\n result += (1 // start\n + 1 // deleteCount\n + 1 // data length\n ) * semanticTokens.deltas.length;\n for (const delta of semanticTokens.deltas) {\n if (delta.data) {\n result += delta.data.length;\n }\n }\n }\n return result;\n}\n\nexport { encodeSemanticTokensDto };\n",
44
- "import { CancellationToken } from '../../../../base/common/cancellation.js';\nimport { onUnexpectedExternalError } from '../../../../base/common/errors.js';\nimport { URI } from '../../../../base/common/uri.js';\nimport { IModelService } from '../../../common/services/model.js';\nimport { CommandsRegistry, ICommandService } from '../../../../platform/commands/common/commands.js';\nimport { assertType } from '../../../../base/common/types.js';\nimport { encodeSemanticTokensDto } from '../../../common/services/semanticTokensDto.js';\nimport { Range } from '../../../common/core/range.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nfunction isSemanticTokens(v) {\n return v && !!(v.data);\n}\nfunction isSemanticTokensEdits(v) {\n return v && Array.isArray(v.edits);\n}\nclass DocumentSemanticTokensResult {\n constructor(provider, tokens, error) {\n this.provider = provider;\n this.tokens = tokens;\n this.error = error;\n }\n}\nfunction hasDocumentSemanticTokensProvider(registry, model) {\n return registry.has(model);\n}\nfunction getDocumentSemanticTokensProviders(registry, model) {\n const groups = registry.orderedGroups(model);\n return (groups.length > 0 ? groups[0] : []);\n}\nasync function getDocumentSemanticTokens(registry, model, lastProvider, lastResultId, token) {\n const providers = getDocumentSemanticTokensProviders(registry, model);\n // Get tokens from all providers at the same time.\n const results = await Promise.all(providers.map(async (provider) => {\n let result;\n let error = null;\n try {\n result = await provider.provideDocumentSemanticTokens(model, (provider === lastProvider ? lastResultId : null), token);\n }\n catch (err) {\n error = err;\n result = null;\n }\n if (!result || (!isSemanticTokens(result) && !isSemanticTokensEdits(result))) {\n result = null;\n }\n return new DocumentSemanticTokensResult(provider, result, error);\n }));\n // Try to return the first result with actual tokens or\n // the first result which threw an error (!!)\n for (const result of results) {\n if (result.error) {\n throw result.error;\n }\n if (result.tokens) {\n return result;\n }\n }\n // Return the first result, even if it doesn't have tokens\n if (results.length > 0) {\n return results[0];\n }\n return null;\n}\nfunction _getDocumentSemanticTokensProviderHighestGroup(registry, model) {\n const result = registry.orderedGroups(model);\n return (result.length > 0 ? result[0] : null);\n}\nclass DocumentRangeSemanticTokensResult {\n constructor(provider, tokens) {\n this.provider = provider;\n this.tokens = tokens;\n }\n}\nfunction hasDocumentRangeSemanticTokensProvider(providers, model) {\n return providers.has(model);\n}\nfunction getDocumentRangeSemanticTokensProviders(providers, model) {\n const groups = providers.orderedGroups(model);\n return (groups.length > 0 ? groups[0] : []);\n}\nasync function getDocumentRangeSemanticTokens(registry, model, range, token) {\n const providers = getDocumentRangeSemanticTokensProviders(registry, model);\n // Get tokens from all providers at the same time.\n const results = await Promise.all(providers.map(async (provider) => {\n let result;\n try {\n result = await provider.provideDocumentRangeSemanticTokens(model, range, token);\n }\n catch (err) {\n onUnexpectedExternalError(err);\n result = null;\n }\n if (!result || !isSemanticTokens(result)) {\n result = null;\n }\n return new DocumentRangeSemanticTokensResult(provider, result);\n }));\n // Try to return the first result with actual tokens\n for (const result of results) {\n if (result.tokens) {\n return result;\n }\n }\n // Return the first result, even if it doesn't have tokens\n if (results.length > 0) {\n return results[0];\n }\n return null;\n}\nCommandsRegistry.registerCommand('_provideDocumentSemanticTokensLegend', async (accessor, ...args) => {\n const [uri] = args;\n assertType(uri instanceof URI);\n const model = accessor.get(IModelService).getModel(uri);\n if (!model) {\n return undefined;\n }\n const { documentSemanticTokensProvider } = accessor.get(ILanguageFeaturesService);\n const providers = _getDocumentSemanticTokensProviderHighestGroup(documentSemanticTokensProvider, model);\n if (!providers) {\n // there is no provider => fall back to a document range semantic tokens provider\n return accessor.get(ICommandService).executeCommand('_provideDocumentRangeSemanticTokensLegend', uri);\n }\n return providers[0].getLegend();\n});\nCommandsRegistry.registerCommand('_provideDocumentSemanticTokens', async (accessor, ...args) => {\n const [uri] = args;\n assertType(uri instanceof URI);\n const model = accessor.get(IModelService).getModel(uri);\n if (!model) {\n return undefined;\n }\n const { documentSemanticTokensProvider } = accessor.get(ILanguageFeaturesService);\n if (!hasDocumentSemanticTokensProvider(documentSemanticTokensProvider, model)) {\n // there is no provider => fall back to a document range semantic tokens provider\n return accessor.get(ICommandService).executeCommand('_provideDocumentRangeSemanticTokens', uri, model.getFullModelRange());\n }\n const r = await getDocumentSemanticTokens(documentSemanticTokensProvider, model, null, null, CancellationToken.None);\n if (!r) {\n return undefined;\n }\n const { provider, tokens } = r;\n if (!tokens || !isSemanticTokens(tokens)) {\n return undefined;\n }\n const buff = encodeSemanticTokensDto({\n id: 0,\n type: 'full',\n data: tokens.data\n });\n if (tokens.resultId) {\n provider.releaseDocumentSemanticTokens(tokens.resultId);\n }\n return buff;\n});\nCommandsRegistry.registerCommand('_provideDocumentRangeSemanticTokensLegend', async (accessor, ...args) => {\n const [uri, range] = args;\n assertType(uri instanceof URI);\n const model = accessor.get(IModelService).getModel(uri);\n if (!model) {\n return undefined;\n }\n const { documentRangeSemanticTokensProvider } = accessor.get(ILanguageFeaturesService);\n const providers = getDocumentRangeSemanticTokensProviders(documentRangeSemanticTokensProvider, model);\n if (providers.length === 0) {\n // no providers\n return undefined;\n }\n if (providers.length === 1) {\n // straight forward case, just a single provider\n return providers[0].getLegend();\n }\n if (!range || !Range.isIRange(range)) {\n // if no range is provided, we cannot support multiple providers\n // as we cannot fall back to the one which would give results\n // => return the first legend for backwards compatibility and print a warning\n console.warn(`provideDocumentRangeSemanticTokensLegend might be out-of-sync with provideDocumentRangeSemanticTokens unless a range argument is passed in`);\n return providers[0].getLegend();\n }\n const result = await getDocumentRangeSemanticTokens(documentRangeSemanticTokensProvider, model, Range.lift(range), CancellationToken.None);\n if (!result) {\n return undefined;\n }\n return result.provider.getLegend();\n});\nCommandsRegistry.registerCommand('_provideDocumentRangeSemanticTokens', async (accessor, ...args) => {\n const [uri, range] = args;\n assertType(uri instanceof URI);\n assertType(Range.isIRange(range));\n const model = accessor.get(IModelService).getModel(uri);\n if (!model) {\n return undefined;\n }\n const { documentRangeSemanticTokensProvider } = accessor.get(ILanguageFeaturesService);\n const result = await getDocumentRangeSemanticTokens(documentRangeSemanticTokensProvider, model, Range.lift(range), CancellationToken.None);\n if (!result || !result.tokens) {\n // there is no provider or it didn't return tokens\n return undefined;\n }\n return encodeSemanticTokensDto({\n id: 0,\n type: 'full',\n data: result.tokens.data\n });\n});\n\nexport { DocumentSemanticTokensResult, getDocumentRangeSemanticTokens, getDocumentSemanticTokens, hasDocumentRangeSemanticTokensProvider, hasDocumentSemanticTokensProvider, isSemanticTokens, isSemanticTokensEdits };\n",
45
- "/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nconst SEMANTIC_HIGHLIGHTING_SETTING_ID = 'editor.semanticHighlighting';\nfunction isSemanticColoringEnabled(model, themeService, configurationService) {\n const setting = configurationService.getValue(SEMANTIC_HIGHLIGHTING_SETTING_ID, { overrideIdentifier: model.getLanguageId(), resource: model.uri })?.enabled;\n if (typeof setting === 'boolean') {\n return setting;\n }\n return themeService.getColorTheme().semanticHighlighting;\n}\n\nexport { SEMANTIC_HIGHLIGHTING_SETTING_ID, isSemanticColoringEnabled };\n",
46
- "import { RunOnceScheduler } from '../../../../base/common/async.js';\nimport { CancellationTokenSource } from '../../../../base/common/cancellation.js';\nimport { isCancellationError, onUnexpectedError } from '../../../../base/common/errors.js';\nimport { Disposable, DisposableStore, dispose } from '../../../../base/common/lifecycle.js';\nimport { ResourceMap } from '../../../../base/common/map.js';\nimport { StopWatch } from '../../../../base/common/stopwatch.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nimport { IThemeService } from '../../../../platform/theme/common/themeService.js';\nimport { registerEditorFeature } from '../../../common/editorFeatures.js';\nimport { ILanguageFeatureDebounceService } from '../../../common/services/languageFeatureDebounce.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { IModelService } from '../../../common/services/model.js';\nimport { toMultilineTokens2 } from '../../../common/services/semanticTokensProviderStyling.js';\nimport { ISemanticTokensStylingService } from '../../../common/services/semanticTokensStyling.js';\nimport { hasDocumentSemanticTokensProvider, getDocumentSemanticTokens, isSemanticTokensEdits, isSemanticTokens } from '../common/getSemanticTokens.js';\nimport { isSemanticColoringEnabled, SEMANTIC_HIGHLIGHTING_SETTING_ID } from '../common/semanticTokensConfig.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar ModelSemanticColoring_1;\nlet DocumentSemanticTokensFeature = class DocumentSemanticTokensFeature extends Disposable {\n constructor(semanticTokensStylingService, modelService, themeService, configurationService, languageFeatureDebounceService, languageFeaturesService) {\n super();\n this._watchers = new ResourceMap();\n this._providerChangeListeners = this._register(new DisposableStore());\n const provider = languageFeaturesService.documentSemanticTokensProvider;\n const register = (model) => {\n this._watchers.get(model.uri)?.dispose();\n this._watchers.set(model.uri, new ModelSemanticColoring(model, semanticTokensStylingService, themeService, languageFeatureDebounceService, languageFeaturesService));\n };\n const deregister = (model, modelSemanticColoring) => {\n modelSemanticColoring.dispose();\n this._watchers.delete(model.uri);\n };\n const handleSettingOrThemeChange = () => {\n for (const model of modelService.getModels()) {\n const curr = this._watchers.get(model.uri);\n if (isSemanticColoringEnabled(model, themeService, configurationService)) {\n if (!curr) {\n register(model);\n }\n }\n else {\n if (curr) {\n deregister(model, curr);\n }\n }\n }\n };\n const bindProviderChangeListeners = () => {\n this._providerChangeListeners.clear();\n for (const p of provider.allNoModel()) {\n if (typeof p.onDidChange === 'function') {\n this._providerChangeListeners.add(p.onDidChange(() => {\n for (const watcher of this._watchers.values()) {\n watcher.handleProviderDidChange(p);\n }\n }));\n }\n }\n };\n modelService.getModels().forEach(model => {\n if (isSemanticColoringEnabled(model, themeService, configurationService)) {\n register(model);\n }\n });\n this._register(modelService.onModelAdded((model) => {\n if (isSemanticColoringEnabled(model, themeService, configurationService)) {\n register(model);\n }\n }));\n this._register(modelService.onModelRemoved((model) => {\n const curr = this._watchers.get(model.uri);\n if (curr) {\n deregister(model, curr);\n }\n }));\n this._register(configurationService.onDidChangeConfiguration(e => {\n if (e.affectsConfiguration(SEMANTIC_HIGHLIGHTING_SETTING_ID)) {\n handleSettingOrThemeChange();\n }\n }));\n this._register(themeService.onDidColorThemeChange(handleSettingOrThemeChange));\n bindProviderChangeListeners();\n this._register(provider.onDidChange(() => {\n bindProviderChangeListeners();\n for (const watcher of this._watchers.values()) {\n watcher.handleRegistryChange();\n }\n }));\n }\n dispose() {\n dispose(this._watchers.values());\n this._watchers.clear();\n super.dispose();\n }\n};\nDocumentSemanticTokensFeature = __decorate([\n __param(0, ISemanticTokensStylingService),\n __param(1, IModelService),\n __param(2, IThemeService),\n __param(3, IConfigurationService),\n __param(4, ILanguageFeatureDebounceService),\n __param(5, ILanguageFeaturesService)\n], DocumentSemanticTokensFeature);\nlet ModelSemanticColoring = class ModelSemanticColoring extends Disposable {\n static { ModelSemanticColoring_1 = this; }\n static { this.REQUEST_MIN_DELAY = 300; }\n static { this.REQUEST_MAX_DELAY = 2000; }\n constructor(model, _semanticTokensStylingService, themeService, languageFeatureDebounceService, languageFeaturesService) {\n super();\n this._semanticTokensStylingService = _semanticTokensStylingService;\n this._relevantProviders = new Set();\n this._isDisposed = false;\n this._model = model;\n this._provider = languageFeaturesService.documentSemanticTokensProvider;\n this._debounceInformation = languageFeatureDebounceService.for(this._provider, 'DocumentSemanticTokens', { min: ModelSemanticColoring_1.REQUEST_MIN_DELAY, max: ModelSemanticColoring_1.REQUEST_MAX_DELAY });\n this._fetchDocumentSemanticTokens = this._register(new RunOnceScheduler(() => this._fetchDocumentSemanticTokensNow(), ModelSemanticColoring_1.REQUEST_MIN_DELAY));\n this._currentDocumentResponse = null;\n this._currentDocumentRequestCancellationTokenSource = null;\n this._providersChangedDuringRequest = false;\n this._updateRelevantProviders();\n this._register(this._model.onDidChangeContent(() => {\n if (!this._fetchDocumentSemanticTokens.isScheduled()) {\n this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model));\n }\n }));\n this._register(this._model.onDidChangeAttached(() => {\n if (!this._fetchDocumentSemanticTokens.isScheduled()) {\n this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model));\n }\n }));\n this._register(this._model.onDidChangeLanguage(() => {\n // clear any outstanding state\n if (this._currentDocumentResponse) {\n this._currentDocumentResponse.dispose();\n this._currentDocumentResponse = null;\n }\n if (this._currentDocumentRequestCancellationTokenSource) {\n this._currentDocumentRequestCancellationTokenSource.cancel();\n this._currentDocumentRequestCancellationTokenSource = null;\n }\n this._setDocumentSemanticTokens(null, null, null, []);\n this._updateRelevantProviders();\n this._fetchDocumentSemanticTokens.schedule(0);\n }));\n this._register(themeService.onDidColorThemeChange(_ => {\n // clear out existing tokens\n this._setDocumentSemanticTokens(null, null, null, []);\n this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model));\n }));\n this._fetchDocumentSemanticTokens.schedule(0);\n }\n handleRegistryChange() {\n this._updateRelevantProviders();\n this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model));\n }\n handleProviderDidChange(provider) {\n if (!this._relevantProviders.has(provider)) {\n return;\n }\n if (this._currentDocumentRequestCancellationTokenSource) {\n // there is already a request running,\n this._providersChangedDuringRequest = true;\n return;\n }\n this._fetchDocumentSemanticTokens.schedule(0);\n }\n _updateRelevantProviders() {\n this._relevantProviders = new Set(this._provider.all(this._model));\n }\n dispose() {\n if (this._currentDocumentResponse) {\n this._currentDocumentResponse.dispose();\n this._currentDocumentResponse = null;\n }\n if (this._currentDocumentRequestCancellationTokenSource) {\n this._currentDocumentRequestCancellationTokenSource.cancel();\n this._currentDocumentRequestCancellationTokenSource = null;\n }\n this._setDocumentSemanticTokens(null, null, null, []);\n this._isDisposed = true;\n super.dispose();\n }\n _fetchDocumentSemanticTokensNow() {\n if (this._currentDocumentRequestCancellationTokenSource) {\n // there is already a request running, let it finish...\n return;\n }\n if (!hasDocumentSemanticTokensProvider(this._provider, this._model)) {\n // there is no provider\n if (this._currentDocumentResponse) {\n // there are semantic tokens set\n this._model.tokenization.setSemanticTokens(null, false);\n }\n return;\n }\n if (!this._model.isAttachedToEditor()) {\n // this document is not visible, there is no need to fetch semantic tokens for it\n return;\n }\n const cancellationTokenSource = new CancellationTokenSource();\n const lastProvider = this._currentDocumentResponse ? this._currentDocumentResponse.provider : null;\n const lastResultId = this._currentDocumentResponse ? this._currentDocumentResponse.resultId || null : null;\n const request = getDocumentSemanticTokens(this._provider, this._model, lastProvider, lastResultId, cancellationTokenSource.token);\n this._currentDocumentRequestCancellationTokenSource = cancellationTokenSource;\n this._providersChangedDuringRequest = false;\n const pendingChanges = [];\n const contentChangeListener = this._model.onDidChangeContent((e) => {\n pendingChanges.push(e);\n });\n const sw = new StopWatch(false);\n request.then((res) => {\n this._debounceInformation.update(this._model, sw.elapsed());\n this._currentDocumentRequestCancellationTokenSource = null;\n contentChangeListener.dispose();\n if (!res) {\n this._setDocumentSemanticTokens(null, null, null, pendingChanges);\n }\n else {\n const { provider, tokens } = res;\n const styling = this._semanticTokensStylingService.getStyling(provider);\n this._setDocumentSemanticTokens(provider, tokens || null, styling, pendingChanges);\n }\n }, (err) => {\n const isExpectedError = err && (isCancellationError(err) || (typeof err.message === 'string' && err.message.indexOf('busy') !== -1));\n if (!isExpectedError) {\n onUnexpectedError(err);\n }\n // Semantic tokens eats up all errors and considers errors to mean that the result is temporarily not available\n // The API does not have a special error kind to express this...\n this._currentDocumentRequestCancellationTokenSource = null;\n contentChangeListener.dispose();\n if (pendingChanges.length > 0 || this._providersChangedDuringRequest) {\n // More changes occurred while the request was running\n if (!this._fetchDocumentSemanticTokens.isScheduled()) {\n this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model));\n }\n }\n });\n }\n static _copy(src, srcOffset, dest, destOffset, length) {\n // protect against overflows\n length = Math.min(length, dest.length - destOffset, src.length - srcOffset);\n for (let i = 0; i < length; i++) {\n dest[destOffset + i] = src[srcOffset + i];\n }\n }\n _setDocumentSemanticTokens(provider, tokens, styling, pendingChanges) {\n const currentResponse = this._currentDocumentResponse;\n const rescheduleIfNeeded = () => {\n if ((pendingChanges.length > 0 || this._providersChangedDuringRequest) && !this._fetchDocumentSemanticTokens.isScheduled()) {\n this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model));\n }\n };\n if (this._currentDocumentResponse) {\n this._currentDocumentResponse.dispose();\n this._currentDocumentResponse = null;\n }\n if (this._isDisposed) {\n // disposed!\n if (provider && tokens) {\n provider.releaseDocumentSemanticTokens(tokens.resultId);\n }\n return;\n }\n if (!provider || !styling) {\n this._model.tokenization.setSemanticTokens(null, false);\n return;\n }\n if (!tokens) {\n this._model.tokenization.setSemanticTokens(null, true);\n rescheduleIfNeeded();\n return;\n }\n if (isSemanticTokensEdits(tokens)) {\n if (!currentResponse) {\n // not possible!\n this._model.tokenization.setSemanticTokens(null, true);\n return;\n }\n if (tokens.edits.length === 0) {\n // nothing to do!\n tokens = {\n resultId: tokens.resultId,\n data: currentResponse.data\n };\n }\n else {\n let deltaLength = 0;\n for (const edit of tokens.edits) {\n deltaLength += (edit.data ? edit.data.length : 0) - edit.deleteCount;\n }\n const srcData = currentResponse.data;\n const destData = new Uint32Array(srcData.length + deltaLength);\n let srcLastStart = srcData.length;\n let destLastStart = destData.length;\n for (let i = tokens.edits.length - 1; i >= 0; i--) {\n const edit = tokens.edits[i];\n if (edit.start > srcData.length) {\n styling.warnInvalidEditStart(currentResponse.resultId, tokens.resultId, i, edit.start, srcData.length);\n // The edits are invalid and there's no way to recover\n this._model.tokenization.setSemanticTokens(null, true);\n return;\n }\n const copyCount = srcLastStart - (edit.start + edit.deleteCount);\n if (copyCount > 0) {\n ModelSemanticColoring_1._copy(srcData, srcLastStart - copyCount, destData, destLastStart - copyCount, copyCount);\n destLastStart -= copyCount;\n }\n if (edit.data) {\n ModelSemanticColoring_1._copy(edit.data, 0, destData, destLastStart - edit.data.length, edit.data.length);\n destLastStart -= edit.data.length;\n }\n srcLastStart = edit.start;\n }\n if (srcLastStart > 0) {\n ModelSemanticColoring_1._copy(srcData, 0, destData, 0, srcLastStart);\n }\n tokens = {\n resultId: tokens.resultId,\n data: destData\n };\n }\n }\n if (isSemanticTokens(tokens)) {\n this._currentDocumentResponse = new SemanticTokensResponse(provider, tokens.resultId, tokens.data);\n const result = toMultilineTokens2(tokens, styling, this._model.getLanguageId());\n // Adjust incoming semantic tokens\n if (pendingChanges.length > 0) {\n // More changes occurred while the request was running\n // We need to:\n // 1. Adjust incoming semantic tokens\n // 2. Request them again\n for (const change of pendingChanges) {\n for (const area of result) {\n for (const singleChange of change.changes) {\n area.applyEdit(singleChange.range, singleChange.text);\n }\n }\n }\n }\n this._model.tokenization.setSemanticTokens(result, true);\n }\n else {\n this._model.tokenization.setSemanticTokens(null, true);\n }\n rescheduleIfNeeded();\n }\n};\nModelSemanticColoring = ModelSemanticColoring_1 = __decorate([\n __param(1, ISemanticTokensStylingService),\n __param(2, IThemeService),\n __param(3, ILanguageFeatureDebounceService),\n __param(4, ILanguageFeaturesService)\n], ModelSemanticColoring);\nclass SemanticTokensResponse {\n constructor(provider, resultId, data) {\n this.provider = provider;\n this.resultId = resultId;\n this.data = data;\n }\n dispose() {\n this.provider.releaseDocumentSemanticTokens(this.resultId);\n }\n}\nregisterEditorFeature(DocumentSemanticTokensFeature);\n\nexport { DocumentSemanticTokensFeature };\n",
47
- "import { RunOnceScheduler, createCancelablePromise } from '../../../../base/common/async.js';\nimport { Disposable, dispose } from '../../../../base/common/lifecycle.js';\nimport { registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { hasDocumentRangeSemanticTokensProvider, getDocumentRangeSemanticTokens } from '../common/getSemanticTokens.js';\nimport { SEMANTIC_HIGHLIGHTING_SETTING_ID, isSemanticColoringEnabled } from '../common/semanticTokensConfig.js';\nimport { toMultilineTokens2 } from '../../../common/services/semanticTokensProviderStyling.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nimport { IThemeService } from '../../../../platform/theme/common/themeService.js';\nimport { ILanguageFeatureDebounceService } from '../../../common/services/languageFeatureDebounce.js';\nimport { StopWatch } from '../../../../base/common/stopwatch.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { ISemanticTokensStylingService } from '../../../common/services/semanticTokensStyling.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nlet ViewportSemanticTokensContribution = class ViewportSemanticTokensContribution extends Disposable {\n static { this.ID = 'editor.contrib.viewportSemanticTokens'; }\n constructor(editor, _semanticTokensStylingService, _themeService, _configurationService, languageFeatureDebounceService, languageFeaturesService) {\n super();\n this._semanticTokensStylingService = _semanticTokensStylingService;\n this._themeService = _themeService;\n this._configurationService = _configurationService;\n this._editor = editor;\n this._provider = languageFeaturesService.documentRangeSemanticTokensProvider;\n this._debounceInformation = languageFeatureDebounceService.for(this._provider, 'DocumentRangeSemanticTokens', { min: 100, max: 500 });\n this._tokenizeViewport = this._register(new RunOnceScheduler(() => this._tokenizeViewportNow(), 100));\n this._outstandingRequests = [];\n this._rangeProvidersChangeListeners = [];\n const scheduleTokenizeViewport = () => {\n if (this._editor.hasModel()) {\n this._tokenizeViewport.schedule(this._debounceInformation.get(this._editor.getModel()));\n }\n };\n const bindRangeProvidersChangeListeners = () => {\n this._cleanupProviderListeners();\n if (this._editor.hasModel()) {\n const model = this._editor.getModel();\n for (const provider of this._provider.all(model)) {\n const disposable = provider.onDidChange?.(() => {\n this._cancelAll();\n scheduleTokenizeViewport();\n });\n if (disposable) {\n this._rangeProvidersChangeListeners.push(disposable);\n }\n }\n }\n };\n this._register(this._editor.onDidScrollChange(() => {\n scheduleTokenizeViewport();\n }));\n this._register(this._editor.onDidChangeModel(() => {\n bindRangeProvidersChangeListeners();\n this._cancelAll();\n scheduleTokenizeViewport();\n }));\n this._register(this._editor.onDidChangeModelLanguage(() => {\n // The cleanup of the model's semantic tokens happens in the DocumentSemanticTokensFeature\n bindRangeProvidersChangeListeners();\n this._cancelAll();\n scheduleTokenizeViewport();\n }));\n this._register(this._editor.onDidChangeModelContent((e) => {\n this._cancelAll();\n scheduleTokenizeViewport();\n }));\n bindRangeProvidersChangeListeners();\n this._register(this._provider.onDidChange(() => {\n bindRangeProvidersChangeListeners();\n this._cancelAll();\n scheduleTokenizeViewport();\n }));\n this._register(this._configurationService.onDidChangeConfiguration(e => {\n if (e.affectsConfiguration(SEMANTIC_HIGHLIGHTING_SETTING_ID)) {\n this._cancelAll();\n scheduleTokenizeViewport();\n }\n }));\n this._register(this._themeService.onDidColorThemeChange(() => {\n this._cancelAll();\n scheduleTokenizeViewport();\n }));\n scheduleTokenizeViewport();\n }\n dispose() {\n this._cleanupProviderListeners();\n super.dispose();\n }\n _cleanupProviderListeners() {\n dispose(this._rangeProvidersChangeListeners);\n this._rangeProvidersChangeListeners = [];\n }\n _cancelAll() {\n for (const request of this._outstandingRequests) {\n request.cancel();\n }\n this._outstandingRequests = [];\n }\n _removeOutstandingRequest(req) {\n for (let i = 0, len = this._outstandingRequests.length; i < len; i++) {\n if (this._outstandingRequests[i] === req) {\n this._outstandingRequests.splice(i, 1);\n return;\n }\n }\n }\n _tokenizeViewportNow() {\n if (!this._editor.hasModel()) {\n return;\n }\n const model = this._editor.getModel();\n if (model.tokenization.hasCompleteSemanticTokens()) {\n return;\n }\n if (!isSemanticColoringEnabled(model, this._themeService, this._configurationService)) {\n if (model.tokenization.hasSomeSemanticTokens()) {\n model.tokenization.setSemanticTokens(null, false);\n }\n return;\n }\n if (!hasDocumentRangeSemanticTokensProvider(this._provider, model)) {\n if (model.tokenization.hasSomeSemanticTokens()) {\n model.tokenization.setSemanticTokens(null, false);\n }\n return;\n }\n const visibleRanges = this._editor.getVisibleRangesPlusViewportAboveBelow();\n this._outstandingRequests = this._outstandingRequests.concat(visibleRanges.map(range => this._requestRange(model, range)));\n }\n _requestRange(model, range) {\n const requestVersionId = model.getVersionId();\n const request = createCancelablePromise(token => Promise.resolve(getDocumentRangeSemanticTokens(this._provider, model, range, token)));\n const sw = new StopWatch(false);\n request.then((r) => {\n this._debounceInformation.update(model, sw.elapsed());\n if (!r || !r.tokens || model.isDisposed() || model.getVersionId() !== requestVersionId) {\n return;\n }\n const { provider, tokens: result } = r;\n const styling = this._semanticTokensStylingService.getStyling(provider);\n model.tokenization.setPartialSemanticTokens(range, toMultilineTokens2(result, styling, model.getLanguageId()));\n }).then(() => this._removeOutstandingRequest(request), () => this._removeOutstandingRequest(request));\n return request;\n }\n};\nViewportSemanticTokensContribution = __decorate([\n __param(1, ISemanticTokensStylingService),\n __param(2, IThemeService),\n __param(3, IConfigurationService),\n __param(4, ILanguageFeatureDebounceService),\n __param(5, ILanguageFeaturesService)\n], ViewportSemanticTokensContribution);\nregisterEditorContribution(ViewportSemanticTokensContribution.ID, ViewportSemanticTokensContribution, 1 /* EditorContributionInstantiation.AfterFirstRender */);\n\nexport { ViewportSemanticTokensContribution };\n",
48
- "import { localize2 } from '../../../nls.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nconst Categories = Object.freeze({\n View: localize2(1692, 'View'),\n Help: localize2(1693, 'Help'),\n Test: localize2(1694, 'Test'),\n File: localize2(1695, 'File'),\n Preferences: localize2(1696, 'Preferences'),\n Developer: localize2(1697, \"Developer\"),\n});\n\nexport { Categories };\n",
49
- "import { EditorAction2 } from '../../../browser/editorExtensions.js';\nimport { localize, localize2 } from '../../../../nls.js';\nimport { Categories } from '../../../../platform/action/common/actionCommonCategories.js';\nimport { MenuId } from '../../../../platform/actions/common/actions.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nimport { ContextKeyExpr } from '../../../../platform/contextkey/common/contextkey.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { StickyScrollController } from './stickyScrollController.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nclass ToggleStickyScroll extends EditorAction2 {\n constructor() {\n super({\n id: 'editor.action.toggleStickyScroll',\n title: {\n ...localize2(1498, \"Toggle Editor Sticky Scroll\"),\n mnemonicTitle: localize(1494, \"&&Toggle Editor Sticky Scroll\"),\n },\n metadata: {\n description: localize2(1499, \"Toggle/enable the editor sticky scroll which shows the nested scopes at the top of the viewport\"),\n },\n category: Categories.View,\n toggled: {\n condition: ContextKeyExpr.equals('config.editor.stickyScroll.enabled', true),\n title: localize(1495, \"Sticky Scroll\"),\n mnemonicTitle: localize(1496, \"&&Sticky Scroll\"),\n },\n menu: [\n { id: MenuId.CommandPalette },\n { id: MenuId.MenubarAppearanceMenu, group: '4_editor', order: 3 },\n { id: MenuId.StickyScrollContext }\n ]\n });\n }\n async runEditorCommand(accessor, editor) {\n const configurationService = accessor.get(IConfigurationService);\n const newValue = !configurationService.getValue('editor.stickyScroll.enabled');\n const isFocused = StickyScrollController.get(editor)?.isFocused();\n configurationService.updateValue('editor.stickyScroll.enabled', newValue);\n if (isFocused) {\n editor.focus();\n }\n }\n}\nconst weight = 100 /* KeybindingWeight.EditorContrib */;\nclass FocusStickyScroll extends EditorAction2 {\n constructor() {\n super({\n id: 'editor.action.focusStickyScroll',\n title: {\n ...localize2(1500, \"Focus Editor Sticky Scroll\"),\n mnemonicTitle: localize(1497, \"&&Focus Editor Sticky Scroll\"),\n },\n precondition: ContextKeyExpr.and(ContextKeyExpr.has('config.editor.stickyScroll.enabled'), EditorContextKeys.stickyScrollVisible),\n menu: [\n { id: MenuId.CommandPalette },\n ]\n });\n }\n runEditorCommand(_accessor, editor) {\n StickyScrollController.get(editor)?.focus();\n }\n}\nclass SelectNextStickyScrollLine extends EditorAction2 {\n constructor() {\n super({\n id: 'editor.action.selectNextStickyScrollLine',\n title: localize2(1501, \"Select the next editor sticky scroll line\"),\n precondition: EditorContextKeys.stickyScrollFocused.isEqualTo(true),\n keybinding: {\n weight,\n primary: 18 /* KeyCode.DownArrow */\n }\n });\n }\n runEditorCommand(_accessor, editor) {\n StickyScrollController.get(editor)?.focusNext();\n }\n}\nclass SelectPreviousStickyScrollLine extends EditorAction2 {\n constructor() {\n super({\n id: 'editor.action.selectPreviousStickyScrollLine',\n title: localize2(1502, \"Select the previous sticky scroll line\"),\n precondition: EditorContextKeys.stickyScrollFocused.isEqualTo(true),\n keybinding: {\n weight,\n primary: 16 /* KeyCode.UpArrow */\n }\n });\n }\n runEditorCommand(_accessor, editor) {\n StickyScrollController.get(editor)?.focusPrevious();\n }\n}\nclass GoToStickyScrollLine extends EditorAction2 {\n constructor() {\n super({\n id: 'editor.action.goToFocusedStickyScrollLine',\n title: localize2(1503, \"Go to the focused sticky scroll line\"),\n precondition: EditorContextKeys.stickyScrollFocused.isEqualTo(true),\n keybinding: {\n weight,\n primary: 3 /* KeyCode.Enter */\n }\n });\n }\n runEditorCommand(_accessor, editor) {\n StickyScrollController.get(editor)?.goToFocused();\n }\n}\nclass SelectEditor extends EditorAction2 {\n constructor() {\n super({\n id: 'editor.action.selectEditor',\n title: localize2(1504, \"Select Editor\"),\n precondition: EditorContextKeys.stickyScrollFocused.isEqualTo(true),\n keybinding: {\n weight,\n primary: 9 /* KeyCode.Escape */\n }\n });\n }\n runEditorCommand(_accessor, editor) {\n StickyScrollController.get(editor)?.selectEditor();\n }\n}\n\nexport { FocusStickyScroll, GoToStickyScrollLine, SelectEditor, SelectNextStickyScrollLine, SelectPreviousStickyScrollLine, ToggleStickyScroll };\n",
50
- "import { registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { ToggleStickyScroll, FocusStickyScroll, SelectPreviousStickyScrollLine, SelectNextStickyScrollLine, GoToStickyScrollLine, SelectEditor } from './stickyScrollActions.js';\nimport { StickyScrollController } from './stickyScrollController.js';\nimport { registerAction2 } from '../../../../platform/actions/common/actions.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nregisterEditorContribution(StickyScrollController.ID, StickyScrollController, 1 /* EditorContributionInstantiation.AfterFirstRender */);\nregisterAction2(ToggleStickyScroll);\nregisterAction2(FocusStickyScroll);\nregisterAction2(SelectPreviousStickyScrollLine);\nregisterAction2(SelectNextStickyScrollLine);\nregisterAction2(GoToStickyScrollLine);\nregisterAction2(SelectEditor);\n",
51
- "import { Disposable } from '../../../../base/common/lifecycle.js';\nimport { basename } from '../../../../base/common/resources.js';\nimport { registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { ICodeEditorService } from '../../../browser/services/codeEditorService.js';\nimport { localize } from '../../../../nls.js';\nimport { IDialogService } from '../../../../platform/dialogs/common/dialogs.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nconst ignoreUnusualLineTerminators = 'ignoreUnusualLineTerminators';\nfunction writeIgnoreState(codeEditorService, model, state) {\n codeEditorService.setModelProperty(model.uri, ignoreUnusualLineTerminators, state);\n}\nfunction readIgnoreState(codeEditorService, model) {\n return codeEditorService.getModelProperty(model.uri, ignoreUnusualLineTerminators);\n}\nlet UnusualLineTerminatorsDetector = class UnusualLineTerminatorsDetector extends Disposable {\n static { this.ID = 'editor.contrib.unusualLineTerminatorsDetector'; }\n constructor(_editor, _dialogService, _codeEditorService) {\n super();\n this._editor = _editor;\n this._dialogService = _dialogService;\n this._codeEditorService = _codeEditorService;\n this._isPresentingDialog = false;\n this._config = this._editor.getOption(143 /* EditorOption.unusualLineTerminators */);\n this._register(this._editor.onDidChangeConfiguration((e) => {\n if (e.hasChanged(143 /* EditorOption.unusualLineTerminators */)) {\n this._config = this._editor.getOption(143 /* EditorOption.unusualLineTerminators */);\n this._checkForUnusualLineTerminators();\n }\n }));\n this._register(this._editor.onDidChangeModel(() => {\n this._checkForUnusualLineTerminators();\n }));\n this._register(this._editor.onDidChangeModelContent((e) => {\n if (e.isUndoing) {\n // skip checking in case of undoing\n return;\n }\n this._checkForUnusualLineTerminators();\n }));\n this._checkForUnusualLineTerminators();\n }\n async _checkForUnusualLineTerminators() {\n if (this._config === 'off') {\n return;\n }\n if (!this._editor.hasModel()) {\n return;\n }\n const model = this._editor.getModel();\n if (!model.mightContainUnusualLineTerminators()) {\n return;\n }\n const ignoreState = readIgnoreState(this._codeEditorService, model);\n if (ignoreState === true) {\n // this model should be ignored\n return;\n }\n if (this._editor.getOption(104 /* EditorOption.readOnly */)) {\n // read only editor => sorry!\n return;\n }\n if (this._config === 'auto') {\n // just do it!\n model.removeUnusualLineTerminators(this._editor.getSelections());\n return;\n }\n if (this._isPresentingDialog) {\n // we're currently showing the dialog, which is async.\n // avoid spamming the user\n return;\n }\n let result;\n try {\n this._isPresentingDialog = true;\n result = await this._dialogService.confirm({\n title: localize(1610, \"Unusual Line Terminators\"),\n message: localize(1611, \"Detected unusual line terminators\"),\n detail: localize(1612, \"The file '{0}' contains one or more unusual line terminator characters, like Line Separator (LS) or Paragraph Separator (PS).\\n\\nIt is recommended to remove them from the file. This can be configured via `editor.unusualLineTerminators`.\", basename(model.uri)),\n primaryButton: localize(1613, \"&&Remove Unusual Line Terminators\"),\n cancelButton: localize(1614, \"Ignore\")\n });\n }\n finally {\n this._isPresentingDialog = false;\n }\n if (!result.confirmed) {\n // this model should be ignored\n writeIgnoreState(this._codeEditorService, model, true);\n return;\n }\n model.removeUnusualLineTerminators(this._editor.getSelections());\n }\n};\nUnusualLineTerminatorsDetector = __decorate([\n __param(1, IDialogService),\n __param(2, ICodeEditorService)\n], UnusualLineTerminatorsDetector);\nregisterEditorContribution(UnusualLineTerminatorsDetector.ID, UnusualLineTerminatorsDetector, 1 /* EditorContributionInstantiation.AfterFirstRender */);\n\nexport { UnusualLineTerminatorsDetector };\n",
52
- "import { USUAL_WORD_SEPARATORS } from '../../../common/core/wordHelper.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { DocumentHighlightKind } from '../../../common/languages.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { ResourceMap } from '../../../../base/common/map.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nclass TextualDocumentHighlightProvider {\n constructor() {\n this.selector = { language: '*' };\n }\n provideDocumentHighlights(model, position, token) {\n if (model.isDisposed()) {\n return;\n }\n const result = [];\n const word = model.getWordAtPosition({\n lineNumber: position.lineNumber,\n column: position.column\n });\n if (!word) {\n return Promise.resolve(result);\n }\n const matches = model.findMatches(word.word, true, false, true, USUAL_WORD_SEPARATORS, false);\n return matches.map(m => ({\n range: m.range,\n kind: DocumentHighlightKind.Text\n }));\n }\n provideMultiDocumentHighlights(primaryModel, position, otherModels, token) {\n if (primaryModel.isDisposed()) {\n return;\n }\n const result = new ResourceMap();\n const word = primaryModel.getWordAtPosition({\n lineNumber: position.lineNumber,\n column: position.column\n });\n if (!word) {\n return Promise.resolve(result);\n }\n for (const model of [primaryModel, ...otherModels]) {\n if (model.isDisposed()) {\n continue;\n }\n const matches = model.findMatches(word.word, true, false, true, USUAL_WORD_SEPARATORS, false);\n const highlights = matches.map(m => ({\n range: m.range,\n kind: DocumentHighlightKind.Text\n }));\n if (highlights) {\n result.set(model.uri, highlights);\n }\n }\n return result;\n }\n}\nlet TextualMultiDocumentHighlightFeature = class TextualMultiDocumentHighlightFeature extends Disposable {\n constructor(languageFeaturesService) {\n super();\n this._register(languageFeaturesService.documentHighlightProvider.register('*', new TextualDocumentHighlightProvider()));\n this._register(languageFeaturesService.multiDocumentHighlightProvider.register('*', new TextualDocumentHighlightProvider()));\n }\n};\nTextualMultiDocumentHighlightFeature = __decorate([\n __param(0, ILanguageFeaturesService)\n], TextualMultiDocumentHighlightFeature);\n\nexport { TextualMultiDocumentHighlightFeature };\n",
53
- "import { localize2 } from '../../../../nls.js';\nimport { alert } from '../../../../base/browser/ui/aria/aria.js';\nimport { Delayer, first, createCancelablePromise } from '../../../../base/common/async.js';\nimport { CancellationToken } from '../../../../base/common/cancellation.js';\nimport { onUnexpectedError, onUnexpectedExternalError } from '../../../../base/common/errors.js';\nimport { DisposableStore, Disposable } from '../../../../base/common/lifecycle.js';\nimport { ResourceMap } from '../../../../base/common/map.js';\nimport { matchesScheme, Schemas } from '../../../../base/common/network.js';\nimport { isEqual } from '../../../../base/common/resources.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nimport { RawContextKey, IContextKeyService } from '../../../../platform/contextkey/common/contextkey.js';\nimport { ILogService } from '../../../../platform/log/common/log.js';\nimport { isDiffEditor } from '../../../browser/editorBrowser.js';\nimport { registerModelAndPositionCommand, registerEditorContribution, registerEditorAction, EditorAction } from '../../../browser/editorExtensions.js';\nimport { ICodeEditorService } from '../../../browser/services/codeEditorService.js';\nimport { Range } from '../../../common/core/range.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { registerEditorFeature } from '../../../common/editorFeatures.js';\nimport { score } from '../../../common/languageSelector.js';\nimport { shouldSynchronizeModel } from '../../../common/model.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { ITextModelService } from '../../../common/services/resolverService.js';\nimport { getHighlightDecorationOptions } from './highlightDecorations.js';\nimport { TextualMultiDocumentHighlightFeature } from './textualHighlightProvider.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar WordHighlighter_1, WordHighlighterContribution_1;\nconst ctxHasWordHighlights = new RawContextKey('hasWordHighlights', false);\nfunction getOccurrencesAtPosition(registry, model, position, token) {\n const orderedByScore = registry.ordered(model);\n // in order of score ask the occurrences provider\n // until someone response with a good result\n // (good = non undefined and non null value)\n // (result of size == 0 is valid, no highlights is a valid/expected result -- not a signal to fall back to other providers)\n return first(orderedByScore.map(provider => () => {\n return Promise.resolve(provider.provideDocumentHighlights(model, position, token))\n .then(undefined, onUnexpectedExternalError);\n }), (result) => result !== undefined && result !== null).then(result => {\n if (result) {\n const map = new ResourceMap();\n map.set(model.uri, result);\n return map;\n }\n return new ResourceMap();\n });\n}\nfunction getOccurrencesAcrossMultipleModels(registry, model, position, token, otherModels) {\n const orderedByScore = registry.ordered(model);\n // in order of score ask the occurrences provider\n // until someone response with a good result\n // (good = non undefined and non null ResourceMap)\n // (result of size == 0 is valid, no highlights is a valid/expected result -- not a signal to fall back to other providers)\n return first(orderedByScore.map(provider => () => {\n const filteredModels = otherModels.filter(otherModel => {\n return shouldSynchronizeModel(otherModel);\n }).filter(otherModel => {\n return score(provider.selector, otherModel.uri, otherModel.getLanguageId(), true, undefined, undefined) > 0;\n });\n return Promise.resolve(provider.provideMultiDocumentHighlights(model, position, filteredModels, token))\n .then(undefined, onUnexpectedExternalError);\n }), (result) => result !== undefined && result !== null);\n}\nclass OccurenceAtPositionRequest {\n constructor(_model, _selection, _wordSeparators) {\n this._model = _model;\n this._selection = _selection;\n this._wordSeparators = _wordSeparators;\n this._wordRange = this._getCurrentWordRange(_model, _selection);\n this._result = null;\n }\n get result() {\n if (!this._result) {\n this._result = createCancelablePromise(token => this._compute(this._model, this._selection, this._wordSeparators, token));\n }\n return this._result;\n }\n _getCurrentWordRange(model, selection) {\n const word = model.getWordAtPosition(selection.getPosition());\n if (word) {\n return new Range(selection.startLineNumber, word.startColumn, selection.startLineNumber, word.endColumn);\n }\n return null;\n }\n cancel() {\n this.result.cancel();\n }\n}\nclass SemanticOccurenceAtPositionRequest extends OccurenceAtPositionRequest {\n constructor(model, selection, wordSeparators, providers) {\n super(model, selection, wordSeparators);\n this._providers = providers;\n }\n _compute(model, selection, wordSeparators, token) {\n return getOccurrencesAtPosition(this._providers, model, selection.getPosition(), token).then(value => {\n if (!value) {\n return new ResourceMap();\n }\n return value;\n });\n }\n}\nclass MultiModelOccurenceRequest extends OccurenceAtPositionRequest {\n constructor(model, selection, wordSeparators, providers, otherModels) {\n super(model, selection, wordSeparators);\n this._providers = providers;\n this._otherModels = otherModels;\n }\n _compute(model, selection, wordSeparators, token) {\n return getOccurrencesAcrossMultipleModels(this._providers, model, selection.getPosition(), token, this._otherModels).then(value => {\n if (!value) {\n return new ResourceMap();\n }\n return value;\n });\n }\n}\nfunction computeOccurencesAtPosition(registry, model, selection, wordSeparators) {\n return new SemanticOccurenceAtPositionRequest(model, selection, wordSeparators, registry);\n}\nfunction computeOccurencesMultiModel(registry, model, selection, wordSeparators, otherModels) {\n return new MultiModelOccurenceRequest(model, selection, wordSeparators, registry, otherModels);\n}\nregisterModelAndPositionCommand('_executeDocumentHighlights', async (accessor, model, position) => {\n const languageFeaturesService = accessor.get(ILanguageFeaturesService);\n const map = await getOccurrencesAtPosition(languageFeaturesService.documentHighlightProvider, model, position, CancellationToken.None);\n return map?.get(model.uri);\n});\nlet WordHighlighter = class WordHighlighter {\n static { WordHighlighter_1 = this; }\n static { this.storedDecorationIDs = new ResourceMap(); }\n static { this.query = null; }\n constructor(editor, providers, multiProviders, contextKeyService, textModelService, codeEditorService, configurationService, logService) {\n this.toUnhook = new DisposableStore();\n this.workerRequestTokenId = 0;\n this.workerRequestCompleted = false;\n this.workerRequestValue = new ResourceMap();\n this.lastCursorPositionChangeTime = 0;\n this.renderDecorationsTimer = undefined;\n this.runDelayer = this.toUnhook.add(new Delayer(50));\n this.editor = editor;\n this.providers = providers;\n this.multiDocumentProviders = multiProviders;\n this.codeEditorService = codeEditorService;\n this.textModelService = textModelService;\n this.configurationService = configurationService;\n this.logService = logService;\n this._hasWordHighlights = ctxHasWordHighlights.bindTo(contextKeyService);\n this._ignorePositionChangeEvent = false;\n this.occurrencesHighlightEnablement = this.editor.getOption(90 /* EditorOption.occurrencesHighlight */);\n this.occurrencesHighlightDelay = this.configurationService.getValue('editor.occurrencesHighlightDelay');\n this.model = this.editor.getModel();\n this.toUnhook.add(editor.onDidChangeCursorPosition((e) => {\n if (this._ignorePositionChangeEvent) {\n // We are changing the position => ignore this event\n return;\n }\n if (this.occurrencesHighlightEnablement === 'off') {\n // Early exit if nothing needs to be done!\n // Leave some form of early exit check here if you wish to continue being a cursor position change listener ;)\n return;\n }\n this.runDelayer.trigger(() => { this._onPositionChanged(e); }).catch(onUnexpectedError);\n }));\n this.toUnhook.add(editor.onDidFocusEditorText((e) => {\n if (this.occurrencesHighlightEnablement === 'off') {\n // Early exit if nothing needs to be done\n return;\n }\n if (!this.workerRequest) {\n this.runDelayer.trigger(() => { this._run(); }).catch(onUnexpectedError);\n }\n }));\n this.toUnhook.add(editor.onDidChangeModelContent((e) => {\n if (!matchesScheme(this.model.uri, 'output')) {\n this._stopAll();\n }\n }));\n this.toUnhook.add(editor.onDidChangeModel((e) => {\n if (!e.newModelUrl && e.oldModelUrl) {\n this._stopSingular();\n }\n else if (WordHighlighter_1.query) {\n this._run();\n }\n }));\n this.toUnhook.add(editor.onDidChangeConfiguration((e) => {\n const newEnablement = this.editor.getOption(90 /* EditorOption.occurrencesHighlight */);\n if (this.occurrencesHighlightEnablement !== newEnablement) {\n this.occurrencesHighlightEnablement = newEnablement;\n switch (newEnablement) {\n case 'off':\n this._stopAll();\n break;\n case 'singleFile':\n this._stopAll(WordHighlighter_1.query?.modelInfo?.modelURI);\n break;\n case 'multiFile':\n if (WordHighlighter_1.query) {\n this._run(true);\n }\n break;\n default:\n console.warn('Unknown occurrencesHighlight setting value:', newEnablement);\n break;\n }\n }\n }));\n this.toUnhook.add(this.configurationService.onDidChangeConfiguration((e) => {\n if (e.affectsConfiguration('editor.occurrencesHighlightDelay')) {\n const newDelay = configurationService.getValue('editor.occurrencesHighlightDelay');\n if (this.occurrencesHighlightDelay !== newDelay) {\n this.occurrencesHighlightDelay = newDelay;\n }\n }\n }));\n this.toUnhook.add(editor.onDidBlurEditorWidget(() => {\n // logic is as follows\n // - didBlur => active null => stopall\n // - didBlur => active nb => if this.editor is notebook, do nothing (new cell, so we don't want to stopAll)\n // active nb => if this.editor is NOT nb, stopAll\n const activeEditor = this.codeEditorService.getFocusedCodeEditor();\n if (!activeEditor) { // clicked into nb cell list, outline, terminal, etc\n this._stopAll();\n }\n else if (activeEditor.getModel()?.uri.scheme === Schemas.vscodeNotebookCell && this.editor.getModel()?.uri.scheme !== Schemas.vscodeNotebookCell) { // switched tabs from non-nb to nb\n this._stopAll();\n }\n }));\n this.decorations = this.editor.createDecorationsCollection();\n this.workerRequestTokenId = 0;\n this.workerRequest = null;\n this.workerRequestCompleted = false;\n this.lastCursorPositionChangeTime = 0;\n this.renderDecorationsTimer = undefined;\n // if there is a query already, highlight off that query\n if (WordHighlighter_1.query) {\n this._run();\n }\n }\n hasDecorations() {\n return (this.decorations.length > 0);\n }\n restore(delay) {\n if (this.occurrencesHighlightEnablement === 'off') {\n return;\n }\n this.runDelayer.cancel();\n this.runDelayer.trigger(() => { this._run(false, delay); }).catch(onUnexpectedError);\n }\n stop() {\n if (this.occurrencesHighlightEnablement === 'off') {\n return;\n }\n this._stopAll();\n }\n _getSortedHighlights() {\n return (this.decorations.getRanges()\n .sort(Range.compareRangesUsingStarts));\n }\n moveNext() {\n const highlights = this._getSortedHighlights();\n const index = highlights.findIndex((range) => range.containsPosition(this.editor.getPosition()));\n const newIndex = ((index + 1) % highlights.length);\n const dest = highlights[newIndex];\n try {\n this._ignorePositionChangeEvent = true;\n this.editor.setPosition(dest.getStartPosition());\n this.editor.revealRangeInCenterIfOutsideViewport(dest);\n const word = this._getWord();\n if (word) {\n const lineContent = this.editor.getModel().getLineContent(dest.startLineNumber);\n alert(`${lineContent}, ${newIndex + 1} of ${highlights.length} for '${word.word}'`);\n }\n }\n finally {\n this._ignorePositionChangeEvent = false;\n }\n }\n moveBack() {\n const highlights = this._getSortedHighlights();\n const index = highlights.findIndex((range) => range.containsPosition(this.editor.getPosition()));\n const newIndex = ((index - 1 + highlights.length) % highlights.length);\n const dest = highlights[newIndex];\n try {\n this._ignorePositionChangeEvent = true;\n this.editor.setPosition(dest.getStartPosition());\n this.editor.revealRangeInCenterIfOutsideViewport(dest);\n const word = this._getWord();\n if (word) {\n const lineContent = this.editor.getModel().getLineContent(dest.startLineNumber);\n alert(`${lineContent}, ${newIndex + 1} of ${highlights.length} for '${word.word}'`);\n }\n }\n finally {\n this._ignorePositionChangeEvent = false;\n }\n }\n _removeSingleDecorations() {\n // return if no model\n if (!this.editor.hasModel()) {\n return;\n }\n const currentDecorationIDs = WordHighlighter_1.storedDecorationIDs.get(this.editor.getModel().uri);\n if (!currentDecorationIDs) {\n return;\n }\n this.editor.removeDecorations(currentDecorationIDs);\n WordHighlighter_1.storedDecorationIDs.delete(this.editor.getModel().uri);\n if (this.decorations.length > 0) {\n this.decorations.clear();\n this._hasWordHighlights.set(false);\n }\n }\n _removeAllDecorations(preservedModel) {\n const currentEditors = this.codeEditorService.listCodeEditors();\n const deleteURI = [];\n // iterate over editors and store models in currentModels\n for (const editor of currentEditors) {\n if (!editor.hasModel() || isEqual(editor.getModel().uri, preservedModel)) {\n continue;\n }\n const currentDecorationIDs = WordHighlighter_1.storedDecorationIDs.get(editor.getModel().uri);\n if (!currentDecorationIDs) {\n continue;\n }\n editor.removeDecorations(currentDecorationIDs);\n deleteURI.push(editor.getModel().uri);\n const editorHighlighterContrib = WordHighlighterContribution.get(editor);\n if (!editorHighlighterContrib?.wordHighlighter) {\n continue;\n }\n if (editorHighlighterContrib.wordHighlighter.decorations.length > 0) {\n editorHighlighterContrib.wordHighlighter.decorations.clear();\n editorHighlighterContrib.wordHighlighter.workerRequest = null;\n editorHighlighterContrib.wordHighlighter._hasWordHighlights.set(false);\n }\n }\n for (const uri of deleteURI) {\n WordHighlighter_1.storedDecorationIDs.delete(uri);\n }\n }\n _stopSingular() {\n // Remove any existing decorations + a possible query, and re - run to update decorations\n this._removeSingleDecorations();\n if (this.editor.hasTextFocus()) {\n if (this.editor.getModel()?.uri.scheme !== Schemas.vscodeNotebookCell && WordHighlighter_1.query?.modelInfo?.modelURI.scheme !== Schemas.vscodeNotebookCell) { // clear query if focused non-nb editor\n WordHighlighter_1.query = null;\n this._run(); // TODO: @Yoyokrazy -- investigate why we need a full rerun here. likely addressed a case/patch in the first iteration of this feature\n }\n else { // remove modelInfo to account for nb cell being disposed\n if (WordHighlighter_1.query?.modelInfo) {\n WordHighlighter_1.query.modelInfo = null;\n }\n }\n }\n // Cancel any renderDecorationsTimer\n if (this.renderDecorationsTimer !== undefined) {\n clearTimeout(this.renderDecorationsTimer);\n this.renderDecorationsTimer = undefined;\n }\n // Cancel any worker request\n if (this.workerRequest !== null) {\n this.workerRequest.cancel();\n this.workerRequest = null;\n }\n // Invalidate any worker request callback\n if (!this.workerRequestCompleted) {\n this.workerRequestTokenId++;\n this.workerRequestCompleted = true;\n }\n }\n _stopAll(preservedModel) {\n // Remove any existing decorations\n // TODO: @Yoyokrazy -- this triggers as notebooks scroll, causing highlights to disappear momentarily.\n // maybe a nb type check?\n this._removeAllDecorations(preservedModel);\n // Cancel any renderDecorationsTimer\n if (this.renderDecorationsTimer !== undefined) {\n clearTimeout(this.renderDecorationsTimer);\n this.renderDecorationsTimer = undefined;\n }\n // Cancel any worker request\n if (this.workerRequest !== null) {\n this.workerRequest.cancel();\n this.workerRequest = null;\n }\n // Invalidate any worker request callback\n if (!this.workerRequestCompleted) {\n this.workerRequestTokenId++;\n this.workerRequestCompleted = true;\n }\n }\n _onPositionChanged(e) {\n // disabled\n if (this.occurrencesHighlightEnablement === 'off') {\n this._stopAll();\n return;\n }\n // ignore typing & other\n // need to check if the model is a notebook cell, should not stop if nb\n if (e.source !== 'api' && e.reason !== 3 /* CursorChangeReason.Explicit */) {\n this._stopAll();\n return;\n }\n this._run();\n }\n _getWord() {\n const editorSelection = this.editor.getSelection();\n const lineNumber = editorSelection.startLineNumber;\n const startColumn = editorSelection.startColumn;\n if (this.model.isDisposed()) {\n return null;\n }\n return this.model.getWordAtPosition({\n lineNumber: lineNumber,\n column: startColumn\n });\n }\n getOtherModelsToHighlight(model) {\n if (!model) {\n return [];\n }\n // notebook case\n const isNotebookEditor = model.uri.scheme === Schemas.vscodeNotebookCell;\n if (isNotebookEditor) {\n const currentModels = [];\n const currentEditors = this.codeEditorService.listCodeEditors();\n for (const editor of currentEditors) {\n const tempModel = editor.getModel();\n if (tempModel && tempModel !== model && tempModel.uri.scheme === Schemas.vscodeNotebookCell) {\n currentModels.push(tempModel);\n }\n }\n return currentModels;\n }\n // inline case\n // ? current works when highlighting outside of an inline diff, highlighting in.\n // ? broken when highlighting within a diff editor. highlighting the main editor does not work\n // ? editor group service could be useful here\n const currentModels = [];\n const currentEditors = this.codeEditorService.listCodeEditors();\n for (const editor of currentEditors) {\n if (!isDiffEditor(editor)) {\n continue;\n }\n const diffModel = editor.getModel();\n if (!diffModel) {\n continue;\n }\n if (model === diffModel.modified) { // embedded inline chat diff would pass this, allowing highlights\n //? currentModels.push(diffModel.original);\n currentModels.push(diffModel.modified);\n }\n }\n if (currentModels.length) { // no matching editors have been found\n return currentModels;\n }\n // multi-doc OFF\n if (this.occurrencesHighlightEnablement === 'singleFile') {\n return [];\n }\n // multi-doc ON\n for (const editor of currentEditors) {\n const tempModel = editor.getModel();\n const isValidModel = tempModel && tempModel !== model;\n if (isValidModel) {\n currentModels.push(tempModel);\n }\n }\n return currentModels;\n }\n async _run(multiFileConfigChange, delay) {\n const hasTextFocus = this.editor.hasTextFocus();\n if (!hasTextFocus) { // new nb cell scrolled in, didChangeModel fires\n if (!WordHighlighter_1.query) { // no previous query, nothing to highlight off of\n this._stopAll();\n return;\n }\n }\n else { // has text focus\n const editorSelection = this.editor.getSelection();\n // ignore multiline selection\n if (!editorSelection || editorSelection.startLineNumber !== editorSelection.endLineNumber) {\n WordHighlighter_1.query = null;\n this._stopAll();\n return;\n }\n const startColumn = editorSelection.startColumn;\n const endColumn = editorSelection.endColumn;\n const word = this._getWord();\n // The selection must be inside a word or surround one word at most\n if (!word || word.startColumn > startColumn || word.endColumn < endColumn) {\n // no previous query, nothing to highlight\n WordHighlighter_1.query = null;\n this._stopAll();\n return;\n }\n WordHighlighter_1.query = {\n modelInfo: {\n modelURI: this.model.uri,\n selection: editorSelection,\n }\n };\n }\n this.lastCursorPositionChangeTime = (new Date()).getTime();\n if (isEqual(this.editor.getModel().uri, WordHighlighter_1.query.modelInfo?.modelURI)) { // only trigger new worker requests from the primary model that initiated the query\n // case d)\n // check if the new queried word is contained in the range of a stored decoration for this model\n if (!multiFileConfigChange) {\n const currentModelDecorationRanges = this.decorations.getRanges();\n for (const storedRange of currentModelDecorationRanges) {\n if (storedRange.containsPosition(this.editor.getPosition())) {\n return;\n }\n }\n }\n // stop all previous actions if new word is highlighted\n // if we trigger the run off a setting change -> multifile highlighting, we do not want to remove decorations from this model\n this._stopAll(multiFileConfigChange ? this.model.uri : undefined);\n const myRequestId = ++this.workerRequestTokenId;\n this.workerRequestCompleted = false;\n const otherModelsToHighlight = this.getOtherModelsToHighlight(this.editor.getModel());\n // when reaching here, there are two possible states.\n // \t\t1) we have text focus, and a valid query was updated.\n // \t\t2) we do not have text focus, and a valid query is cached.\n // the query will ALWAYS have the correct data for the current highlight request, so it can always be passed to the workerRequest safely\n if (!WordHighlighter_1.query || !WordHighlighter_1.query.modelInfo) {\n return;\n }\n const queryModelRef = await this.textModelService.createModelReference(WordHighlighter_1.query.modelInfo.modelURI);\n try {\n this.workerRequest = this.computeWithModel(queryModelRef.object.textEditorModel, WordHighlighter_1.query.modelInfo.selection, otherModelsToHighlight);\n this.workerRequest?.result.then(data => {\n if (myRequestId === this.workerRequestTokenId) {\n this.workerRequestCompleted = true;\n this.workerRequestValue = data || [];\n this._beginRenderDecorations(delay ?? this.occurrencesHighlightDelay);\n }\n }, onUnexpectedError);\n }\n catch (e) {\n this.logService.error('Unexpected error during occurrence request. Log: ', e);\n }\n finally {\n queryModelRef.dispose();\n }\n }\n else if (this.model.uri.scheme === Schemas.vscodeNotebookCell) {\n // new wordHighlighter coming from a different model, NOT the query model, need to create a textModel ref\n const myRequestId = ++this.workerRequestTokenId;\n this.workerRequestCompleted = false;\n if (!WordHighlighter_1.query || !WordHighlighter_1.query.modelInfo) {\n return;\n }\n const queryModelRef = await this.textModelService.createModelReference(WordHighlighter_1.query.modelInfo.modelURI);\n try {\n this.workerRequest = this.computeWithModel(queryModelRef.object.textEditorModel, WordHighlighter_1.query.modelInfo.selection, [this.model]);\n this.workerRequest?.result.then(data => {\n if (myRequestId === this.workerRequestTokenId) {\n this.workerRequestCompleted = true;\n this.workerRequestValue = data || [];\n this._beginRenderDecorations(delay ?? this.occurrencesHighlightDelay);\n }\n }, onUnexpectedError);\n }\n catch (e) {\n this.logService.error('Unexpected error during occurrence request. Log: ', e);\n }\n finally {\n queryModelRef.dispose();\n }\n }\n }\n computeWithModel(model, selection, otherModels) {\n if (!otherModels.length) {\n return computeOccurencesAtPosition(this.providers, model, selection, this.editor.getOption(148 /* EditorOption.wordSeparators */));\n }\n else {\n return computeOccurencesMultiModel(this.multiDocumentProviders, model, selection, this.editor.getOption(148 /* EditorOption.wordSeparators */), otherModels);\n }\n }\n _beginRenderDecorations(delay) {\n const currentTime = (new Date()).getTime();\n const minimumRenderTime = this.lastCursorPositionChangeTime + delay;\n if (currentTime >= minimumRenderTime) {\n // Synchronous\n this.renderDecorationsTimer = undefined;\n this.renderDecorations();\n }\n else {\n // Asynchronous\n this.renderDecorationsTimer = setTimeout(() => {\n this.renderDecorations();\n }, (minimumRenderTime - currentTime));\n }\n }\n renderDecorations() {\n this.renderDecorationsTimer = undefined;\n // create new loop, iterate over current editors using this.codeEditorService.listCodeEditors(),\n // if the URI of that codeEditor is in the map, then add the decorations to the decorations array\n // then set the decorations for the editor\n const currentEditors = this.codeEditorService.listCodeEditors();\n for (const editor of currentEditors) {\n const editorHighlighterContrib = WordHighlighterContribution.get(editor);\n if (!editorHighlighterContrib) {\n continue;\n }\n const newDecorations = [];\n const uri = editor.getModel()?.uri;\n if (uri && this.workerRequestValue.has(uri)) {\n const oldDecorationIDs = WordHighlighter_1.storedDecorationIDs.get(uri);\n const newDocumentHighlights = this.workerRequestValue.get(uri);\n if (newDocumentHighlights) {\n for (const highlight of newDocumentHighlights) {\n if (!highlight.range) {\n continue;\n }\n newDecorations.push({\n range: highlight.range,\n options: getHighlightDecorationOptions(highlight.kind)\n });\n }\n }\n let newDecorationIDs = [];\n editor.changeDecorations((changeAccessor) => {\n newDecorationIDs = changeAccessor.deltaDecorations(oldDecorationIDs ?? [], newDecorations);\n });\n WordHighlighter_1.storedDecorationIDs = WordHighlighter_1.storedDecorationIDs.set(uri, newDecorationIDs);\n if (newDecorations.length > 0) {\n editorHighlighterContrib.wordHighlighter?.decorations.set(newDecorations);\n editorHighlighterContrib.wordHighlighter?._hasWordHighlights.set(true);\n }\n }\n }\n // clear the worker request when decorations are completed\n this.workerRequest = null;\n }\n dispose() {\n this._stopSingular();\n this.toUnhook.dispose();\n }\n};\nWordHighlighter = WordHighlighter_1 = __decorate([\n __param(4, ITextModelService),\n __param(5, ICodeEditorService),\n __param(6, IConfigurationService),\n __param(7, ILogService)\n], WordHighlighter);\nlet WordHighlighterContribution = class WordHighlighterContribution extends Disposable {\n static { WordHighlighterContribution_1 = this; }\n static { this.ID = 'editor.contrib.wordHighlighter'; }\n static get(editor) {\n return editor.getContribution(WordHighlighterContribution_1.ID);\n }\n constructor(editor, contextKeyService, languageFeaturesService, codeEditorService, textModelService, configurationService, logService) {\n super();\n this._wordHighlighter = null;\n const createWordHighlighterIfPossible = () => {\n if (editor.hasModel() && !editor.getModel().isTooLargeForTokenization() && editor.getModel().uri.scheme !== Schemas.accessibleView) {\n this._wordHighlighter = new WordHighlighter(editor, languageFeaturesService.documentHighlightProvider, languageFeaturesService.multiDocumentHighlightProvider, contextKeyService, textModelService, codeEditorService, configurationService, logService);\n }\n };\n this._register(editor.onDidChangeModel((e) => {\n if (this._wordHighlighter) {\n if (!e.newModelUrl && e.oldModelUrl?.scheme !== Schemas.vscodeNotebookCell) { // happens when switching tabs to a notebook that has focus in the cell list, no new model URI (this also doesn't make it to the wordHighlighter, bc no editor.hasModel)\n this.wordHighlighter?.stop();\n }\n this._wordHighlighter.dispose();\n this._wordHighlighter = null;\n }\n createWordHighlighterIfPossible();\n }));\n createWordHighlighterIfPossible();\n }\n get wordHighlighter() {\n return this._wordHighlighter;\n }\n saveViewState() {\n if (this._wordHighlighter && this._wordHighlighter.hasDecorations()) {\n return true;\n }\n return false;\n }\n moveNext() {\n this._wordHighlighter?.moveNext();\n }\n moveBack() {\n this._wordHighlighter?.moveBack();\n }\n restoreViewState(state) {\n if (this._wordHighlighter && state) {\n this._wordHighlighter.restore(250); // 250 ms delay to restoring view state, since only exts call this\n }\n }\n dispose() {\n if (this._wordHighlighter) {\n this._wordHighlighter.dispose();\n this._wordHighlighter = null;\n }\n super.dispose();\n }\n};\nWordHighlighterContribution = WordHighlighterContribution_1 = __decorate([\n __param(1, IContextKeyService),\n __param(2, ILanguageFeaturesService),\n __param(3, ICodeEditorService),\n __param(4, ITextModelService),\n __param(5, IConfigurationService),\n __param(6, ILogService)\n], WordHighlighterContribution);\nclass WordHighlightNavigationAction extends EditorAction {\n constructor(next, opts) {\n super(opts);\n this._isNext = next;\n }\n run(accessor, editor) {\n const controller = WordHighlighterContribution.get(editor);\n if (!controller) {\n return;\n }\n if (this._isNext) {\n controller.moveNext();\n }\n else {\n controller.moveBack();\n }\n }\n}\nclass NextWordHighlightAction extends WordHighlightNavigationAction {\n constructor() {\n super(true, {\n id: 'editor.action.wordHighlight.next',\n label: localize2(1624, \"Go to Next Symbol Highlight\"),\n precondition: ctxHasWordHighlights,\n kbOpts: {\n kbExpr: EditorContextKeys.editorTextFocus,\n primary: 65 /* KeyCode.F7 */,\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n}\nclass PrevWordHighlightAction extends WordHighlightNavigationAction {\n constructor() {\n super(false, {\n id: 'editor.action.wordHighlight.prev',\n label: localize2(1625, \"Go to Previous Symbol Highlight\"),\n precondition: ctxHasWordHighlights,\n kbOpts: {\n kbExpr: EditorContextKeys.editorTextFocus,\n primary: 1024 /* KeyMod.Shift */ | 65 /* KeyCode.F7 */,\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n}\nclass TriggerWordHighlightAction extends EditorAction {\n constructor() {\n super({\n id: 'editor.action.wordHighlight.trigger',\n label: localize2(1626, \"Trigger Symbol Highlight\"),\n precondition: undefined,\n kbOpts: {\n kbExpr: EditorContextKeys.editorTextFocus,\n primary: 0,\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n run(accessor, editor) {\n const controller = WordHighlighterContribution.get(editor);\n if (!controller) {\n return;\n }\n controller.restoreViewState(true);\n }\n}\nregisterEditorContribution(WordHighlighterContribution.ID, WordHighlighterContribution, 0 /* EditorContributionInstantiation.Eager */); // eager because it uses `saveViewState`/`restoreViewState`\nregisterEditorAction(NextWordHighlightAction);\nregisterEditorAction(PrevWordHighlightAction);\nregisterEditorAction(TriggerWordHighlightAction);\nregisterEditorFeature(TextualMultiDocumentHighlightFeature);\n\nexport { WordHighlighterContribution, getOccurrencesAcrossMultipleModels, getOccurrencesAtPosition };\n",
54
- "import { reverseOrder, compareBy, numberComparator } from '../../../../base/common/arrays.js';\nimport '../../../../base/common/observableInternal/index.js';\nimport { HideUnchangedRegionsFeature } from '../../../browser/widget/diffEditor/features/hideUnchangedRegionsFeature.js';\nimport { DisposableCancellationTokenSource } from '../../../browser/widget/diffEditor/utils.js';\nimport { LineRange } from '../../../common/core/ranges/lineRange.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { IOutlineModelService } from '../../documentSymbols/browser/outlineModel.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { Event } from '../../../../base/common/event.js';\nimport { observableValue } from '../../../../base/common/observableInternal/observables/observableValue.js';\nimport { observableSignalFromEvent } from '../../../../base/common/observableInternal/observables/observableSignalFromEvent.js';\nimport { autorunWithStore } from '../../../../base/common/observableInternal/reactions/autorun.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nlet DiffEditorBreadcrumbsSource = class DiffEditorBreadcrumbsSource extends Disposable {\n constructor(_textModel, _languageFeaturesService, _outlineModelService) {\n super();\n this._textModel = _textModel;\n this._languageFeaturesService = _languageFeaturesService;\n this._outlineModelService = _outlineModelService;\n this._currentModel = observableValue(this, undefined);\n const documentSymbolProviderChanged = observableSignalFromEvent('documentSymbolProvider.onDidChange', this._languageFeaturesService.documentSymbolProvider.onDidChange);\n const textModelChanged = observableSignalFromEvent('_textModel.onDidChangeContent', Event.debounce(e => this._textModel.onDidChangeContent(e), () => undefined, 100));\n this._register(autorunWithStore(async (reader, store) => {\n documentSymbolProviderChanged.read(reader);\n textModelChanged.read(reader);\n const src = store.add(new DisposableCancellationTokenSource());\n const model = await this._outlineModelService.getOrCreate(this._textModel, src.token);\n if (store.isDisposed) {\n return;\n }\n this._currentModel.set(model, undefined);\n }));\n }\n getBreadcrumbItems(startRange, reader) {\n const m = this._currentModel.read(reader);\n if (!m) {\n return [];\n }\n const symbols = m.asListOfDocumentSymbols()\n .filter(s => startRange.contains(s.range.startLineNumber) && !startRange.contains(s.range.endLineNumber));\n symbols.sort(reverseOrder(compareBy(s => s.range.endLineNumber - s.range.startLineNumber, numberComparator)));\n return symbols.map(s => ({ name: s.name, kind: s.kind, startLineNumber: s.range.startLineNumber }));\n }\n getAt(lineNumber, reader) {\n const m = this._currentModel.read(reader);\n if (!m) {\n return [];\n }\n const symbols = m.asListOfDocumentSymbols()\n .filter(s => new LineRange(s.range.startLineNumber, s.range.endLineNumber).contains(lineNumber));\n if (symbols.length === 0) {\n return [];\n }\n symbols.sort(reverseOrder(compareBy(s => s.range.endLineNumber - s.range.startLineNumber, numberComparator)));\n return symbols.map(s => ({ name: s.name, kind: s.kind, startLineNumber: s.range.startLineNumber }));\n }\n};\nDiffEditorBreadcrumbsSource = __decorate([\n __param(1, ILanguageFeaturesService),\n __param(2, IOutlineModelService)\n], DiffEditorBreadcrumbsSource);\nHideUnchangedRegionsFeature.setBreadcrumbsSourceFactory((textModel, instantiationService) => {\n return instantiationService.createInstance(DiffEditorBreadcrumbsSource, textModel);\n});\n",
55
- "import { Separator } from '../../../../base/common/actions.js';\nimport { h } from '../../../../base/browser/dom.js';\nimport { Disposable, toDisposable } from '../../../../base/common/lifecycle.js';\nimport '../../../../base/common/observableInternal/index.js';\nimport { getActionBarActions, MenuEntryActionViewItem } from '../../../../platform/actions/browser/menuEntryActionViewItem.js';\nimport { MenuWorkbenchToolBar } from '../../../../platform/actions/browser/toolbar.js';\nimport { MenuId, IMenuService, MenuItemAction } from '../../../../platform/actions/common/actions.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { IKeybindingService } from '../../../../platform/keybinding/common/keybinding.js';\nimport { observableCodeEditor } from '../../../browser/observableCodeEditor.js';\nimport { derived } from '../../../../base/common/observableInternal/observables/derived.js';\nimport { autorun } from '../../../../base/common/observableInternal/reactions/autorun.js';\nimport { constObservable } from '../../../../base/common/observableInternal/observables/constObservable.js';\nimport { observableFromEvent } from '../../../../base/common/observableInternal/observables/observableFromEvent.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nlet FloatingEditorToolbar = class FloatingEditorToolbar extends Disposable {\n static { this.ID = 'editor.contrib.floatingToolbar'; }\n constructor(editor, instantiationService, keybindingService, menuService) {\n super();\n const editorObs = this._register(observableCodeEditor(editor));\n const editorUriObs = derived(reader => editorObs.model.read(reader)?.uri);\n // Widget\n const widget = this._register(instantiationService.createInstance(FloatingEditorToolbarWidget, MenuId.EditorContent, editor.contextKeyService, editorUriObs));\n // Render widget\n this._register(autorun(reader => {\n const hasActions = widget.hasActions.read(reader);\n if (!hasActions) {\n return;\n }\n // Overlay widget\n reader.store.add(editorObs.createOverlayWidget({\n allowEditorOverflow: false,\n domNode: widget.element,\n minContentWidthInPx: constObservable(0),\n position: constObservable({\n preference: 1 /* OverlayWidgetPositionPreference.BOTTOM_RIGHT_CORNER */\n })\n }));\n }));\n }\n};\nFloatingEditorToolbar = __decorate([\n __param(1, IInstantiationService),\n __param(2, IKeybindingService),\n __param(3, IMenuService)\n], FloatingEditorToolbar);\nlet FloatingEditorToolbarWidget = class FloatingEditorToolbarWidget extends Disposable {\n constructor(_menuId, _scopedContextKeyService, _toolbarContext, instantiationService, keybindingService, menuService) {\n super();\n const menu = this._register(menuService.createMenu(_menuId, _scopedContextKeyService));\n const menuGroupsObs = observableFromEvent(this, menu.onDidChange, () => menu.getActions());\n const menuPrimaryActionsObs = derived(reader => {\n const menuGroups = menuGroupsObs.read(reader);\n const { primary } = getActionBarActions(menuGroups, () => true);\n return primary.filter(a => a.id !== Separator.ID);\n });\n this.hasActions = derived(reader => menuPrimaryActionsObs.read(reader).length > 0);\n this.element = h('div.floating-menu-overlay-widget').root;\n this._register(toDisposable(() => this.element.remove()));\n this._register(autorun(reader => {\n const primaryActions = menuPrimaryActionsObs.read(reader);\n const hasActions = primaryActions.length > 0;\n const menuPrimaryActionId = hasActions ? primaryActions[0].id : undefined;\n const isSingleButton = primaryActions.length === 1;\n this.element.classList.toggle('single-button', isSingleButton);\n // Set height explicitly to ensure that the floating menu element\n // is rendered in the lower right corner at the correct position.\n this.element.style.height = isSingleButton ? '28px' : '26px';\n if (!hasActions) {\n return;\n }\n // Toolbar\n const toolbar = instantiationService.createInstance(MenuWorkbenchToolBar, this.element, _menuId, {\n actionViewItemProvider: (action, options) => {\n if (!(action instanceof MenuItemAction)) {\n return undefined;\n }\n return instantiationService.createInstance(class extends MenuEntryActionViewItem {\n render(container) {\n super.render(container);\n // Highlight primary action\n if (action.id === menuPrimaryActionId) {\n this.element?.classList.add('primary');\n }\n }\n updateLabel() {\n const keybinding = keybindingService.lookupKeybinding(action.id);\n const keybindingLabel = keybinding ? keybinding.getLabel() : undefined;\n if (this.options.label && this.label) {\n this.label.textContent = keybindingLabel\n ? `${this._commandAction.label} (${keybindingLabel})`\n : this._commandAction.label;\n }\n }\n }, action, { ...options, keybindingNotRenderedWithLabel: true });\n },\n hiddenItemStrategy: 0 /* HiddenItemStrategy.Ignore */,\n menuOptions: {\n shouldForwardArgs: true\n },\n telemetrySource: 'editor.overlayToolbar',\n toolbarOptions: {\n primaryGroup: () => true,\n useSeparatorsInPrimaryActions: true\n },\n });\n reader.store.add(toolbar);\n reader.store.add(autorun(reader => {\n const context = _toolbarContext.read(reader);\n toolbar.context = context;\n }));\n }));\n }\n};\nFloatingEditorToolbarWidget = __decorate([\n __param(3, IInstantiationService),\n __param(4, IKeybindingService),\n __param(5, IMenuService)\n], FloatingEditorToolbarWidget);\n\nexport { FloatingEditorToolbar, FloatingEditorToolbarWidget };\n",
56
- "import './floatingMenu.css';\nimport { registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { FloatingEditorToolbar } from './floatingMenu.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nregisterEditorContribution(FloatingEditorToolbar.ID, FloatingEditorToolbar, 1 /* EditorContributionInstantiation.AfterFirstRender */);\n",
57
- "import './iPadShowKeyboard.css';\nimport { addDisposableListener } from '../../../../base/browser/dom.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { isIOS } from '../../../../base/common/platform.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nclass IPadShowKeyboard extends Disposable {\n static { this.ID = 'editor.contrib.iPadShowKeyboard'; }\n constructor(editor) {\n super();\n this.editor = editor;\n this.widget = null;\n if (isIOS) {\n this._register(editor.onDidChangeConfiguration(() => this.update()));\n this.update();\n }\n }\n update() {\n const shouldHaveWidget = (!this.editor.getOption(104 /* EditorOption.readOnly */));\n if (!this.widget && shouldHaveWidget) {\n this.widget = new ShowKeyboardWidget(this.editor);\n }\n else if (this.widget && !shouldHaveWidget) {\n this.widget.dispose();\n this.widget = null;\n }\n }\n dispose() {\n super.dispose();\n if (this.widget) {\n this.widget.dispose();\n this.widget = null;\n }\n }\n}\nclass ShowKeyboardWidget extends Disposable {\n static { this.ID = 'editor.contrib.ShowKeyboardWidget'; }\n constructor(editor) {\n super();\n this.editor = editor;\n this._domNode = document.createElement('textarea');\n this._domNode.className = 'iPadShowKeyboard';\n this._register(addDisposableListener(this._domNode, 'touchstart', (e) => {\n this.editor.focus();\n }));\n this._register(addDisposableListener(this._domNode, 'focus', (e) => {\n this.editor.focus();\n }));\n this.editor.addOverlayWidget(this);\n }\n dispose() {\n this.editor.removeOverlayWidget(this);\n super.dispose();\n }\n // ----- IOverlayWidget API\n getId() {\n return ShowKeyboardWidget.ID;\n }\n getDomNode() {\n return this._domNode;\n }\n getPosition() {\n return {\n preference: 1 /* OverlayWidgetPositionPreference.BOTTOM_RIGHT_CORNER */\n };\n }\n}\nregisterEditorContribution(IPadShowKeyboard.ID, IPadShowKeyboard, 3 /* EditorContributionInstantiation.Eventually */);\n\nexport { IPadShowKeyboard };\n",
58
- "import './inspectTokens.css';\nimport { reset, $, append } from '../../../../base/browser/dom.js';\nimport { Color } from '../../../../base/common/color.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { registerEditorContribution, registerEditorAction, EditorAction } from '../../../browser/editorExtensions.js';\nimport { TokenizationRegistry } from '../../../common/languages.js';\nimport { TokenMetadata } from '../../../common/encodedTokenAttributes.js';\nimport { nullTokenizeEncoded, nullTokenize, NullState } from '../../../common/languages/nullTokenize.js';\nimport { ILanguageService } from '../../../common/languages/language.js';\nimport { IStandaloneThemeService } from '../../common/standaloneTheme.js';\nimport { InspectTokensNLS } from '../../../common/standaloneStrings.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar InspectTokensController_1;\nlet InspectTokensController = class InspectTokensController extends Disposable {\n static { InspectTokensController_1 = this; }\n static { this.ID = 'editor.contrib.inspectTokens'; }\n static get(editor) {\n return editor.getContribution(InspectTokensController_1.ID);\n }\n constructor(editor, standaloneColorService, languageService) {\n super();\n this._editor = editor;\n this._languageService = languageService;\n this._widget = null;\n this._register(this._editor.onDidChangeModel((e) => this.stop()));\n this._register(this._editor.onDidChangeModelLanguage((e) => this.stop()));\n this._register(TokenizationRegistry.onDidChange((e) => this.stop()));\n this._register(this._editor.onKeyUp((e) => e.keyCode === 9 /* KeyCode.Escape */ && this.stop()));\n }\n dispose() {\n this.stop();\n super.dispose();\n }\n launch() {\n if (this._widget) {\n return;\n }\n if (!this._editor.hasModel()) {\n return;\n }\n this._widget = new InspectTokensWidget(this._editor, this._languageService);\n }\n stop() {\n if (this._widget) {\n this._widget.dispose();\n this._widget = null;\n }\n }\n};\nInspectTokensController = InspectTokensController_1 = __decorate([\n __param(1, IStandaloneThemeService),\n __param(2, ILanguageService)\n], InspectTokensController);\nclass InspectTokens extends EditorAction {\n constructor() {\n super({\n id: 'editor.action.inspectTokens',\n label: InspectTokensNLS.inspectTokensAction,\n alias: 'Developer: Inspect Tokens',\n precondition: undefined\n });\n }\n run(accessor, editor) {\n const controller = InspectTokensController.get(editor);\n controller?.launch();\n }\n}\nfunction renderTokenText(tokenText) {\n let result = '';\n for (let charIndex = 0, len = tokenText.length; charIndex < len; charIndex++) {\n const charCode = tokenText.charCodeAt(charIndex);\n switch (charCode) {\n case 9 /* CharCode.Tab */:\n result += '\\u2192'; // &rarr;\n break;\n case 32 /* CharCode.Space */:\n result += '\\u00B7'; // &middot;\n break;\n default:\n result += String.fromCharCode(charCode);\n }\n }\n return result;\n}\nfunction getSafeTokenizationSupport(languageIdCodec, languageId) {\n const tokenizationSupport = TokenizationRegistry.get(languageId);\n if (tokenizationSupport) {\n return tokenizationSupport;\n }\n const encodedLanguageId = languageIdCodec.encodeLanguageId(languageId);\n return {\n getInitialState: () => NullState,\n tokenize: (line, hasEOL, state) => nullTokenize(languageId, state),\n tokenizeEncoded: (line, hasEOL, state) => nullTokenizeEncoded(encodedLanguageId, state)\n };\n}\nclass InspectTokensWidget extends Disposable {\n static { this._ID = 'editor.contrib.inspectTokensWidget'; }\n constructor(editor, languageService) {\n super();\n // Editor.IContentWidget.allowEditorOverflow\n this.allowEditorOverflow = true;\n this._editor = editor;\n this._languageService = languageService;\n this._model = this._editor.getModel();\n this._domNode = document.createElement('div');\n this._domNode.className = 'tokens-inspect-widget';\n this._tokenizationSupport = getSafeTokenizationSupport(this._languageService.languageIdCodec, this._model.getLanguageId());\n this._compute(this._editor.getPosition());\n this._register(this._editor.onDidChangeCursorPosition((e) => this._compute(this._editor.getPosition())));\n this._editor.addContentWidget(this);\n }\n dispose() {\n this._editor.removeContentWidget(this);\n super.dispose();\n }\n getId() {\n return InspectTokensWidget._ID;\n }\n _compute(position) {\n const data = this._getTokensAtLine(position.lineNumber);\n let token1Index = 0;\n for (let i = data.tokens1.length - 1; i >= 0; i--) {\n const t = data.tokens1[i];\n if (position.column - 1 >= t.offset) {\n token1Index = i;\n break;\n }\n }\n let token2Index = 0;\n for (let i = (data.tokens2.length >>> 1); i >= 0; i--) {\n if (position.column - 1 >= data.tokens2[(i << 1)]) {\n token2Index = i;\n break;\n }\n }\n const lineContent = this._model.getLineContent(position.lineNumber);\n let tokenText = '';\n if (token1Index < data.tokens1.length) {\n const tokenStartIndex = data.tokens1[token1Index].offset;\n const tokenEndIndex = token1Index + 1 < data.tokens1.length ? data.tokens1[token1Index + 1].offset : lineContent.length;\n tokenText = lineContent.substring(tokenStartIndex, tokenEndIndex);\n }\n reset(this._domNode, $('h2.tm-token', undefined, renderTokenText(tokenText), $('span.tm-token-length', undefined, `${tokenText.length} ${tokenText.length === 1 ? 'char' : 'chars'}`)));\n append(this._domNode, $('hr.tokens-inspect-separator', { 'style': 'clear:both' }));\n const metadata = (token2Index << 1) + 1 < data.tokens2.length ? this._decodeMetadata(data.tokens2[(token2Index << 1) + 1]) : null;\n append(this._domNode, $('table.tm-metadata-table', undefined, $('tbody', undefined, $('tr', undefined, $('td.tm-metadata-key', undefined, 'language'), $('td.tm-metadata-value', undefined, `${metadata ? metadata.languageId : '-?-'}`)), $('tr', undefined, $('td.tm-metadata-key', undefined, 'token type'), $('td.tm-metadata-value', undefined, `${metadata ? this._tokenTypeToString(metadata.tokenType) : '-?-'}`)), $('tr', undefined, $('td.tm-metadata-key', undefined, 'font style'), $('td.tm-metadata-value', undefined, `${metadata ? this._fontStyleToString(metadata.fontStyle) : '-?-'}`)), $('tr', undefined, $('td.tm-metadata-key', undefined, 'foreground'), $('td.tm-metadata-value', undefined, `${metadata ? Color.Format.CSS.formatHex(metadata.foreground) : '-?-'}`)), $('tr', undefined, $('td.tm-metadata-key', undefined, 'background'), $('td.tm-metadata-value', undefined, `${metadata ? Color.Format.CSS.formatHex(metadata.background) : '-?-'}`)))));\n append(this._domNode, $('hr.tokens-inspect-separator'));\n if (token1Index < data.tokens1.length) {\n append(this._domNode, $('span.tm-token-type', undefined, data.tokens1[token1Index].type));\n }\n this._editor.layoutContentWidget(this);\n }\n _decodeMetadata(metadata) {\n const colorMap = TokenizationRegistry.getColorMap();\n const languageId = TokenMetadata.getLanguageId(metadata);\n const tokenType = TokenMetadata.getTokenType(metadata);\n const fontStyle = TokenMetadata.getFontStyle(metadata);\n const foreground = TokenMetadata.getForeground(metadata);\n const background = TokenMetadata.getBackground(metadata);\n return {\n languageId: this._languageService.languageIdCodec.decodeLanguageId(languageId),\n tokenType: tokenType,\n fontStyle: fontStyle,\n foreground: colorMap[foreground],\n background: colorMap[background]\n };\n }\n _tokenTypeToString(tokenType) {\n switch (tokenType) {\n case 0 /* StandardTokenType.Other */: return 'Other';\n case 1 /* StandardTokenType.Comment */: return 'Comment';\n case 2 /* StandardTokenType.String */: return 'String';\n case 3 /* StandardTokenType.RegEx */: return 'RegEx';\n default: return '??';\n }\n }\n _fontStyleToString(fontStyle) {\n let r = '';\n if (fontStyle & 1 /* FontStyle.Italic */) {\n r += 'italic ';\n }\n if (fontStyle & 2 /* FontStyle.Bold */) {\n r += 'bold ';\n }\n if (fontStyle & 4 /* FontStyle.Underline */) {\n r += 'underline ';\n }\n if (fontStyle & 8 /* FontStyle.Strikethrough */) {\n r += 'strikethrough ';\n }\n if (r.length === 0) {\n r = '---';\n }\n return r;\n }\n _getTokensAtLine(lineNumber) {\n const stateBeforeLine = this._getStateBeforeLine(lineNumber);\n const tokenizationResult1 = this._tokenizationSupport.tokenize(this._model.getLineContent(lineNumber), true, stateBeforeLine);\n const tokenizationResult2 = this._tokenizationSupport.tokenizeEncoded(this._model.getLineContent(lineNumber), true, stateBeforeLine);\n return {\n startState: stateBeforeLine,\n tokens1: tokenizationResult1.tokens,\n tokens2: tokenizationResult2.tokens,\n endState: tokenizationResult1.endState\n };\n }\n _getStateBeforeLine(lineNumber) {\n let state = this._tokenizationSupport.getInitialState();\n for (let i = 1; i < lineNumber; i++) {\n const tokenizationResult = this._tokenizationSupport.tokenize(this._model.getLineContent(i), true, state);\n state = tokenizationResult.endState;\n }\n return state;\n }\n getDomNode() {\n return this._domNode;\n }\n getPosition() {\n return {\n position: this._editor.getPosition(),\n preference: [2 /* ContentWidgetPositionPreference.BELOW */, 1 /* ContentWidgetPositionPreference.ABOVE */]\n };\n }\n}\nregisterEditorContribution(InspectTokensController.ID, InspectTokensController, 4 /* EditorContributionInstantiation.Lazy */);\nregisterEditorAction(InspectTokens);\n",
59
- "import { localize } from '../../../nls.js';\nimport { Registry } from '../../registry/common/platform.js';\nimport { DisposableStore } from '../../../base/common/lifecycle.js';\nimport { IContextKeyService } from '../../contextkey/common/contextkey.js';\nimport { IKeybindingService } from '../../keybinding/common/keybinding.js';\nimport { Extensions } from '../common/quickAccess.js';\nimport { IQuickInputService } from '../common/quickInput.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar HelpQuickAccessProvider_1;\nlet HelpQuickAccessProvider = class HelpQuickAccessProvider {\n static { HelpQuickAccessProvider_1 = this; }\n static { this.PREFIX = '?'; }\n constructor(quickInputService, keybindingService, contextKeyService) {\n this.quickInputService = quickInputService;\n this.keybindingService = keybindingService;\n this.contextKeyService = contextKeyService;\n this.registry = Registry.as(Extensions.Quickaccess);\n }\n provide(picker) {\n const disposables = new DisposableStore();\n // Open a picker with the selected value if picked\n disposables.add(picker.onDidAccept(() => {\n const [item] = picker.selectedItems;\n if (item) {\n this.quickInputService.quickAccess.show(item.prefix, { preserveValue: true });\n }\n }));\n // Also open a picker when we detect the user typed the exact\n // name of a provider (e.g. `?term` for terminals)\n disposables.add(picker.onDidChangeValue(value => {\n const providerDescriptor = this.registry.getQuickAccessProvider(value.substr(HelpQuickAccessProvider_1.PREFIX.length), this.contextKeyService);\n if (providerDescriptor?.prefix && providerDescriptor.prefix !== HelpQuickAccessProvider_1.PREFIX) {\n this.quickInputService.quickAccess.show(providerDescriptor.prefix, { preserveValue: true });\n }\n }));\n // Fill in all providers\n picker.items = this.getQuickAccessProviders().filter(p => p.prefix !== HelpQuickAccessProvider_1.PREFIX);\n return disposables;\n }\n getQuickAccessProviders() {\n const providers = this.registry\n .getQuickAccessProviders(this.contextKeyService)\n .sort((providerA, providerB) => providerA.prefix.localeCompare(providerB.prefix))\n .flatMap(provider => this.createPicks(provider));\n return providers;\n }\n createPicks(provider) {\n return provider.helpEntries.map(helpEntry => {\n const prefix = helpEntry.prefix || provider.prefix;\n const label = prefix || '\\u2026' /* ... */;\n return {\n prefix,\n label,\n keybinding: helpEntry.commandId ? this.keybindingService.lookupKeybinding(helpEntry.commandId) : undefined,\n ariaLabel: localize(1811, \"{0}, {1}\", label, helpEntry.description),\n description: helpEntry.description\n };\n });\n }\n};\nHelpQuickAccessProvider = HelpQuickAccessProvider_1 = __decorate([\n __param(0, IQuickInputService),\n __param(1, IKeybindingService),\n __param(2, IContextKeyService)\n], HelpQuickAccessProvider);\n\nexport { HelpQuickAccessProvider };\n",
60
- "import { Registry } from '../../../../platform/registry/common/platform.js';\nimport { Extensions } from '../../../../platform/quickinput/common/quickAccess.js';\nimport { QuickHelpNLS } from '../../../common/standaloneStrings.js';\nimport { HelpQuickAccessProvider } from '../../../../platform/quickinput/browser/helpQuickAccess.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nRegistry.as(Extensions.Quickaccess).registerQuickAccessProvider({\n ctor: HelpQuickAccessProvider,\n prefix: '',\n helpEntries: [{ description: QuickHelpNLS.helpQuickAccessActionLabel }]\n});\n",
61
- "import { fuzzyScore, createMatches } from './filters.js';\nimport { sep } from './path.js';\nimport { isWindows } from './platform.js';\n\nconst NO_SCORE2 = [undefined, []];\nfunction scoreFuzzy2(target, query, patternStart = 0, wordStart = 0) {\n // Score: multiple inputs\n const preparedQuery = query;\n if (preparedQuery.values && preparedQuery.values.length > 1) {\n return doScoreFuzzy2Multiple(target, preparedQuery.values, patternStart, wordStart);\n }\n // Score: single input\n return doScoreFuzzy2Single(target, query, patternStart, wordStart);\n}\nfunction doScoreFuzzy2Multiple(target, query, patternStart, wordStart) {\n let totalScore = 0;\n const totalMatches = [];\n for (const queryPiece of query) {\n const [score, matches] = doScoreFuzzy2Single(target, queryPiece, patternStart, wordStart);\n if (typeof score !== 'number') {\n // if a single query value does not match, return with\n // no score entirely, we require all queries to match\n return NO_SCORE2;\n }\n totalScore += score;\n totalMatches.push(...matches);\n }\n // if we have a score, ensure that the positions are\n // sorted in ascending order and distinct\n return [totalScore, normalizeMatches(totalMatches)];\n}\nfunction doScoreFuzzy2Single(target, query, patternStart, wordStart) {\n const score = fuzzyScore(query.normalized, query.normalizedLowercase, patternStart, target, target.toLowerCase(), wordStart, { firstMatchCanBeWeak: true, boostFullMatch: true });\n if (!score) {\n return NO_SCORE2;\n }\n return [score[0], createMatches(score)];\n}\nfunction normalizeMatches(matches) {\n // sort matches by start to be able to normalize\n const sortedMatches = matches.sort((matchA, matchB) => {\n return matchA.start - matchB.start;\n });\n // merge matches that overlap\n const normalizedMatches = [];\n let currentMatch = undefined;\n for (const match of sortedMatches) {\n // if we have no current match or the matches\n // do not overlap, we take it as is and remember\n // it for future merging\n if (!currentMatch || !matchOverlaps(currentMatch, match)) {\n currentMatch = match;\n normalizedMatches.push(match);\n }\n // otherwise we merge the matches\n else {\n currentMatch.start = Math.min(currentMatch.start, match.start);\n currentMatch.end = Math.max(currentMatch.end, match.end);\n }\n }\n return normalizedMatches;\n}\nfunction matchOverlaps(matchA, matchB) {\n if (matchA.end < matchB.start) {\n return false; // A ends before B starts\n }\n if (matchB.end < matchA.start) {\n return false; // B ends before A starts\n }\n return true;\n}\n/*\n * If a query is wrapped in quotes, the user does not want to\n * use fuzzy search for this query.\n */\nfunction queryExpectsExactMatch(query) {\n return query.startsWith('\"') && query.endsWith('\"');\n}\n/**\n * Helper function to prepare a search value for scoring by removing unwanted characters\n * and allowing to score on multiple pieces separated by whitespace character.\n */\nconst MULTIPLE_QUERY_VALUES_SEPARATOR = ' ';\nfunction prepareQuery(original) {\n if (typeof original !== 'string') {\n original = '';\n }\n const originalLowercase = original.toLowerCase();\n const { pathNormalized, normalized, normalizedLowercase } = normalizeQuery(original);\n const containsPathSeparator = pathNormalized.indexOf(sep) >= 0;\n const expectExactMatch = queryExpectsExactMatch(original);\n let values = undefined;\n const originalSplit = original.split(MULTIPLE_QUERY_VALUES_SEPARATOR);\n if (originalSplit.length > 1) {\n for (const originalPiece of originalSplit) {\n const expectExactMatchPiece = queryExpectsExactMatch(originalPiece);\n const { pathNormalized: pathNormalizedPiece, normalized: normalizedPiece, normalizedLowercase: normalizedLowercasePiece } = normalizeQuery(originalPiece);\n if (normalizedPiece) {\n if (!values) {\n values = [];\n }\n values.push({\n original: originalPiece,\n originalLowercase: originalPiece.toLowerCase(),\n pathNormalized: pathNormalizedPiece,\n normalized: normalizedPiece,\n normalizedLowercase: normalizedLowercasePiece,\n expectContiguousMatch: expectExactMatchPiece\n });\n }\n }\n }\n return { original, originalLowercase, pathNormalized, normalized, normalizedLowercase, values, containsPathSeparator, expectContiguousMatch: expectExactMatch };\n}\nfunction normalizeQuery(original) {\n let pathNormalized;\n if (isWindows) {\n pathNormalized = original.replace(/\\//g, sep); // Help Windows users to search for paths when using slash\n }\n else {\n pathNormalized = original.replace(/\\\\/g, sep); // Help macOS/Linux users to search for paths when using backslash\n }\n // remove certain characters that help find better results:\n // - quotes: are used for exact match search\n // - wildcards: are used for fuzzy matching\n // - whitespace: are used to separate queries\n // - ellipsis: sometimes used to indicate any path segments\n // - trailing hash: used by some language servers (e.g. rust-analyzer) as query modifiers\n const normalized = pathNormalized.replace(/[\\*\\u2026\\s\"]/g, '').replace(/(?<=.)#$/, '');\n return {\n pathNormalized,\n normalized,\n normalizedLowercase: normalized.toLowerCase()\n };\n}\nfunction pieceToQuery(arg1) {\n if (Array.isArray(arg1)) {\n return prepareQuery(arg1.map(piece => piece.original).join(MULTIPLE_QUERY_VALUES_SEPARATOR));\n }\n return prepareQuery(arg1.original);\n}\n//#endregion\n\nexport { pieceToQuery, prepareQuery, scoreFuzzy2 };\n",
62
- "import { DeferredPromise } from '../../../../base/common/async.js';\nimport { CancellationTokenSource } from '../../../../base/common/cancellation.js';\nimport { Codicon } from '../../../../base/common/codicons.js';\nimport { ThemeIcon } from '../../../../base/common/themables.js';\nimport { pieceToQuery, scoreFuzzy2, prepareQuery } from '../../../../base/common/fuzzyScorer.js';\nimport { Disposable, DisposableStore, toDisposable, MutableDisposable } from '../../../../base/common/lifecycle.js';\nimport { trim, format } from '../../../../base/common/strings.js';\nimport { Range } from '../../../common/core/range.js';\nimport { SymbolKinds, getAriaLabelForSymbol } from '../../../common/languages.js';\nimport { IOutlineModelService } from '../../documentSymbols/browser/outlineModel.js';\nimport { AbstractEditorNavigationQuickAccessProvider } from './editorNavigationQuickAccess.js';\nimport { localize } from '../../../../nls.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { findLast } from '../../../../base/common/arraysFind.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar AbstractGotoSymbolQuickAccessProvider_1;\nlet AbstractGotoSymbolQuickAccessProvider = class AbstractGotoSymbolQuickAccessProvider extends AbstractEditorNavigationQuickAccessProvider {\n static { AbstractGotoSymbolQuickAccessProvider_1 = this; }\n static { this.PREFIX = '@'; }\n static { this.SCOPE_PREFIX = ':'; }\n static { this.PREFIX_BY_CATEGORY = `${this.PREFIX}${this.SCOPE_PREFIX}`; }\n constructor(_languageFeaturesService, _outlineModelService, options = Object.create(null)) {\n super(options);\n this._languageFeaturesService = _languageFeaturesService;\n this._outlineModelService = _outlineModelService;\n this.options = options;\n this.options.canAcceptInBackground = true;\n }\n provideWithoutTextEditor(picker) {\n this.provideLabelPick(picker, localize(1394, \"To go to a symbol, first open a text editor with symbol information.\"));\n return Disposable.None;\n }\n provideWithTextEditor(context, picker, token, runOptions) {\n const editor = context.editor;\n const model = this.getModel(editor);\n if (!model) {\n return Disposable.None;\n }\n // Provide symbols from model if available in registry\n if (this._languageFeaturesService.documentSymbolProvider.has(model)) {\n return this.doProvideWithEditorSymbols(context, model, picker, token, runOptions);\n }\n // Otherwise show an entry for a model without registry\n // But give a chance to resolve the symbols at a later\n // point if possible\n return this.doProvideWithoutEditorSymbols(context, model, picker, token);\n }\n doProvideWithoutEditorSymbols(context, model, picker, token) {\n const disposables = new DisposableStore();\n // Generic pick for not having any symbol information\n this.provideLabelPick(picker, localize(1395, \"The active text editor does not provide symbol information.\"));\n // Wait for changes to the registry and see if eventually\n // we do get symbols. This can happen if the picker is opened\n // very early after the model has loaded but before the\n // language registry is ready.\n // https://github.com/microsoft/vscode/issues/70607\n (async () => {\n const result = await this.waitForLanguageSymbolRegistry(model, disposables);\n if (!result || token.isCancellationRequested) {\n return;\n }\n disposables.add(this.doProvideWithEditorSymbols(context, model, picker, token));\n })();\n return disposables;\n }\n provideLabelPick(picker, label) {\n picker.items = [{ label, index: 0, kind: 14 /* SymbolKind.String */ }];\n picker.ariaLabel = label;\n }\n async waitForLanguageSymbolRegistry(model, disposables) {\n if (this._languageFeaturesService.documentSymbolProvider.has(model)) {\n return true;\n }\n const symbolProviderRegistryPromise = new DeferredPromise();\n // Resolve promise when registry knows model\n const symbolProviderListener = disposables.add(this._languageFeaturesService.documentSymbolProvider.onDidChange(() => {\n if (this._languageFeaturesService.documentSymbolProvider.has(model)) {\n symbolProviderListener.dispose();\n symbolProviderRegistryPromise.complete(true);\n }\n }));\n // Resolve promise when we get disposed too\n disposables.add(toDisposable(() => symbolProviderRegistryPromise.complete(false)));\n return symbolProviderRegistryPromise.p;\n }\n doProvideWithEditorSymbols(context, model, picker, token, runOptions) {\n const editor = context.editor;\n const disposables = new DisposableStore();\n // Goto symbol once picked\n disposables.add(picker.onDidAccept(event => {\n const [item] = picker.selectedItems;\n if (item && item.range) {\n // When shift is held and attach is available, delegate to attach\n // (e.g. to add to chat context) instead of navigating\n if (picker.keyMods.shift && item.attach) {\n item.attach(picker.keyMods, event);\n return;\n }\n this.gotoLocation(context, { range: item.range.selection, keyMods: picker.keyMods, preserveFocus: event.inBackground });\n runOptions?.handleAccept?.(item, event.inBackground);\n if (!event.inBackground) {\n picker.hide();\n }\n }\n }));\n // Goto symbol side by side if enabled\n disposables.add(picker.onDidTriggerItemButton(({ item }) => {\n if (item && item.range) {\n this.gotoLocation(context, { range: item.range.selection, keyMods: picker.keyMods, forceSideBySide: true });\n picker.hide();\n }\n }));\n // Resolve symbols from document once and reuse this\n // request for all filtering and typing then on\n const symbolsPromise = this.getDocumentSymbols(model, token);\n // Set initial picks and update on type\n const picksCts = disposables.add(new MutableDisposable());\n const updatePickerItems = async (positionToEnclose) => {\n // Cancel any previous ask for picks and busy\n picksCts?.value?.cancel();\n picker.busy = false;\n // Create new cancellation source for this run\n picksCts.value = new CancellationTokenSource();\n // Collect symbol picks\n picker.busy = true;\n try {\n const query = prepareQuery(picker.value.substr(AbstractGotoSymbolQuickAccessProvider_1.PREFIX.length).trim());\n const items = await this.doGetSymbolPicks(symbolsPromise, query, undefined, picksCts.value.token, model);\n if (token.isCancellationRequested) {\n return;\n }\n if (items.length > 0) {\n picker.items = items;\n if (positionToEnclose && query.original.length === 0) {\n const candidate = findLast(items, item => Boolean(item.type !== 'separator' && item.range && Range.containsPosition(item.range.decoration, positionToEnclose)));\n if (candidate) {\n picker.activeItems = [candidate];\n }\n }\n }\n else {\n if (query.original.length > 0) {\n this.provideLabelPick(picker, localize(1396, \"No matching editor symbols\"));\n }\n else {\n this.provideLabelPick(picker, localize(1397, \"No editor symbols\"));\n }\n }\n }\n finally {\n if (!token.isCancellationRequested) {\n picker.busy = false;\n }\n }\n };\n disposables.add(picker.onDidChangeValue(() => updatePickerItems(undefined)));\n updatePickerItems(editor.getSelection()?.getPosition());\n // Reveal and decorate when active item changes\n disposables.add(picker.onDidChangeActive(() => {\n const [item] = picker.activeItems;\n if (item && item.range) {\n // Reveal\n editor.revealRangeInCenter(item.range.selection, 0 /* ScrollType.Smooth */);\n // Decorate\n this.addDecorations(editor, item.range.decoration);\n }\n }));\n return disposables;\n }\n async doGetSymbolPicks(symbolsPromise, query, options, token, model) {\n const symbols = await symbolsPromise;\n if (token.isCancellationRequested) {\n return [];\n }\n const filterBySymbolKind = query.original.indexOf(AbstractGotoSymbolQuickAccessProvider_1.SCOPE_PREFIX) === 0;\n const filterPos = filterBySymbolKind ? 1 : 0;\n // Split between symbol and container query\n let symbolQuery;\n let containerQuery;\n if (query.values && query.values.length > 1) {\n symbolQuery = pieceToQuery(query.values[0]); // symbol: only match on first part\n containerQuery = pieceToQuery(query.values.slice(1)); // container: match on all but first parts\n }\n else {\n symbolQuery = query;\n }\n // Convert to symbol picks and apply filtering\n let buttons;\n const openSideBySideDirection = this.options?.openSideBySideDirection?.();\n if (openSideBySideDirection) {\n buttons = [{\n iconClass: openSideBySideDirection === 'right' ? ThemeIcon.asClassName(Codicon.splitHorizontal) : ThemeIcon.asClassName(Codicon.splitVertical),\n tooltip: openSideBySideDirection === 'right' ? localize(1398, \"Open to the Side\") : localize(1399, \"Open to the Bottom\")\n }];\n }\n const filteredSymbolPicks = [];\n for (let index = 0; index < symbols.length; index++) {\n const symbol = symbols[index];\n const symbolLabel = trim(symbol.name);\n const symbolLabelWithIcon = `$(${SymbolKinds.toIcon(symbol.kind).id}) ${symbolLabel}`;\n const symbolLabelIconOffset = symbolLabelWithIcon.length - symbolLabel.length;\n let containerLabel = symbol.containerName;\n if (options?.extraContainerLabel) {\n if (containerLabel) {\n containerLabel = `${options.extraContainerLabel} • ${containerLabel}`;\n }\n else {\n containerLabel = options.extraContainerLabel;\n }\n }\n let symbolScore = undefined;\n let symbolMatches = undefined;\n let containerScore = undefined;\n let containerMatches = undefined;\n if (query.original.length > filterPos) {\n // First: try to score on the entire query, it is possible that\n // the symbol matches perfectly (e.g. searching for \"change log\"\n // can be a match on a markdown symbol \"change log\"). In that\n // case we want to skip the container query altogether.\n let skipContainerQuery = false;\n if (symbolQuery !== query) {\n [symbolScore, symbolMatches] = scoreFuzzy2(symbolLabelWithIcon, { ...query, values: undefined /* disable multi-query support */ }, filterPos, symbolLabelIconOffset);\n if (typeof symbolScore === 'number') {\n skipContainerQuery = true; // since we consumed the query, skip any container matching\n }\n }\n // Otherwise: score on the symbol query and match on the container later\n if (typeof symbolScore !== 'number') {\n [symbolScore, symbolMatches] = scoreFuzzy2(symbolLabelWithIcon, symbolQuery, filterPos, symbolLabelIconOffset);\n if (typeof symbolScore !== 'number') {\n continue;\n }\n }\n // Score by container if specified\n if (!skipContainerQuery && containerQuery) {\n if (containerLabel && containerQuery.original.length > 0) {\n [containerScore, containerMatches] = scoreFuzzy2(containerLabel, containerQuery);\n }\n if (typeof containerScore !== 'number') {\n continue;\n }\n if (typeof symbolScore === 'number') {\n symbolScore += containerScore; // boost symbolScore by containerScore\n }\n }\n }\n const deprecated = symbol.tags && symbol.tags.indexOf(1 /* SymbolTag.Deprecated */) >= 0;\n filteredSymbolPicks.push({\n index,\n kind: symbol.kind,\n score: symbolScore,\n label: symbolLabelWithIcon,\n ariaLabel: getAriaLabelForSymbol(symbol.name, symbol.kind),\n description: containerLabel,\n highlights: deprecated ? undefined : {\n label: symbolMatches,\n description: containerMatches\n },\n range: {\n selection: Range.collapseToStart(symbol.selectionRange),\n decoration: symbol.range\n },\n uri: model.uri,\n symbolName: symbolLabel,\n strikethrough: deprecated,\n buttons\n });\n }\n // Sort by score\n const sortedFilteredSymbolPicks = filteredSymbolPicks.sort((symbolA, symbolB) => filterBySymbolKind ?\n this.compareByKindAndScore(symbolA, symbolB) :\n this.compareByScore(symbolA, symbolB));\n // Add separator for types\n // - @ only total number of symbols\n // - @: grouped by symbol kind\n let symbolPicks = [];\n if (filterBySymbolKind) {\n let lastSymbolKind = undefined;\n let lastSeparator = undefined;\n let lastSymbolKindCounter = 0;\n function updateLastSeparatorLabel() {\n if (lastSeparator && typeof lastSymbolKind === 'number' && lastSymbolKindCounter > 0) {\n lastSeparator.label = format(NLS_SYMBOL_KIND_CACHE[lastSymbolKind] || FALLBACK_NLS_SYMBOL_KIND, lastSymbolKindCounter);\n }\n }\n for (const symbolPick of sortedFilteredSymbolPicks) {\n // Found new kind\n if (lastSymbolKind !== symbolPick.kind) {\n // Update last separator with number of symbols we found for kind\n updateLastSeparatorLabel();\n lastSymbolKind = symbolPick.kind;\n lastSymbolKindCounter = 1;\n // Add new separator for new kind\n lastSeparator = { type: 'separator' };\n symbolPicks.push(lastSeparator);\n }\n // Existing kind, keep counting\n else {\n lastSymbolKindCounter++;\n }\n // Add to final result\n symbolPicks.push(symbolPick);\n }\n // Update last separator with number of symbols we found for kind\n updateLastSeparatorLabel();\n }\n else if (sortedFilteredSymbolPicks.length > 0) {\n symbolPicks = [\n { label: localize(1400, \"symbols ({0})\", filteredSymbolPicks.length), type: 'separator' },\n ...sortedFilteredSymbolPicks\n ];\n }\n return symbolPicks;\n }\n compareByScore(symbolA, symbolB) {\n if (typeof symbolA.score !== 'number' && typeof symbolB.score === 'number') {\n return 1;\n }\n else if (typeof symbolA.score === 'number' && typeof symbolB.score !== 'number') {\n return -1;\n }\n if (typeof symbolA.score === 'number' && typeof symbolB.score === 'number') {\n if (symbolA.score > symbolB.score) {\n return -1;\n }\n else if (symbolA.score < symbolB.score) {\n return 1;\n }\n }\n if (symbolA.index < symbolB.index) {\n return -1;\n }\n else if (symbolA.index > symbolB.index) {\n return 1;\n }\n return 0;\n }\n compareByKindAndScore(symbolA, symbolB) {\n const kindA = NLS_SYMBOL_KIND_CACHE[symbolA.kind] || FALLBACK_NLS_SYMBOL_KIND;\n const kindB = NLS_SYMBOL_KIND_CACHE[symbolB.kind] || FALLBACK_NLS_SYMBOL_KIND;\n // Sort by type first if scoped search\n const result = kindA.localeCompare(kindB);\n if (result === 0) {\n return this.compareByScore(symbolA, symbolB);\n }\n return result;\n }\n async getDocumentSymbols(document, token) {\n const model = await this._outlineModelService.getOrCreate(document, token);\n return token.isCancellationRequested ? [] : model.asListOfDocumentSymbols();\n }\n};\nAbstractGotoSymbolQuickAccessProvider = AbstractGotoSymbolQuickAccessProvider_1 = __decorate([\n __param(0, ILanguageFeaturesService),\n __param(1, IOutlineModelService)\n], AbstractGotoSymbolQuickAccessProvider);\n// #region NLS Helpers\nconst FALLBACK_NLS_SYMBOL_KIND = localize(1401, \"properties ({0})\");\nconst NLS_SYMBOL_KIND_CACHE = {\n [5 /* SymbolKind.Method */]: localize(1402, \"methods ({0})\"),\n [11 /* SymbolKind.Function */]: localize(1403, \"functions ({0})\"),\n [8 /* SymbolKind.Constructor */]: localize(1404, \"constructors ({0})\"),\n [12 /* SymbolKind.Variable */]: localize(1405, \"variables ({0})\"),\n [4 /* SymbolKind.Class */]: localize(1406, \"classes ({0})\"),\n [22 /* SymbolKind.Struct */]: localize(1407, \"structs ({0})\"),\n [23 /* SymbolKind.Event */]: localize(1408, \"events ({0})\"),\n [24 /* SymbolKind.Operator */]: localize(1409, \"operators ({0})\"),\n [10 /* SymbolKind.Interface */]: localize(1410, \"interfaces ({0})\"),\n [2 /* SymbolKind.Namespace */]: localize(1411, \"namespaces ({0})\"),\n [3 /* SymbolKind.Package */]: localize(1412, \"packages ({0})\"),\n [25 /* SymbolKind.TypeParameter */]: localize(1413, \"type parameters ({0})\"),\n [1 /* SymbolKind.Module */]: localize(1414, \"modules ({0})\"),\n [6 /* SymbolKind.Property */]: localize(1415, \"properties ({0})\"),\n [9 /* SymbolKind.Enum */]: localize(1416, \"enumerations ({0})\"),\n [21 /* SymbolKind.EnumMember */]: localize(1417, \"enumeration members ({0})\"),\n [14 /* SymbolKind.String */]: localize(1418, \"strings ({0})\"),\n [0 /* SymbolKind.File */]: localize(1419, \"files ({0})\"),\n [17 /* SymbolKind.Array */]: localize(1420, \"arrays ({0})\"),\n [15 /* SymbolKind.Number */]: localize(1421, \"numbers ({0})\"),\n [16 /* SymbolKind.Boolean */]: localize(1422, \"booleans ({0})\"),\n [18 /* SymbolKind.Object */]: localize(1423, \"objects ({0})\"),\n [19 /* SymbolKind.Key */]: localize(1424, \"keys ({0})\"),\n [7 /* SymbolKind.Field */]: localize(1425, \"fields ({0})\"),\n [13 /* SymbolKind.Constant */]: localize(1426, \"constants ({0})\")\n};\n//#endregion\n\nexport { AbstractGotoSymbolQuickAccessProvider };\n",
63
- "import '../../../../base/browser/ui/codicons/codicon/codicon.css';\nimport '../../../../base/browser/ui/codicons/codicon/codicon-modifiers.css';\nimport '../../../contrib/symbolIcons/browser/symbolIcons.js';\nimport { AbstractGotoSymbolQuickAccessProvider } from '../../../contrib/quickAccess/browser/gotoSymbolQuickAccess.js';\nimport { Registry } from '../../../../platform/registry/common/platform.js';\nimport { Extensions } from '../../../../platform/quickinput/common/quickAccess.js';\nimport { ICodeEditorService } from '../../../browser/services/codeEditorService.js';\nimport { QuickOutlineNLS } from '../../../common/standaloneStrings.js';\nimport { Event } from '../../../../base/common/event.js';\nimport { EditorAction, registerEditorAction } from '../../../browser/editorExtensions.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { IQuickInputService, ItemActivation } from '../../../../platform/quickinput/common/quickInput.js';\nimport { IOutlineModelService } from '../../../contrib/documentSymbols/browser/outlineModel.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nlet StandaloneGotoSymbolQuickAccessProvider = class StandaloneGotoSymbolQuickAccessProvider extends AbstractGotoSymbolQuickAccessProvider {\n constructor(editorService, languageFeaturesService, outlineModelService) {\n super(languageFeaturesService, outlineModelService);\n this.editorService = editorService;\n this.onDidActiveTextEditorControlChange = Event.None;\n }\n get activeTextEditorControl() {\n return this.editorService.getFocusedCodeEditor() ?? undefined;\n }\n};\nStandaloneGotoSymbolQuickAccessProvider = __decorate([\n __param(0, ICodeEditorService),\n __param(1, ILanguageFeaturesService),\n __param(2, IOutlineModelService)\n], StandaloneGotoSymbolQuickAccessProvider);\nclass GotoSymbolAction extends EditorAction {\n static { this.ID = 'editor.action.quickOutline'; }\n constructor() {\n super({\n id: GotoSymbolAction.ID,\n label: QuickOutlineNLS.quickOutlineActionLabel,\n alias: 'Go to Symbol...',\n precondition: EditorContextKeys.hasDocumentSymbolProvider,\n kbOpts: {\n kbExpr: EditorContextKeys.focus,\n primary: 2048 /* KeyMod.CtrlCmd */ | 1024 /* KeyMod.Shift */ | 45 /* KeyCode.KeyO */,\n weight: 100 /* KeybindingWeight.EditorContrib */\n },\n contextMenuOpts: {\n group: 'navigation',\n order: 3\n }\n });\n }\n run(accessor) {\n accessor.get(IQuickInputService).quickAccess.show(AbstractGotoSymbolQuickAccessProvider.PREFIX, { itemActivation: ItemActivation.NONE });\n }\n}\nregisterEditorAction(GotoSymbolAction);\nRegistry.as(Extensions.Quickaccess).registerQuickAccessProvider({\n ctor: StandaloneGotoSymbolQuickAccessProvider,\n prefix: AbstractGotoSymbolQuickAccessProvider.PREFIX,\n helpEntries: [\n { description: QuickOutlineNLS.quickOutlineActionLabel, prefix: AbstractGotoSymbolQuickAccessProvider.PREFIX, commandId: GotoSymbolAction.ID },\n { description: QuickOutlineNLS.quickOutlineByCategoryActionLabel, prefix: AbstractGotoSymbolQuickAccessProvider.PREFIX_BY_CATEGORY }\n ]\n});\n\nexport { GotoSymbolAction, StandaloneGotoSymbolQuickAccessProvider };\n",
64
- "/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nfunction countMapFrom(values) {\n const map = new Map();\n for (const value of values) {\n map.set(value, (map.get(value) ?? 0) + 1);\n }\n return map;\n}\n/**\n * Implementation of tf-idf (term frequency-inverse document frequency) for a set of\n * documents where each document contains one or more chunks of text.\n * Each document is identified by a key, and the score for each document is computed\n * by taking the max score over all the chunks in the document.\n */\nclass TfIdfCalculator {\n constructor() {\n /**\n * Total number of chunks\n */\n this.chunkCount = 0;\n this.chunkOccurrences = new Map();\n this.documents = new Map();\n }\n calculateScores(query, token) {\n const embedding = this.computeEmbedding(query);\n const idfCache = new Map();\n const scores = [];\n // For each document, generate one score\n for (const [key, doc] of this.documents) {\n if (token.isCancellationRequested) {\n return [];\n }\n for (const chunk of doc.chunks) {\n const score = this.computeSimilarityScore(chunk, embedding, idfCache);\n if (score > 0) {\n scores.push({ key, score });\n }\n }\n }\n return scores;\n }\n /**\n * Count how many times each term (word) appears in a string.\n */\n static termFrequencies(input) {\n return countMapFrom(TfIdfCalculator.splitTerms(input));\n }\n /**\n * Break a string into terms (words).\n */\n static *splitTerms(input) {\n const normalize = (word) => word.toLowerCase();\n // Only match on words that are at least 3 characters long and start with a letter\n for (const [word] of input.matchAll(/\\b\\p{Letter}[\\p{Letter}\\d]{2,}\\b/gu)) {\n yield normalize(word);\n const camelParts = word.replace(/([a-z])([A-Z])/g, '$1 $2').split(/\\s+/g);\n if (camelParts.length > 1) {\n for (const part of camelParts) {\n // Require at least 3 letters in the parts of a camel case word\n if (part.length > 2 && /\\p{Letter}{3,}/gu.test(part)) {\n yield normalize(part);\n }\n }\n }\n }\n }\n updateDocuments(documents) {\n for (const { key } of documents) {\n this.deleteDocument(key);\n }\n for (const doc of documents) {\n const chunks = [];\n for (const text of doc.textChunks) {\n // TODO: See if we can compute the tf lazily\n // The challenge is that we need to also update the `chunkOccurrences`\n // and all of those updates need to get flushed before the real TF-IDF of\n // anything is computed.\n const tf = TfIdfCalculator.termFrequencies(text);\n // Update occurrences list\n for (const term of tf.keys()) {\n this.chunkOccurrences.set(term, (this.chunkOccurrences.get(term) ?? 0) + 1);\n }\n chunks.push({ text, tf });\n }\n this.chunkCount += chunks.length;\n this.documents.set(doc.key, { chunks });\n }\n return this;\n }\n deleteDocument(key) {\n const doc = this.documents.get(key);\n if (!doc) {\n return;\n }\n this.documents.delete(key);\n this.chunkCount -= doc.chunks.length;\n // Update term occurrences for the document\n for (const chunk of doc.chunks) {\n for (const term of chunk.tf.keys()) {\n const currentOccurrences = this.chunkOccurrences.get(term);\n if (typeof currentOccurrences === 'number') {\n const newOccurrences = currentOccurrences - 1;\n if (newOccurrences <= 0) {\n this.chunkOccurrences.delete(term);\n }\n else {\n this.chunkOccurrences.set(term, newOccurrences);\n }\n }\n }\n }\n }\n computeSimilarityScore(chunk, queryEmbedding, idfCache) {\n // Compute the dot product between the chunk's embedding and the query embedding\n // Note that the chunk embedding is computed lazily on a per-term basis.\n // This lets us skip a large number of calculations because the majority\n // of chunks do not share any terms with the query.\n let sum = 0;\n for (const [term, termTfidf] of Object.entries(queryEmbedding)) {\n const chunkTf = chunk.tf.get(term);\n if (!chunkTf) {\n // Term does not appear in chunk so it has no contribution\n continue;\n }\n let chunkIdf = idfCache.get(term);\n if (typeof chunkIdf !== 'number') {\n chunkIdf = this.computeIdf(term);\n idfCache.set(term, chunkIdf);\n }\n const chunkTfidf = chunkTf * chunkIdf;\n sum += chunkTfidf * termTfidf;\n }\n return sum;\n }\n computeEmbedding(input) {\n const tf = TfIdfCalculator.termFrequencies(input);\n return this.computeTfidf(tf);\n }\n computeIdf(term) {\n const chunkOccurrences = this.chunkOccurrences.get(term) ?? 0;\n return chunkOccurrences > 0\n ? Math.log((this.chunkCount + 1) / chunkOccurrences)\n : 0;\n }\n computeTfidf(termFrequencies) {\n const embedding = Object.create(null);\n for (const [word, occurrences] of termFrequencies) {\n const idf = this.computeIdf(word);\n if (idf > 0) {\n embedding[word] = occurrences * idf;\n }\n }\n return embedding;\n }\n}\n/**\n * Normalize the scores to be between 0 and 1 and sort them decending.\n * @param scores array of scores from {@link TfIdfCalculator.calculateScores}\n * @returns normalized scores\n */\nfunction normalizeTfIdfScores(scores) {\n // copy of scores\n const result = scores.slice(0);\n // sort descending\n result.sort((a, b) => b.score - a.score);\n // normalize\n const max = result[0]?.score ?? 0;\n if (max > 0) {\n for (const score of result) {\n score.score /= max;\n }\n }\n return result;\n}\n\nexport { TfIdfCalculator, normalizeTfIdfScores };\n",
65
- "import { timeout } from '../../../base/common/async.js';\nimport { CancellationTokenSource } from '../../../base/common/cancellation.js';\nimport { Disposable, DisposableStore, MutableDisposable } from '../../../base/common/lifecycle.js';\nimport { isKeyModified } from '../common/quickInput.js';\nimport { isFunction } from '../../../base/common/types.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar TriggerAction;\n(function (TriggerAction) {\n /**\n * Do nothing after the button was clicked.\n */\n TriggerAction[TriggerAction[\"NO_ACTION\"] = 0] = \"NO_ACTION\";\n /**\n * Close the picker.\n */\n TriggerAction[TriggerAction[\"CLOSE_PICKER\"] = 1] = \"CLOSE_PICKER\";\n /**\n * Update the results of the picker.\n */\n TriggerAction[TriggerAction[\"REFRESH_PICKER\"] = 2] = \"REFRESH_PICKER\";\n /**\n * Remove the item from the picker.\n */\n TriggerAction[TriggerAction[\"REMOVE_ITEM\"] = 3] = \"REMOVE_ITEM\";\n})(TriggerAction || (TriggerAction = {}));\nfunction isPicksWithActive(obj) {\n const candidate = obj;\n return Array.isArray(candidate.items);\n}\nfunction isFastAndSlowPicks(obj) {\n const candidate = obj;\n return !!candidate.picks && candidate.additionalPicks instanceof Promise;\n}\nclass PickerQuickAccessProvider extends Disposable {\n constructor(prefix, options) {\n super();\n this.prefix = prefix;\n this.options = options;\n }\n provide(picker, token, runOptions) {\n const disposables = new DisposableStore();\n // Apply options if any\n picker.canAcceptInBackground = !!this.options?.canAcceptInBackground;\n // Disable filtering & sorting, we control the results\n picker.matchOnLabel = picker.matchOnDescription = picker.matchOnDetail = picker.sortByLabel = false;\n // Set initial picks and update on type\n let picksCts = undefined;\n const picksDisposable = disposables.add(new MutableDisposable());\n const updatePickerItems = async () => {\n // Cancel any previous ask for picks and busy\n picksCts?.dispose(true);\n picker.busy = false;\n // Setting the .value will call dispose() on the previous value, so we need to do this AFTER cancelling with dispose(true).\n const picksDisposables = picksDisposable.value = new DisposableStore();\n // Create new cancellation source for this run\n picksCts = picksDisposables.add(new CancellationTokenSource(token));\n // Collect picks and support both long running and short or combined\n const picksToken = picksCts.token;\n let picksFilter = picker.value.substring(this.prefix.length);\n if (!this.options?.shouldSkipTrimPickFilter) {\n picksFilter = picksFilter.trim();\n }\n const providedPicks = this._getPicks(picksFilter, picksDisposables, picksToken, runOptions);\n const applyPicks = (picks, skipEmpty) => {\n let items;\n let activeItem = undefined;\n if (isPicksWithActive(picks)) {\n items = picks.items;\n activeItem = picks.active;\n }\n else {\n items = picks;\n }\n if (items.length === 0) {\n if (skipEmpty) {\n return false;\n }\n // We show the no results pick if we have no input to prevent completely empty pickers #172613\n if ((picksFilter.length > 0 || picker.hideInput) && this.options?.noResultsPick) {\n if (isFunction(this.options.noResultsPick)) {\n items = [this.options.noResultsPick(picksFilter)];\n }\n else {\n items = [this.options.noResultsPick];\n }\n }\n }\n picker.items = items;\n if (activeItem) {\n picker.activeItems = [activeItem];\n }\n return true;\n };\n const applyFastAndSlowPicks = async (fastAndSlowPicks) => {\n let fastPicksApplied = false;\n let slowPicksApplied = false;\n await Promise.all([\n // Fast Picks: if `mergeDelay` is configured, in order to reduce\n // amount of flicker, we race against the slow picks over some delay\n // and then set the fast picks.\n // If the slow picks are faster, we reduce the flicker by only\n // setting the items once.\n (async () => {\n if (typeof fastAndSlowPicks.mergeDelay === 'number') {\n await timeout(fastAndSlowPicks.mergeDelay);\n if (picksToken.isCancellationRequested) {\n return;\n }\n }\n if (!slowPicksApplied) {\n fastPicksApplied = applyPicks(fastAndSlowPicks.picks, true /* skip over empty to reduce flicker */);\n }\n })(),\n // Slow Picks: we await the slow picks and then set them at\n // once together with the fast picks, but only if we actually\n // have additional results.\n (async () => {\n picker.busy = true;\n try {\n const awaitedAdditionalPicks = await fastAndSlowPicks.additionalPicks;\n if (picksToken.isCancellationRequested) {\n return;\n }\n let picks;\n let activePick = undefined;\n if (isPicksWithActive(fastAndSlowPicks.picks)) {\n picks = fastAndSlowPicks.picks.items;\n activePick = fastAndSlowPicks.picks.active;\n }\n else {\n picks = fastAndSlowPicks.picks;\n }\n let additionalPicks;\n let additionalActivePick = undefined;\n if (isPicksWithActive(awaitedAdditionalPicks)) {\n additionalPicks = awaitedAdditionalPicks.items;\n additionalActivePick = awaitedAdditionalPicks.active;\n }\n else {\n additionalPicks = awaitedAdditionalPicks;\n }\n if (additionalPicks.length > 0 || !fastPicksApplied) {\n // If we do not have any activePick or additionalActivePick\n // we try to preserve the currently active pick from the\n // fast results. This fixes an issue where the user might\n // have made a pick active before the additional results\n // kick in.\n // See https://github.com/microsoft/vscode/issues/102480\n let fallbackActivePick = undefined;\n if (!activePick && !additionalActivePick) {\n const fallbackActivePickCandidate = picker.activeItems[0];\n if (fallbackActivePickCandidate && picks.indexOf(fallbackActivePickCandidate) !== -1) {\n fallbackActivePick = fallbackActivePickCandidate;\n }\n }\n applyPicks({\n items: [...picks, ...additionalPicks],\n active: activePick || additionalActivePick || fallbackActivePick\n });\n }\n }\n finally {\n if (!picksToken.isCancellationRequested) {\n picker.busy = false;\n }\n slowPicksApplied = true;\n }\n })()\n ]);\n };\n // No Picks\n if (providedPicks === null) ;\n // Fast and Slow Picks\n else if (isFastAndSlowPicks(providedPicks)) {\n await applyFastAndSlowPicks(providedPicks);\n }\n // Fast Picks\n else if (!(providedPicks instanceof Promise)) {\n applyPicks(providedPicks);\n }\n // Slow Picks\n else {\n picker.busy = true;\n try {\n const awaitedPicks = await providedPicks;\n if (picksToken.isCancellationRequested) {\n return;\n }\n if (isFastAndSlowPicks(awaitedPicks)) {\n await applyFastAndSlowPicks(awaitedPicks);\n }\n else {\n applyPicks(awaitedPicks);\n }\n }\n finally {\n if (!picksToken.isCancellationRequested) {\n picker.busy = false;\n }\n }\n }\n };\n disposables.add(picker.onDidChangeValue(() => updatePickerItems()));\n updatePickerItems();\n // Accept the pick on accept and hide picker\n disposables.add(picker.onDidAccept(event => {\n if (runOptions?.handleAccept) {\n if (!event.inBackground) {\n picker.hide(); // hide picker unless we accept in background\n }\n runOptions.handleAccept?.(picker.activeItems[0], event.inBackground);\n return;\n }\n const [item] = picker.selectedItems;\n if (typeof item?.accept === 'function') {\n const isAttachAction = isKeyModified(picker.keyMods) && !!item.attach;\n if (isAttachAction) {\n item.attach(picker.keyMods, event);\n return;\n }\n if (!event.inBackground) {\n picker.hide(); // hide picker unless we accept in background\n }\n item.accept(picker.keyMods, event);\n }\n }));\n const buttonTrigger = async (button, item) => {\n if (typeof item.trigger !== 'function') {\n return;\n }\n const buttonIndex = item.buttons?.indexOf(button) ?? -1;\n if (buttonIndex >= 0) {\n const result = item.trigger(buttonIndex, picker.keyMods);\n const action = (typeof result === 'number') ? result : await result;\n if (token.isCancellationRequested) {\n return;\n }\n switch (action) {\n case TriggerAction.NO_ACTION:\n break;\n case TriggerAction.CLOSE_PICKER:\n picker.hide();\n break;\n case TriggerAction.REFRESH_PICKER:\n updatePickerItems();\n break;\n case TriggerAction.REMOVE_ITEM: {\n const index = picker.items.indexOf(item);\n if (index !== -1) {\n const items = picker.items.slice();\n const removed = items.splice(index, 1);\n const activeItems = picker.activeItems.filter(activeItem => activeItem !== removed[0]);\n const keepScrollPositionBefore = picker.keepScrollPosition;\n picker.keepScrollPosition = true;\n picker.items = items;\n if (activeItems) {\n picker.activeItems = activeItems;\n }\n picker.keepScrollPosition = keepScrollPositionBefore;\n }\n break;\n }\n }\n }\n };\n // Trigger the pick with button index if button triggered\n disposables.add(picker.onDidTriggerItemButton(({ button, item }) => buttonTrigger(button, item)));\n disposables.add(picker.onDidTriggerSeparatorButton(({ button, separator }) => buttonTrigger(button, separator)));\n return disposables;\n }\n}\n\nexport { PickerQuickAccessProvider, TriggerAction };\n",
66
- "import { Codicon } from '../../../base/common/codicons.js';\nimport { toErrorMessage } from '../../../base/common/errorMessage.js';\nimport { isCancellationError } from '../../../base/common/errors.js';\nimport { or, matchesWords, matchesBaseContiguousSubString } from '../../../base/common/filters.js';\nimport { createSingleCallFunction } from '../../../base/common/functional.js';\nimport { Disposable } from '../../../base/common/lifecycle.js';\nimport { LRUCache } from '../../../base/common/map.js';\nimport { ThemeIcon } from '../../../base/common/themables.js';\nimport { TfIdfCalculator, normalizeTfIdfScores } from '../../../base/common/tfIdf.js';\nimport { localize } from '../../../nls.js';\nimport { ICommandService } from '../../commands/common/commands.js';\nimport { IConfigurationService } from '../../configuration/common/configuration.js';\nimport { IDialogService } from '../../dialogs/common/dialogs.js';\nimport { IInstantiationService } from '../../instantiation/common/instantiation.js';\nimport { IKeybindingService } from '../../keybinding/common/keybinding.js';\nimport { ILogService } from '../../log/common/log.js';\nimport { PickerQuickAccessProvider, TriggerAction } from './pickerQuickAccess.js';\nimport { WillSaveStateReason, IStorageService } from '../../storage/common/storage.js';\nimport { ITelemetryService } from '../../telemetry/common/telemetry.js';\nimport { Categories } from '../../action/common/actionCommonCategories.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar AbstractCommandsQuickAccessProvider_1, CommandsHistory_1;\nlet AbstractCommandsQuickAccessProvider = class AbstractCommandsQuickAccessProvider extends PickerQuickAccessProvider {\n static { AbstractCommandsQuickAccessProvider_1 = this; }\n static { this.PREFIX = '>'; }\n static { this.TFIDF_THRESHOLD = 0.5; }\n static { this.TFIDF_MAX_RESULTS = 5; }\n static { this.WORD_FILTER = or(matchesBaseContiguousSubString, matchesWords); }\n constructor(options, instantiationService, keybindingService, commandService, telemetryService, dialogService) {\n super(AbstractCommandsQuickAccessProvider_1.PREFIX, options);\n this.keybindingService = keybindingService;\n this.commandService = commandService;\n this.telemetryService = telemetryService;\n this.dialogService = dialogService;\n this.commandsHistory = this._register(instantiationService.createInstance(CommandsHistory));\n this.options = options;\n }\n async _getPicks(filter, _disposables, token, runOptions) {\n // Ask subclass for all command picks\n const allCommandPicks = await this.getCommandPicks(token);\n if (token.isCancellationRequested) {\n return [];\n }\n const runTfidf = createSingleCallFunction(() => {\n const tfidf = new TfIdfCalculator();\n tfidf.updateDocuments(allCommandPicks.map(commandPick => ({\n key: commandPick.commandId,\n textChunks: [this.getTfIdfChunk(commandPick)]\n })));\n const result = tfidf.calculateScores(filter, token);\n return normalizeTfIdfScores(result)\n .filter(score => score.score > AbstractCommandsQuickAccessProvider_1.TFIDF_THRESHOLD)\n .slice(0, AbstractCommandsQuickAccessProvider_1.TFIDF_MAX_RESULTS);\n });\n // Filter\n const filteredCommandPicks = [];\n for (const commandPick of allCommandPicks) {\n const labelHighlights = AbstractCommandsQuickAccessProvider_1.WORD_FILTER(filter, commandPick.label) ?? undefined;\n let aliasHighlights;\n if (commandPick.commandAlias) {\n aliasHighlights = AbstractCommandsQuickAccessProvider_1.WORD_FILTER(filter, commandPick.commandAlias) ?? undefined;\n }\n // Add if matching in label or alias\n if (labelHighlights || aliasHighlights) {\n commandPick.highlights = {\n label: labelHighlights,\n detail: this.options.showAlias ? aliasHighlights : undefined\n };\n filteredCommandPicks.push(commandPick);\n }\n // Also add if we have a 100% command ID match\n else if (filter === commandPick.commandId) {\n filteredCommandPicks.push(commandPick);\n }\n // Handle tf-idf scoring for the rest if there's a filter\n else if (filter.length >= 3) {\n const tfidf = runTfidf();\n if (token.isCancellationRequested) {\n return [];\n }\n // Add if we have a tf-idf score\n const tfidfScore = tfidf.find(score => score.key === commandPick.commandId);\n if (tfidfScore) {\n commandPick.tfIdfScore = tfidfScore.score;\n filteredCommandPicks.push(commandPick);\n }\n }\n }\n // Add description to commands that have duplicate labels\n const mapLabelToCommand = new Map();\n for (const commandPick of filteredCommandPicks) {\n const existingCommandForLabel = mapLabelToCommand.get(commandPick.label);\n if (existingCommandForLabel) {\n commandPick.description = commandPick.commandId;\n existingCommandForLabel.description = existingCommandForLabel.commandId;\n }\n else {\n mapLabelToCommand.set(commandPick.label, commandPick);\n }\n }\n // Sort by MRU order and fallback to name otherwise\n filteredCommandPicks.sort((commandPickA, commandPickB) => {\n // If a result came from tf-idf, we want to put that towards the bottom\n if (commandPickA.tfIdfScore && commandPickB.tfIdfScore) {\n if (commandPickA.tfIdfScore === commandPickB.tfIdfScore) {\n return commandPickA.label.localeCompare(commandPickB.label); // prefer lexicographically smaller command\n }\n return commandPickB.tfIdfScore - commandPickA.tfIdfScore; // prefer higher tf-idf score\n }\n else if (commandPickA.tfIdfScore) {\n return 1; // first command has a score but other doesn't so other wins\n }\n else if (commandPickB.tfIdfScore) {\n return -1; // other command has a score but first doesn't so first wins\n }\n const commandACounter = this.commandsHistory.peek(commandPickA.commandId);\n const commandBCounter = this.commandsHistory.peek(commandPickB.commandId);\n if (commandACounter && commandBCounter) {\n return commandACounter > commandBCounter ? -1 : 1; // use more recently used command before older\n }\n if (commandACounter) {\n return -1; // first command was used, so it wins over the non used one\n }\n if (commandBCounter) {\n return 1; // other command was used so it wins over the command\n }\n if (this.options.suggestedCommandIds) {\n const commandASuggestion = this.options.suggestedCommandIds.has(commandPickA.commandId);\n const commandBSuggestion = this.options.suggestedCommandIds.has(commandPickB.commandId);\n if (commandASuggestion && commandBSuggestion) {\n return 0; // honor the order of the array\n }\n if (commandASuggestion) {\n return -1; // first command was suggested, so it wins over the non suggested one\n }\n if (commandBSuggestion) {\n return 1; // other command was suggested so it wins over the command\n }\n }\n // if one is Developer and the other isn't, put non-Developer first\n const isDeveloperA = commandPickA.commandCategory === Categories.Developer.value;\n const isDeveloperB = commandPickB.commandCategory === Categories.Developer.value;\n if (isDeveloperA && !isDeveloperB) {\n return 1;\n }\n if (!isDeveloperA && isDeveloperB) {\n return -1;\n }\n // both commands were never used, so we sort by name\n return commandPickA.label.localeCompare(commandPickB.label);\n });\n const commandPicks = [];\n let addOtherSeparator = false;\n let addSuggestedSeparator = true;\n let addCommonlyUsedSeparator = !!this.options.suggestedCommandIds;\n for (let i = 0; i < filteredCommandPicks.length; i++) {\n const commandPick = filteredCommandPicks[i];\n const isInHistory = !!this.commandsHistory.peek(commandPick.commandId);\n // Separator: recently used\n if (i === 0 && isInHistory) {\n commandPicks.push({ type: 'separator', label: localize(1803, \"recently used\") });\n addOtherSeparator = true;\n }\n if (addSuggestedSeparator && commandPick.tfIdfScore !== undefined) {\n commandPicks.push({ type: 'separator', label: localize(1804, \"similar commands\") });\n addSuggestedSeparator = false;\n }\n // Separator: commonly used\n if (addCommonlyUsedSeparator && commandPick.tfIdfScore === undefined && !isInHistory && this.options.suggestedCommandIds?.has(commandPick.commandId)) {\n commandPicks.push({ type: 'separator', label: localize(1805, \"commonly used\") });\n addOtherSeparator = true;\n addCommonlyUsedSeparator = false;\n }\n // Separator: other commands\n if (addOtherSeparator && commandPick.tfIdfScore === undefined && !isInHistory && !this.options.suggestedCommandIds?.has(commandPick.commandId)) {\n commandPicks.push({ type: 'separator', label: localize(1806, \"other commands\") });\n addOtherSeparator = false;\n }\n // Command\n commandPicks.push(this.toCommandPick(commandPick, runOptions, isInHistory));\n }\n if (!this.hasAdditionalCommandPicks(filter, token)) {\n return commandPicks;\n }\n return {\n picks: commandPicks,\n additionalPicks: (async () => {\n const additionalCommandPicks = await this.getAdditionalCommandPicks(allCommandPicks, filteredCommandPicks, filter, token);\n if (token.isCancellationRequested) {\n return [];\n }\n const commandPicks = additionalCommandPicks.map(commandPick => this.toCommandPick(commandPick, runOptions));\n // Basically, if we haven't already added a separator, we add one before the additional picks so long\n // as one hasn't been added to the start of the array.\n if (addSuggestedSeparator && commandPicks[0]?.type !== 'separator') {\n commandPicks.unshift({ type: 'separator', label: localize(1807, \"similar commands\") });\n }\n return commandPicks;\n })()\n };\n }\n toCommandPick(commandPick, runOptions, isRecentlyUsed = false) {\n if (commandPick.type === 'separator') {\n return commandPick;\n }\n const tooltip = commandPick.tooltip\n ?? commandPick.commandDescription?.value;\n const keybinding = this.keybindingService.lookupKeybinding(commandPick.commandId);\n const ariaLabel = keybinding ?\n localize(1808, \"{0}, {1}\", commandPick.label, keybinding.getAriaLabel()) :\n commandPick.label;\n // Add remove button for recently used items (as the last button, to the right)\n const existingButtons = commandPick.buttons || [];\n const buttons = isRecentlyUsed ? [\n ...existingButtons,\n {\n iconClass: ThemeIcon.asClassName(Codicon.close),\n tooltip: localize(1809, \"Remove from Recently Used\")\n }\n ] : commandPick.buttons;\n return {\n ...commandPick,\n tooltip,\n ariaLabel,\n detail: this.options.showAlias && commandPick.commandAlias !== commandPick.label ? commandPick.commandAlias : undefined,\n keybinding,\n buttons,\n accept: async () => {\n // Add to history\n this.commandsHistory.push(commandPick.commandId);\n // Telementry\n this.telemetryService.publicLog2('workbenchActionExecuted', {\n id: commandPick.commandId,\n from: runOptions?.from ?? 'quick open'\n });\n // Run\n try {\n commandPick.args?.length\n ? await this.commandService.executeCommand(commandPick.commandId, ...commandPick.args)\n : await this.commandService.executeCommand(commandPick.commandId);\n }\n catch (error) {\n if (!isCancellationError(error)) {\n this.dialogService.error(localize(1810, \"Command '{0}' resulted in an error\", commandPick.label), toErrorMessage(error));\n }\n }\n },\n trigger: isRecentlyUsed ? (buttonIndex, keyMods) => {\n // The remove button is now the last button\n const removeButtonIndex = existingButtons.length;\n if (buttonIndex === removeButtonIndex) {\n this.commandsHistory.remove(commandPick.commandId);\n return TriggerAction.REMOVE_ITEM;\n }\n // Handle other buttons (e.g., configure keybinding button)\n if (commandPick.trigger) {\n return commandPick.trigger(buttonIndex, keyMods);\n }\n return TriggerAction.NO_ACTION;\n } : commandPick.trigger\n };\n }\n // TF-IDF string to be indexed\n getTfIdfChunk({ label, commandAlias, commandDescription }) {\n let chunk = label;\n if (commandAlias && commandAlias !== label) {\n chunk += ` - ${commandAlias}`;\n }\n if (commandDescription && commandDescription.value !== label) {\n // If the original is the same as the value, don't add it\n chunk += ` - ${commandDescription.value === commandDescription.original ? commandDescription.value : `${commandDescription.value} (${commandDescription.original})`}`;\n }\n return chunk;\n }\n};\nAbstractCommandsQuickAccessProvider = AbstractCommandsQuickAccessProvider_1 = __decorate([\n __param(1, IInstantiationService),\n __param(2, IKeybindingService),\n __param(3, ICommandService),\n __param(4, ITelemetryService),\n __param(5, IDialogService)\n], AbstractCommandsQuickAccessProvider);\nlet CommandsHistory = class CommandsHistory extends Disposable {\n static { CommandsHistory_1 = this; }\n static { this.DEFAULT_COMMANDS_HISTORY_LENGTH = 50; }\n static { this.PREF_KEY_CACHE = 'commandPalette.mru.cache'; }\n static { this.PREF_KEY_COUNTER = 'commandPalette.mru.counter'; }\n static { this.counter = 1; }\n static { this.hasChanges = false; }\n constructor(storageService, configurationService, logService) {\n super();\n this.storageService = storageService;\n this.configurationService = configurationService;\n this.logService = logService;\n this.configuredCommandsHistoryLength = 0;\n this.updateConfiguration();\n this.load();\n this.registerListeners();\n }\n registerListeners() {\n this._register(this.configurationService.onDidChangeConfiguration(e => this.updateConfiguration(e)));\n this._register(this.storageService.onWillSaveState(e => {\n if (e.reason === WillSaveStateReason.SHUTDOWN) {\n // Commands history is very dynamic and so we limit impact\n // on storage to only save on shutdown. This helps reduce\n // the overhead of syncing this data across machines.\n this.saveState();\n }\n }));\n }\n updateConfiguration(e) {\n if (e && !e.affectsConfiguration('workbench.commandPalette.history')) {\n return;\n }\n this.configuredCommandsHistoryLength = CommandsHistory_1.getConfiguredCommandHistoryLength(this.configurationService);\n if (CommandsHistory_1.cache && CommandsHistory_1.cache.limit !== this.configuredCommandsHistoryLength) {\n CommandsHistory_1.cache.limit = this.configuredCommandsHistoryLength;\n CommandsHistory_1.hasChanges = true;\n }\n }\n load() {\n const raw = this.storageService.get(CommandsHistory_1.PREF_KEY_CACHE, 0 /* StorageScope.PROFILE */);\n let serializedCache;\n if (raw) {\n try {\n serializedCache = JSON.parse(raw);\n }\n catch (error) {\n this.logService.error(`[CommandsHistory] invalid data: ${error}`);\n }\n }\n const cache = CommandsHistory_1.cache = new LRUCache(this.configuredCommandsHistoryLength, 1);\n if (serializedCache) {\n let entries;\n if (serializedCache.usesLRU) {\n entries = serializedCache.entries;\n }\n else {\n entries = serializedCache.entries.sort((a, b) => a.value - b.value);\n }\n entries.forEach(entry => cache.set(entry.key, entry.value));\n }\n CommandsHistory_1.counter = this.storageService.getNumber(CommandsHistory_1.PREF_KEY_COUNTER, 0 /* StorageScope.PROFILE */, CommandsHistory_1.counter);\n }\n push(commandId) {\n if (!CommandsHistory_1.cache) {\n return;\n }\n CommandsHistory_1.cache.set(commandId, CommandsHistory_1.counter++); // set counter to command\n CommandsHistory_1.hasChanges = true;\n }\n peek(commandId) {\n return CommandsHistory_1.cache?.peek(commandId);\n }\n remove(commandId) {\n if (!CommandsHistory_1.cache) {\n return;\n }\n CommandsHistory_1.cache.delete(commandId);\n CommandsHistory_1.hasChanges = true;\n }\n saveState() {\n if (!CommandsHistory_1.cache) {\n return;\n }\n if (!CommandsHistory_1.hasChanges) {\n return;\n }\n const serializedCache = { usesLRU: true, entries: [] };\n CommandsHistory_1.cache.forEach((value, key) => serializedCache.entries.push({ key, value }));\n this.storageService.store(CommandsHistory_1.PREF_KEY_CACHE, JSON.stringify(serializedCache), 0 /* StorageScope.PROFILE */, 0 /* StorageTarget.USER */);\n this.storageService.store(CommandsHistory_1.PREF_KEY_COUNTER, CommandsHistory_1.counter, 0 /* StorageScope.PROFILE */, 0 /* StorageTarget.USER */);\n CommandsHistory_1.hasChanges = false;\n }\n static getConfiguredCommandHistoryLength(configurationService) {\n const config = configurationService.getValue();\n const configuredCommandHistoryLength = config.workbench?.commandPalette?.history;\n if (typeof configuredCommandHistoryLength === 'number') {\n return configuredCommandHistoryLength;\n }\n return CommandsHistory_1.DEFAULT_COMMANDS_HISTORY_LENGTH;\n }\n};\nCommandsHistory = CommandsHistory_1 = __decorate([\n __param(0, IStorageService),\n __param(1, IConfigurationService),\n __param(2, ILogService)\n], CommandsHistory);\n\nexport { AbstractCommandsQuickAccessProvider, CommandsHistory };\n",
67
- "import { stripIcons } from '../../../../base/common/iconLabels.js';\nimport { isLocalizedString } from '../../../../platform/action/common/action.js';\nimport { AbstractCommandsQuickAccessProvider } from '../../../../platform/quickinput/browser/commandsQuickAccess.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nclass AbstractEditorCommandsQuickAccessProvider extends AbstractCommandsQuickAccessProvider {\n constructor(options, instantiationService, keybindingService, commandService, telemetryService, dialogService) {\n super(options, instantiationService, keybindingService, commandService, telemetryService, dialogService);\n }\n getCodeEditorCommandPicks() {\n const activeTextEditorControl = this.activeTextEditorControl;\n if (!activeTextEditorControl) {\n return [];\n }\n const editorCommandPicks = [];\n for (const editorAction of activeTextEditorControl.getSupportedActions()) {\n let commandDescription;\n if (editorAction.metadata?.description) {\n if (isLocalizedString(editorAction.metadata.description)) {\n commandDescription = editorAction.metadata.description;\n }\n else {\n commandDescription = { original: editorAction.metadata.description, value: editorAction.metadata.description };\n }\n }\n editorCommandPicks.push({\n commandId: editorAction.id,\n commandAlias: editorAction.alias,\n commandDescription,\n label: stripIcons(editorAction.label) || editorAction.id,\n });\n }\n return editorCommandPicks;\n }\n}\n\nexport { AbstractEditorCommandsQuickAccessProvider };\n",
68
- "import { Registry } from '../../../../platform/registry/common/platform.js';\nimport { Extensions } from '../../../../platform/quickinput/common/quickAccess.js';\nimport { QuickCommandNLS } from '../../../common/standaloneStrings.js';\nimport { ICodeEditorService } from '../../../browser/services/codeEditorService.js';\nimport { AbstractEditorCommandsQuickAccessProvider } from '../../../contrib/quickAccess/browser/commandsQuickAccess.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { IKeybindingService } from '../../../../platform/keybinding/common/keybinding.js';\nimport { ICommandService } from '../../../../platform/commands/common/commands.js';\nimport { ITelemetryService } from '../../../../platform/telemetry/common/telemetry.js';\nimport { IDialogService } from '../../../../platform/dialogs/common/dialogs.js';\nimport { EditorAction, registerEditorAction } from '../../../browser/editorExtensions.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { IQuickInputService } from '../../../../platform/quickinput/common/quickInput.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nlet StandaloneCommandsQuickAccessProvider = class StandaloneCommandsQuickAccessProvider extends AbstractEditorCommandsQuickAccessProvider {\n get activeTextEditorControl() { return this.codeEditorService.getFocusedCodeEditor() ?? undefined; }\n constructor(instantiationService, codeEditorService, keybindingService, commandService, telemetryService, dialogService) {\n super({ showAlias: false }, instantiationService, keybindingService, commandService, telemetryService, dialogService);\n this.codeEditorService = codeEditorService;\n }\n async getCommandPicks() {\n return this.getCodeEditorCommandPicks();\n }\n hasAdditionalCommandPicks() {\n return false;\n }\n async getAdditionalCommandPicks() {\n return [];\n }\n};\nStandaloneCommandsQuickAccessProvider = __decorate([\n __param(0, IInstantiationService),\n __param(1, ICodeEditorService),\n __param(2, IKeybindingService),\n __param(3, ICommandService),\n __param(4, ITelemetryService),\n __param(5, IDialogService)\n], StandaloneCommandsQuickAccessProvider);\nclass GotoLineAction extends EditorAction {\n static { this.ID = 'editor.action.quickCommand'; }\n constructor() {\n super({\n id: GotoLineAction.ID,\n label: QuickCommandNLS.quickCommandActionLabel,\n alias: 'Command Palette',\n precondition: undefined,\n kbOpts: {\n kbExpr: EditorContextKeys.focus,\n primary: 59 /* KeyCode.F1 */,\n weight: 100 /* KeybindingWeight.EditorContrib */\n },\n contextMenuOpts: {\n group: 'z_commands',\n order: 1\n }\n });\n }\n run(accessor) {\n accessor.get(IQuickInputService).quickAccess.show(StandaloneCommandsQuickAccessProvider.PREFIX);\n }\n}\nregisterEditorAction(GotoLineAction);\nRegistry.as(Extensions.Quickaccess).registerQuickAccessProvider({\n ctor: StandaloneCommandsQuickAccessProvider,\n prefix: StandaloneCommandsQuickAccessProvider.PREFIX,\n helpEntries: [{ description: QuickCommandNLS.quickCommandHelp, commandId: GotoLineAction.ID }]\n});\n\nexport { GotoLineAction, StandaloneCommandsQuickAccessProvider };\n",
69
- "import { registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { ICodeEditorService } from '../../../browser/services/codeEditorService.js';\nimport { ReferencesController } from '../../../contrib/gotoSymbol/browser/peek/referencesController.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nimport { IContextKeyService } from '../../../../platform/contextkey/common/contextkey.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { INotificationService } from '../../../../platform/notification/common/notification.js';\nimport { IStorageService } from '../../../../platform/storage/common/storage.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nlet StandaloneReferencesController = class StandaloneReferencesController extends ReferencesController {\n constructor(editor, contextKeyService, editorService, notificationService, instantiationService, storageService, configurationService) {\n super(true, editor, contextKeyService, editorService, notificationService, instantiationService, storageService, configurationService);\n }\n};\nStandaloneReferencesController = __decorate([\n __param(1, IContextKeyService),\n __param(2, ICodeEditorService),\n __param(3, INotificationService),\n __param(4, IInstantiationService),\n __param(5, IStorageService),\n __param(6, IConfigurationService)\n], StandaloneReferencesController);\nregisterEditorContribution(ReferencesController.ID, StandaloneReferencesController, 4 /* EditorContributionInstantiation.Lazy */);\n\nexport { StandaloneReferencesController };\n",
70
- "import { registerEditorAction, EditorAction } from '../../../browser/editorExtensions.js';\nimport { IStandaloneThemeService } from '../../common/standaloneTheme.js';\nimport { ToggleHighContrastNLS } from '../../../common/standaloneStrings.js';\nimport { isHighContrast, isDark } from '../../../../platform/theme/common/theme.js';\nimport { VS_DARK_THEME_NAME, VS_LIGHT_THEME_NAME, HC_BLACK_THEME_NAME, HC_LIGHT_THEME_NAME } from '../standaloneThemeService.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nclass ToggleHighContrast extends EditorAction {\n constructor() {\n super({\n id: 'editor.action.toggleHighContrast',\n label: ToggleHighContrastNLS.toggleHighContrast,\n alias: 'Toggle High Contrast Theme',\n precondition: undefined\n });\n this._originalThemeName = null;\n }\n run(accessor, editor) {\n const standaloneThemeService = accessor.get(IStandaloneThemeService);\n const currentTheme = standaloneThemeService.getColorTheme();\n if (isHighContrast(currentTheme.type)) {\n // We must toggle back to the integrator's theme\n standaloneThemeService.setTheme(this._originalThemeName || (isDark(currentTheme.type) ? VS_DARK_THEME_NAME : VS_LIGHT_THEME_NAME));\n this._originalThemeName = null;\n }\n else {\n standaloneThemeService.setTheme(isDark(currentTheme.type) ? HC_BLACK_THEME_NAME : HC_LIGHT_THEME_NAME);\n this._originalThemeName = currentTheme.themeName;\n }\n }\n}\nregisterEditorAction(ToggleHighContrast);\n",
71
- "import '../../editor/browser/coreCommands.js';\nimport '../../editor/browser/widget/codeEditor/codeEditorWidget.js';\nimport '../../editor/browser/widget/diffEditor/diffEditor.contribution.js';\nimport '../../editor/contrib/anchorSelect/browser/anchorSelect.js';\nimport '../../editor/contrib/bracketMatching/browser/bracketMatching.js';\nimport '../../editor/contrib/caretOperations/browser/caretOperations.js';\nimport '../../editor/contrib/caretOperations/browser/transpose.js';\nimport '../../editor/contrib/clipboard/browser/clipboard.js';\nimport '../../editor/contrib/codeAction/browser/codeActionContributions.js';\nimport '../../editor/contrib/codelens/browser/codelensController.js';\nimport '../../editor/contrib/colorPicker/browser/colorPickerContribution.js';\nimport '../../editor/contrib/comment/browser/comment.js';\nimport '../../editor/contrib/contextmenu/browser/contextmenu.js';\nimport '../../editor/contrib/cursorUndo/browser/cursorUndo.js';\nimport '../../editor/contrib/dnd/browser/dnd.js';\nimport '../../editor/contrib/dropOrPasteInto/browser/copyPasteContribution.js';\nimport '../../editor/contrib/dropOrPasteInto/browser/dropIntoEditorContribution.js';\nimport '../../editor/contrib/find/browser/findController.js';\nimport '../../editor/contrib/folding/browser/folding.js';\nimport '../../editor/contrib/fontZoom/browser/fontZoom.js';\nimport '../../editor/contrib/format/browser/formatActions.js';\nimport '../../editor/contrib/documentSymbols/browser/documentSymbols.js';\nimport '../../editor/contrib/inlineCompletions/browser/inlineCompletions.contribution.js';\nimport '../../editor/contrib/inlineProgress/browser/inlineProgress.js';\nimport '../../editor/contrib/gotoSymbol/browser/goToCommands.js';\nimport '../../editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.js';\nimport '../../editor/contrib/gotoError/browser/gotoError.js';\nimport '../../editor/contrib/gotoError/browser/markerSelectionStatus.js';\nimport '../../editor/contrib/gpu/browser/gpuActions.js';\nimport '../../editor/contrib/hover/browser/hoverContribution.js';\nimport '../../editor/contrib/indentation/browser/indentation.js';\nimport '../../editor/contrib/inlayHints/browser/inlayHintsContribution.js';\nimport '../../editor/contrib/inPlaceReplace/browser/inPlaceReplace.js';\nimport '../../editor/contrib/insertFinalNewLine/browser/insertFinalNewLine.js';\nimport '../../editor/contrib/lineSelection/browser/lineSelection.js';\nimport '../../editor/contrib/linesOperations/browser/linesOperations.js';\nimport '../../editor/contrib/linkedEditing/browser/linkedEditing.js';\nimport '../../editor/contrib/links/browser/links.js';\nimport '../../editor/contrib/longLinesHelper/browser/longLinesHelper.js';\nimport '../../editor/contrib/middleScroll/browser/middleScroll.contribution.js';\nimport '../../editor/contrib/multicursor/browser/multicursor.js';\nimport '../../editor/contrib/parameterHints/browser/parameterHints.js';\nimport '../../editor/contrib/placeholderText/browser/placeholderText.contribution.js';\nimport '../../editor/contrib/rename/browser/rename.js';\nimport '../../editor/contrib/sectionHeaders/browser/sectionHeaders.js';\nimport '../../editor/contrib/semanticTokens/browser/documentSemanticTokens.js';\nimport '../../editor/contrib/semanticTokens/browser/viewportSemanticTokens.js';\nimport '../../editor/contrib/smartSelect/browser/smartSelect.js';\nimport '../../editor/contrib/snippet/browser/snippetController2.js';\nimport '../../editor/contrib/stickyScroll/browser/stickyScrollContribution.js';\nimport '../../editor/contrib/suggest/browser/suggestController.js';\nimport '../../editor/contrib/suggest/browser/suggestInlineCompletions.js';\nimport '../../editor/contrib/tokenization/browser/tokenization.js';\nimport '../../editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode.js';\nimport '../../editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js';\nimport '../../editor/contrib/unusualLineTerminators/browser/unusualLineTerminators.js';\nimport '../../editor/contrib/wordHighlighter/browser/wordHighlighter.js';\nimport '../../editor/contrib/wordOperations/browser/wordOperations.js';\nimport '../../editor/contrib/wordPartOperations/browser/wordPartOperations.js';\nimport '../../editor/contrib/readOnlyMessage/browser/contribution.js';\nimport '../../editor/contrib/diffEditorBreadcrumbs/browser/contribution.js';\nimport '../../editor/contrib/floatingMenu/browser/floatingMenu.contribution.js';\nimport '../../editor/common/standaloneStrings.js';\nimport '../../base/browser/ui/codicons/codicon/codicon.css';\nimport '../../base/browser/ui/codicons/codicon/codicon-modifiers.css';\nimport '../../editor/standalone/browser/iPadShowKeyboard/iPadShowKeyboard.js';\nimport '../../editor/standalone/browser/inspectTokens/inspectTokens.js';\nimport '../../editor/standalone/browser/quickAccess/standaloneHelpQuickAccess.js';\nimport '../../editor/standalone/browser/quickAccess/standaloneGotoLineQuickAccess.js';\nimport '../../editor/standalone/browser/quickAccess/standaloneGotoSymbolQuickAccess.js';\nimport '../../editor/standalone/browser/quickAccess/standaloneCommandsQuickAccess.js';\nimport '../../editor/standalone/browser/referenceSearch/standaloneReferenceSearch.js';\nimport '../../editor/standalone/browser/toggleHighContrast/toggleHighContrast.js';\nimport { editor } from '../../editor/editor.api.js';\n\nfunction createTrustedTypesPolicy(policyName, policyOptions) {\n const monacoEnvironment = globalThis.MonacoEnvironment;\n if (monacoEnvironment?.createTrustedTypesPolicy) {\n try {\n return monacoEnvironment.createTrustedTypesPolicy(policyName, policyOptions);\n } catch (err) {\n console.error(err);\n return void 0;\n }\n }\n try {\n return globalThis.trustedTypes?.createPolicy(policyName, policyOptions);\n } catch (err) {\n console.error(err);\n return void 0;\n }\n}\nlet ttPolicy;\nif (typeof self === \"object\" && self.constructor && self.constructor.name === \"DedicatedWorkerGlobalScope\" && globalThis.workerttPolicy !== void 0) {\n ttPolicy = globalThis.workerttPolicy;\n} else {\n ttPolicy = createTrustedTypesPolicy(\"defaultWorkerFactory\", {\n createScriptURL: (value) => value\n });\n}\nfunction getWorker(descriptor) {\n const label = descriptor.label;\n const monacoEnvironment = globalThis.MonacoEnvironment;\n if (monacoEnvironment) {\n if (typeof monacoEnvironment.getWorker === \"function\") {\n return monacoEnvironment.getWorker(\"workerMain.js\", label);\n }\n if (typeof monacoEnvironment.getWorkerUrl === \"function\") {\n const workerUrl = monacoEnvironment.getWorkerUrl(\"workerMain.js\", label);\n return new Worker(\n ttPolicy ? ttPolicy.createScriptURL(workerUrl) : workerUrl,\n { name: label, type: \"module\" }\n );\n }\n }\n if (descriptor.createWorker) {\n return descriptor.createWorker();\n }\n throw new Error(\n `You must define a function MonacoEnvironment.getWorkerUrl or MonacoEnvironment.getWorker`\n );\n}\nfunction createWebWorker(opts) {\n const worker = Promise.resolve(\n getWorker({\n label: opts.label ?? \"monaco-editor-worker\",\n moduleId: opts.moduleId,\n createWorker: opts.createWorker\n })\n ).then((w) => {\n w.postMessage(\"ignore\");\n w.postMessage(opts.createData);\n return w;\n });\n return editor.createWebWorker({\n worker,\n host: opts.host,\n keepIdleModels: opts.keepIdleModels\n });\n}\n\nexport { createWebWorker };\n"
72
- ],
73
- "mappings": "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",
74
- "debugId": "2EE01D553D5D47C264756E2164756E21",
75
- "names": []
76
- }