@codingame/monaco-vscode-api 2.0.3 → 2.1.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 (511) hide show
  1. package/api.js +15 -12
  2. package/extensions.d.ts +4 -7
  3. package/external/@xterm/xterm/typings/xterm.d.ts +22 -0
  4. package/missing-services.js +62 -6
  5. package/package.json +8 -8
  6. package/service-override/tools/editor.js +14 -0
  7. package/services.d.ts +3 -2
  8. package/services.js +6 -4
  9. package/vscode/src/vs/base/browser/browser.js +45 -30
  10. package/vscode/src/vs/base/browser/canIUse.js +1 -1
  11. package/vscode/src/vs/base/browser/defaultWorkerFactory.js +12 -5
  12. package/vscode/src/vs/base/browser/dom.js +104 -14
  13. package/vscode/src/vs/base/browser/indexedDB.js +3 -3
  14. package/vscode/src/vs/base/browser/markdownRenderer.js +29 -1
  15. package/vscode/src/vs/base/browser/mouseEvent.js +17 -3
  16. package/vscode/src/vs/base/browser/ui/actionbar/actionbar.js +3 -3
  17. package/vscode/src/vs/base/browser/ui/breadcrumbs/breadcrumbsWidget.css.js +4 -0
  18. package/vscode/src/vs/base/browser/ui/breadcrumbs/breadcrumbsWidget.d.ts +1 -1
  19. package/vscode/src/vs/base/browser/ui/breadcrumbs/breadcrumbsWidget.js +287 -0
  20. package/vscode/src/vs/base/browser/ui/button/button.js +9 -0
  21. package/vscode/src/vs/base/browser/ui/codicons/codicon/codicon.css.js +1 -1
  22. package/vscode/src/vs/base/browser/ui/dialog/dialog.js +1 -1
  23. package/vscode/src/vs/base/browser/ui/iconLabel/iconLabelHover.js +16 -5
  24. package/vscode/src/vs/base/browser/ui/list/listView.js +31 -11
  25. package/vscode/src/vs/base/browser/ui/list/listWidget.js +35 -21
  26. package/vscode/src/vs/base/browser/ui/menu/menu.js +10 -1
  27. package/vscode/src/vs/base/browser/ui/menu/menubar.js +8 -4
  28. package/vscode/src/vs/base/browser/ui/scrollbar/scrollableElement.js +6 -5
  29. package/vscode/src/vs/base/browser/ui/tree/abstractTree.js +469 -95
  30. package/vscode/src/vs/base/browser/ui/tree/asyncDataTree.js +22 -7
  31. package/vscode/src/vs/base/browser/ui/tree/indexTreeModel.js +0 -5
  32. package/vscode/src/vs/base/browser/ui/tree/media/tree.css.js +1 -1
  33. package/vscode/src/vs/base/browser/ui/tree/objectTree.js +70 -4
  34. package/vscode/src/vs/base/common/assert.js +6 -1
  35. package/vscode/src/vs/base/common/async.js +31 -6
  36. package/vscode/src/vs/base/common/codicons.js +5 -0
  37. package/vscode/src/vs/base/common/event.d.ts +0 -5
  38. package/vscode/src/vs/base/common/event.js +0 -15
  39. package/vscode/src/vs/base/common/filters.d.ts +1 -18
  40. package/vscode/src/vs/base/common/htmlContent.js +12 -6
  41. package/vscode/src/vs/base/common/iterator.js +8 -0
  42. package/vscode/src/vs/base/common/labels.js +2 -1
  43. package/vscode/src/vs/base/common/map.js +20 -1
  44. package/vscode/src/vs/base/common/observableInternal/base.d.ts +4 -0
  45. package/vscode/src/vs/base/common/observableInternal/base.js +16 -8
  46. package/vscode/src/vs/base/common/observableInternal/derived.js +4 -6
  47. package/vscode/src/vs/base/common/observableInternal/utils.js +60 -5
  48. package/vscode/src/vs/base/common/platform.js +20 -20
  49. package/vscode/src/vs/base/common/prefixTree.js +4 -3
  50. package/vscode/src/vs/base/common/product.d.ts +5 -2
  51. package/vscode/src/vs/base/common/strings.js +23 -7
  52. package/vscode/src/vs/base/common/themables.js +4 -1
  53. package/vscode/src/vs/base/common/uri.js +11 -1
  54. package/vscode/src/vs/base/common/worker/simpleWorker.js +1 -1
  55. package/vscode/src/vs/editor/browser/config/migrateOptions.js +5 -0
  56. package/vscode/src/vs/editor/browser/controller/mouseHandler.js +1 -0
  57. package/vscode/src/vs/editor/browser/controller/mouseTarget.js +14 -8
  58. package/vscode/src/vs/editor/browser/controller/pointerHandler.js +18 -11
  59. package/vscode/src/vs/editor/browser/controller/textAreaHandler.js +1 -1
  60. package/vscode/src/vs/editor/browser/controller/textAreaInput.js +3 -3
  61. package/vscode/src/vs/{workbench/services/hover/browser → editor/browser/services}/hoverService.d.ts +7 -6
  62. package/vscode/src/vs/editor/browser/services/hoverService.js +195 -0
  63. package/vscode/src/vs/editor/browser/view.js +29 -39
  64. package/vscode/src/vs/editor/browser/viewParts/currentLineHighlight/currentLineHighlight.js +41 -19
  65. package/vscode/src/vs/editor/browser/viewParts/editorScrollbar/editorScrollbar.js +1 -1
  66. package/vscode/src/vs/editor/browser/viewParts/glyphMargin/glyphMargin.js +30 -23
  67. package/vscode/src/vs/editor/browser/viewParts/lineNumbers/lineNumbers.js +23 -8
  68. package/vscode/src/vs/editor/browser/viewParts/lines/viewLines.js +1 -1
  69. package/vscode/src/vs/editor/browser/viewParts/linesDecorations/linesDecorations.js +8 -1
  70. package/vscode/src/vs/editor/browser/viewParts/marginDecorations/marginDecorations.js +7 -1
  71. package/vscode/src/vs/editor/browser/viewParts/minimap/minimap.js +1 -1
  72. package/vscode/src/vs/editor/browser/viewParts/overlayWidgets/overlayWidgets.js +30 -3
  73. package/vscode/src/vs/editor/browser/widget/codeEditorWidget.js +39 -15
  74. package/vscode/src/vs/editor/browser/widget/diffEditor/{accessibleDiffViewer.css.js → components/accessibleDiffViewer.css.js} +1 -1
  75. package/vscode/src/vs/editor/browser/widget/diffEditor/{accessibleDiffViewer.js → components/accessibleDiffViewer.js} +43 -43
  76. package/vscode/src/vs/editor/browser/widget/diffEditor/components/diffEditorDecorations.js +89 -0
  77. package/vscode/src/vs/editor/browser/widget/diffEditor/{diffEditorEditors.js → components/diffEditorEditors.js} +14 -14
  78. package/vscode/src/vs/editor/browser/widget/diffEditor/{diffEditorSash.js → components/diffEditorSash.js} +5 -5
  79. package/vscode/src/vs/editor/browser/widget/diffEditor/{lineAlignment.js → components/diffEditorViewZones/diffEditorViewZones.js} +38 -28
  80. package/vscode/src/vs/editor/browser/widget/diffEditor/{inlineDiffDeletedCodeMargin.js → components/diffEditorViewZones/inlineDiffDeletedCodeMargin.js} +14 -14
  81. package/vscode/src/vs/editor/browser/widget/diffEditor/{renderLines.js → components/diffEditorViewZones/renderLines.js} +7 -7
  82. package/vscode/src/vs/editor/browser/widget/diffEditor/diffEditor.contribution.js +29 -38
  83. package/vscode/src/vs/editor/browser/widget/diffEditor/diffEditorViewModel.js +150 -38
  84. package/vscode/src/vs/editor/browser/widget/diffEditor/diffEditorWidget.js +17 -16
  85. package/vscode/src/vs/editor/browser/widget/diffEditor/diffProviderFactoryService.js +104 -6
  86. package/vscode/src/vs/editor/browser/widget/diffEditor/{hideUnchangedRegionsFeature.js → features/hideUnchangedRegionsFeature.js} +51 -78
  87. package/vscode/src/vs/editor/browser/widget/diffEditor/{movedBlocksLines.js → features/movedBlocksLinesFeature.js} +23 -23
  88. package/vscode/src/vs/editor/browser/widget/diffEditor/{overviewRulerPart.js → features/overviewRulerFeature.js} +28 -28
  89. package/vscode/src/vs/editor/browser/widget/diffEditor/features/revertButtonsFeature.js +145 -0
  90. package/vscode/src/vs/editor/browser/widget/diffEditor/{decorations.js → registrations.contribution.js} +18 -2
  91. package/vscode/src/vs/editor/browser/widget/diffEditor/utils.js +10 -2
  92. package/vscode/src/vs/editor/browser/widget/hoverWidget/hover.css.js +4 -0
  93. package/vscode/src/vs/editor/browser/widget/hoverWidget/hoverWidget.js +527 -0
  94. package/vscode/src/vs/editor/{contrib → browser/widget}/markdownRenderer/browser/markdownRenderer.js +11 -11
  95. package/vscode/src/vs/editor/{contrib → browser/widget}/markdownRenderer/browser/renderedMarkdown.css.js +1 -1
  96. package/vscode/src/vs/editor/common/config/editorOptions.d.ts +11 -10
  97. package/vscode/src/vs/editor/common/config/editorOptions.js +46 -42
  98. package/vscode/src/vs/editor/common/core/editorColorRegistry.js +3 -3
  99. package/vscode/src/vs/editor/common/core/offsetRange.d.ts +2 -0
  100. package/vscode/src/vs/editor/common/core/offsetRange.js +8 -0
  101. package/vscode/src/vs/editor/common/diff/defaultLinesDiffComputer/algorithms/diffAlgorithm.js +9 -0
  102. package/vscode/src/vs/editor/common/diff/defaultLinesDiffComputer/heuristicSequenceOptimizations.js +50 -47
  103. package/vscode/src/vs/editor/common/diff/defaultLinesDiffComputer/linesSliceCharSequence.js +4 -1
  104. package/vscode/src/vs/editor/common/diff/rangeMapping.d.ts +2 -1
  105. package/vscode/src/vs/editor/common/diff/rangeMapping.js +13 -2
  106. package/vscode/src/vs/editor/common/languages.d.ts +10 -2
  107. package/vscode/src/vs/editor/common/model/textModel.js +19 -13
  108. package/vscode/src/vs/editor/common/model/tokenizationTextModelPart.js +1 -1
  109. package/vscode/src/vs/editor/common/model.d.ts +19 -1
  110. package/vscode/src/vs/editor/common/model.js +2 -1
  111. package/vscode/src/vs/editor/common/services/editorSimpleWorker.js +2 -1
  112. package/vscode/src/vs/editor/common/services/getIconClasses.js +4 -1
  113. package/vscode/src/vs/editor/common/services/semanticTokensProviderStyling.js +3 -3
  114. package/vscode/src/vs/editor/common/standalone/standaloneEnums.js +9 -8
  115. package/vscode/src/vs/editor/common/standaloneStrings.js +18 -18
  116. package/vscode/src/vs/editor/common/viewEvents.js +2 -0
  117. package/vscode/src/vs/editor/common/viewModel/glyphLanesModel.js +55 -0
  118. package/vscode/src/vs/editor/common/viewModel/viewModelImpl.js +4 -1
  119. package/vscode/src/vs/editor/contrib/clipboard/browser/clipboard.js +5 -1
  120. package/vscode/src/vs/editor/contrib/codeAction/browser/codeAction.js +1 -0
  121. package/vscode/src/vs/editor/contrib/codeAction/browser/codeActionController.js +46 -20
  122. package/vscode/src/vs/editor/contrib/codeAction/browser/codeActionMenu.js +1 -1
  123. package/vscode/src/vs/editor/contrib/codeAction/browser/codeActionModel.js +38 -11
  124. package/vscode/src/vs/editor/contrib/codeAction/browser/lightBulbWidget.js +56 -101
  125. package/vscode/src/vs/editor/contrib/codelens/browser/codelensWidget.js +3 -2
  126. package/vscode/src/vs/editor/contrib/colorPicker/browser/colorContributions.js +2 -2
  127. package/vscode/src/vs/editor/contrib/colorPicker/browser/colorHoverParticipant.js +10 -29
  128. package/vscode/src/vs/editor/contrib/colorPicker/browser/colorPickerWidget.js +4 -4
  129. package/vscode/src/vs/editor/contrib/diffEditorBreadcrumbs/browser/contribution.js +51 -0
  130. package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/copyPasteContribution.js +19 -1
  131. package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.js +38 -10
  132. package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/defaultProviders.js +29 -1
  133. package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/edit.js +10 -3
  134. package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/postEditWidget.js +3 -17
  135. package/vscode/src/vs/editor/contrib/find/browser/findController.js +3 -35
  136. package/vscode/src/vs/editor/contrib/folding/browser/foldingDecorations.js +26 -6
  137. package/vscode/src/vs/editor/contrib/fontZoom/browser/fontZoom.js +6 -6
  138. package/vscode/src/vs/editor/contrib/format/browser/format.js +9 -9
  139. package/vscode/src/vs/editor/contrib/format/browser/formatActions.js +5 -5
  140. package/vscode/src/vs/editor/contrib/gotoError/browser/media/gotoErrorWidget.css.js +1 -1
  141. package/vscode/src/vs/editor/contrib/gotoSymbol/browser/goToCommands.js +2 -2
  142. package/vscode/src/vs/editor/contrib/hover/browser/contentHover.js +85 -76
  143. package/vscode/src/vs/editor/contrib/hover/browser/hover.js +120 -90
  144. package/vscode/src/vs/editor/contrib/hover/browser/marginHover.js +18 -6
  145. package/vscode/src/vs/editor/contrib/hover/browser/markdownHoverParticipant.js +1 -1
  146. package/vscode/src/vs/editor/contrib/hover/browser/markerHoverParticipant.js +2 -2
  147. package/vscode/src/vs/editor/contrib/inlayHints/browser/inlayHints.js +4 -2
  148. package/vscode/src/vs/editor/contrib/inlayHints/browser/inlayHintsController.js +56 -38
  149. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/hoverParticipant.js +1 -1
  150. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsController.js +12 -0
  151. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsHintsWidget.js +4 -0
  152. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsModel.js +2 -2
  153. package/vscode/src/vs/editor/contrib/linkedEditing/browser/linkedEditing.js +50 -53
  154. package/vscode/src/vs/editor/contrib/message/browser/messageController.js +5 -2
  155. package/vscode/src/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js +1 -1
  156. package/vscode/src/vs/editor/contrib/semanticTokens/browser/documentSemanticTokens.js +5 -1
  157. package/vscode/src/vs/editor/contrib/stickyScroll/browser/stickyScroll.css.js +1 -1
  158. package/vscode/src/vs/editor/contrib/stickyScroll/browser/stickyScrollActions.js +4 -4
  159. package/vscode/src/vs/editor/contrib/stickyScroll/browser/stickyScrollController.js +8 -5
  160. package/vscode/src/vs/editor/contrib/stickyScroll/browser/stickyScrollWidget.js +58 -46
  161. package/vscode/src/vs/editor/contrib/suggest/browser/suggestController.js +34 -7
  162. package/vscode/src/vs/editor/contrib/suggest/browser/suggestInlineCompletions.js +30 -38
  163. package/vscode/src/vs/editor/contrib/suggest/browser/suggestModel.js +2 -2
  164. package/vscode/src/vs/editor/contrib/suggest/browser/suggestWidget.js +11 -3
  165. package/vscode/src/vs/editor/contrib/suggest/browser/suggestWidgetDetails.js +18 -7
  166. package/vscode/src/vs/editor/contrib/suggest/browser/suggestWidgetRenderer.js +8 -10
  167. package/vscode/src/vs/editor/contrib/unicodeHighlighter/browser/bannerController.js +1 -1
  168. package/vscode/src/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js +7 -6
  169. package/vscode/src/vs/editor/contrib/wordHighlighter/browser/wordHighlighter.js +3 -0
  170. package/vscode/src/vs/editor/editor.api.d.ts +82 -11
  171. package/vscode/src/vs/editor/standalone/browser/quickInput/standaloneQuickInputService.js +8 -3
  172. package/vscode/src/vs/editor/standalone/browser/standaloneLayoutService.js +4 -3
  173. package/vscode/src/vs/editor/standalone/browser/standaloneServices.js +22 -11
  174. package/vscode/src/vs/editor/standalone/browser/standaloneThemeService.js +1 -1
  175. package/vscode/src/vs/nls.d.ts +6 -0
  176. package/vscode/src/vs/platform/accessibility/browser/accessibilityService.js +4 -1
  177. package/vscode/src/vs/platform/accessibility/common/accessibility.d.ts +2 -16
  178. package/vscode/src/vs/platform/accessibility/common/accessibility.js +1 -2
  179. package/vscode/src/vs/platform/action/common/actionCommonCategories.d.ts +7 -20
  180. package/vscode/src/vs/platform/action/common/actionCommonCategories.js +8 -8
  181. package/vscode/src/vs/platform/actionWidget/browser/actionList.js +0 -1
  182. package/vscode/src/vs/platform/actionWidget/browser/actionWidget.css.js +1 -1
  183. package/vscode/src/vs/platform/actions/browser/buttonbar.js +2 -0
  184. package/vscode/src/vs/platform/actions/browser/dropdownWithPrimaryActionViewItem.js +5 -0
  185. package/vscode/src/vs/platform/actions/browser/menuEntryActionViewItem.css.js +1 -1
  186. package/vscode/src/vs/platform/actions/browser/menuEntryActionViewItem.js +2 -2
  187. package/vscode/src/vs/platform/actions/common/actions.d.ts +9 -1
  188. package/vscode/src/vs/platform/actions/common/actions.js +12 -1
  189. package/vscode/src/vs/platform/audioCues/browser/audioCueService.d.ts +11 -1
  190. package/vscode/src/vs/platform/audioCues/browser/audioCueService.js +174 -28
  191. package/vscode/src/vs/platform/clipboard/browser/clipboardService.js +38 -5
  192. package/vscode/src/vs/platform/configuration/common/configuration.d.ts +0 -1
  193. package/vscode/src/vs/platform/environment/common/environmentService.js +1 -1
  194. package/vscode/src/vs/platform/extensionManagement/common/extensionManagement.d.ts +5 -1
  195. package/vscode/src/vs/platform/extensionManagement/common/extensionManagement.js +24 -5
  196. package/vscode/src/vs/platform/extensions/common/extensions.d.ts +6 -1
  197. package/vscode/src/vs/{workbench/services → platform}/hover/browser/hover.d.ts +6 -8
  198. package/vscode/src/vs/platform/hover/browser/hover.js +3 -0
  199. package/vscode/src/vs/platform/instantiation/common/instantiationService.js +14 -4
  200. package/vscode/src/vs/platform/keybinding/common/abstractKeybindingService.js +11 -4
  201. package/vscode/src/vs/platform/keybinding/common/keybinding.d.ts +7 -0
  202. package/vscode/src/vs/platform/layout/browser/layoutService.d.ts +6 -0
  203. package/vscode/src/vs/platform/list/browser/listService.js +7 -5
  204. package/vscode/src/vs/platform/log/common/bufferLog.js +1 -0
  205. package/vscode/src/vs/platform/log/common/log.d.ts +0 -1
  206. package/vscode/src/vs/platform/log/common/log.js +1 -2
  207. package/vscode/src/vs/platform/notification/common/notification.d.ts +36 -19
  208. package/vscode/src/vs/platform/notification/common/notification.js +9 -3
  209. package/vscode/src/vs/platform/quickinput/browser/pickerQuickAccess.js +4 -1
  210. package/vscode/src/vs/platform/quickinput/browser/quickInput.js +50 -48
  211. package/vscode/src/vs/platform/quickinput/browser/quickInputController.js +3 -5
  212. package/vscode/src/vs/platform/quickinput/browser/quickInputList.js +49 -66
  213. package/vscode/src/vs/platform/quickinput/browser/quickInputService.js +11 -3
  214. package/vscode/src/vs/platform/quickinput/browser/quickInputUtils.js +16 -2
  215. package/vscode/src/vs/platform/quickinput/common/quickInput.d.ts +230 -26
  216. package/vscode/src/vs/platform/remote/common/remoteAuthorityResolver.d.ts +1 -0
  217. package/vscode/src/vs/platform/telemetry/common/telemetryUtils.js +1 -0
  218. package/vscode/src/vs/platform/theme/browser/defaultStyles.js +5 -3
  219. package/vscode/src/vs/platform/theme/common/colorRegistry.js +28 -9
  220. package/vscode/src/vs/platform/tunnel/common/tunnel.d.ts +2 -0
  221. package/vscode/src/vs/platform/window/common/window.js +14 -8
  222. package/vscode/src/vs/workbench/api/common/extHost.api.impl.js +97 -78
  223. package/vscode/src/vs/workbench/api/common/extHost.protocol.js +1 -1
  224. package/vscode/src/vs/workbench/api/common/extHostAuthentication.js +1 -22
  225. package/vscode/src/vs/workbench/api/common/extHostChat.js +0 -6
  226. package/vscode/src/vs/workbench/api/common/extHostChatAgents2.js +31 -36
  227. package/vscode/src/vs/workbench/api/common/extHostChatVariables.js +1 -1
  228. package/vscode/src/vs/workbench/api/common/extHostComments.js +6 -1
  229. package/vscode/src/vs/workbench/api/common/extHostConsoleForwarder.js +1 -0
  230. package/vscode/src/vs/workbench/api/common/extHostDebugService.js +130 -6
  231. package/vscode/src/vs/workbench/api/common/extHostDocumentContentProviders.js +28 -15
  232. package/vscode/src/vs/workbench/api/common/extHostDocuments.js +4 -5
  233. package/vscode/src/vs/workbench/api/common/extHostExtensionService.js +5 -1
  234. package/vscode/src/vs/workbench/api/common/extHostFileSystem.js +1 -2
  235. package/vscode/src/vs/workbench/api/common/extHostFileSystemConsumer.js +2 -2
  236. package/vscode/src/vs/workbench/api/common/extHostInlineChat.js +35 -33
  237. package/vscode/src/vs/workbench/api/common/extHostLanguageFeatures.js +40 -13
  238. package/vscode/src/vs/workbench/api/common/extHostMessageService.js +10 -1
  239. package/vscode/src/vs/workbench/api/common/extHostNotebook.js +11 -7
  240. package/vscode/src/vs/workbench/api/common/extHostNotebookEditors.js +2 -3
  241. package/vscode/src/vs/workbench/api/common/extHostNotebookKernels.js +29 -4
  242. package/vscode/src/vs/workbench/api/common/extHostProfileContentHandler.js +1 -1
  243. package/vscode/src/vs/workbench/api/common/extHostProgress.js +1 -7
  244. package/vscode/src/vs/workbench/api/common/extHostSCM.js +49 -93
  245. package/vscode/src/vs/workbench/api/common/extHostSpeech.js +21 -0
  246. package/vscode/src/vs/workbench/api/common/extHostTask.js +18 -22
  247. package/vscode/src/vs/workbench/api/common/extHostTelemetry.js +1 -0
  248. package/vscode/src/vs/workbench/api/common/extHostTerminalService.js +3 -3
  249. package/vscode/src/vs/workbench/api/common/extHostTesting.js +55 -36
  250. package/vscode/src/vs/workbench/api/common/extHostTextEditor.js +5 -2
  251. package/vscode/src/vs/workbench/api/common/extHostTextEditors.js +6 -7
  252. package/vscode/src/vs/workbench/api/common/extHostTreeViews.js +6 -3
  253. package/vscode/src/vs/workbench/api/common/extHostTunnelService.js +4 -2
  254. package/vscode/src/vs/workbench/api/common/extHostTypeConverters.js +74 -12
  255. package/vscode/src/vs/workbench/api/common/extHostTypes.js +27 -8
  256. package/vscode/src/vs/workbench/api/worker/extHostConsoleForwarder.js +1 -1
  257. package/vscode/src/vs/workbench/browser/actions/layoutActions.js +172 -103
  258. package/vscode/src/vs/workbench/browser/actions/windowActions.js +13 -17
  259. package/vscode/src/vs/workbench/browser/actions/workspaceActions.js +34 -34
  260. package/vscode/src/vs/workbench/browser/actions/workspaceCommands.js +4 -4
  261. package/vscode/src/vs/workbench/browser/dnd.js +2 -2
  262. package/vscode/src/vs/workbench/browser/labels.js +34 -4
  263. package/vscode/src/vs/workbench/browser/part.js +2 -2
  264. package/vscode/src/vs/workbench/browser/parts/auxiliarybar/auxiliaryBarActions.js +4 -4
  265. package/vscode/src/vs/workbench/browser/parts/compositeBarActions.js +1 -1
  266. package/vscode/src/vs/workbench/browser/parts/editor/breadcrumbsControl.js +801 -0
  267. package/vscode/src/vs/workbench/browser/parts/editor/breadcrumbsModel.js +140 -0
  268. package/vscode/src/vs/workbench/browser/parts/editor/breadcrumbsPicker.js +410 -0
  269. package/vscode/src/vs/workbench/browser/parts/editor/editor.js +1 -2
  270. package/vscode/src/vs/workbench/browser/parts/editor/editorActions.js +304 -303
  271. package/vscode/src/vs/workbench/browser/parts/editor/editorAutoSave.js +101 -47
  272. package/vscode/src/vs/workbench/browser/parts/editor/editorCommands.js +114 -47
  273. package/vscode/src/vs/workbench/browser/parts/editor/editorGroupView.js +1313 -0
  274. package/vscode/src/vs/workbench/browser/parts/editor/editorGroupWatermark.js +190 -0
  275. package/vscode/src/vs/workbench/browser/parts/editor/editorPanes.js +344 -0
  276. package/vscode/src/vs/workbench/browser/parts/editor/editorQuickAccess.js +1 -1
  277. package/vscode/src/vs/workbench/browser/parts/editor/editorStatus.js +10 -10
  278. package/vscode/src/vs/workbench/browser/parts/editor/editorTabsControl.js +27 -42
  279. package/vscode/src/vs/workbench/browser/parts/editor/editorTitleControl.js +152 -0
  280. package/vscode/src/vs/workbench/browser/parts/editor/editorsObserver.js +8 -8
  281. package/vscode/src/vs/workbench/browser/parts/editor/media/breadcrumbscontrol.css.js +4 -0
  282. package/vscode/src/vs/workbench/browser/parts/editor/media/editorgroupview.css.js +4 -0
  283. package/vscode/src/vs/workbench/browser/parts/editor/media/editortitlecontrol.css.js +4 -0
  284. package/vscode/src/vs/workbench/browser/parts/editor/media/multieditortabscontrol.css.js +4 -0
  285. package/vscode/src/vs/workbench/browser/parts/editor/media/singleeditortabscontrol.css.js +4 -0
  286. package/vscode/src/vs/workbench/browser/parts/editor/multiEditorTabsControl.js +1626 -0
  287. package/vscode/src/vs/workbench/browser/parts/editor/multiRowEditorTabsControl.js +150 -0
  288. package/vscode/src/vs/workbench/browser/parts/editor/noEditorTabsControl.js +52 -0
  289. package/vscode/src/vs/workbench/browser/parts/editor/singleEditorTabsControl.js +260 -0
  290. package/vscode/src/vs/workbench/browser/parts/editor/textEditor.js +1 -1
  291. package/vscode/src/vs/workbench/browser/parts/editor/textResourceEditor.js +2 -2
  292. package/vscode/src/vs/workbench/browser/parts/globalCompositeBar.js +39 -36
  293. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsCommands.js +68 -28
  294. package/vscode/src/vs/workbench/browser/parts/panel/media/panelpart.css.js +1 -1
  295. package/vscode/src/vs/workbench/browser/parts/panel/panelActions.js +15 -14
  296. package/vscode/src/vs/workbench/browser/parts/titlebar/menubarControl.js +18 -17
  297. package/vscode/src/vs/workbench/browser/parts/titlebar/windowTitle.js +1 -1
  298. package/vscode/src/vs/workbench/browser/parts/views/media/views.css.js +1 -1
  299. package/vscode/src/vs/workbench/browser/parts/views/treeView.js +7 -10
  300. package/vscode/src/vs/workbench/browser/parts/views/viewPane.js +2 -1
  301. package/vscode/src/vs/workbench/browser/parts/views/viewPaneContainer.d.ts +2 -1
  302. package/vscode/src/vs/workbench/browser/parts/views/viewPaneContainer.js +18 -17
  303. package/vscode/src/vs/workbench/browser/quickaccess.js +33 -1
  304. package/vscode/src/vs/workbench/browser/web.api.d.ts +6 -0
  305. package/vscode/src/vs/workbench/browser/window.js +92 -9
  306. package/vscode/src/vs/workbench/browser/workbench.contribution.js +114 -65
  307. package/vscode/src/vs/workbench/common/component.d.ts +5 -1
  308. package/vscode/src/vs/workbench/common/component.js +6 -0
  309. package/vscode/src/vs/workbench/common/configuration.js +11 -1
  310. package/vscode/src/vs/workbench/common/contextkeys.js +8 -4
  311. package/vscode/src/vs/workbench/common/editor/editorInput.d.ts +6 -0
  312. package/vscode/src/vs/workbench/common/editor/editorInput.js +3 -0
  313. package/vscode/src/vs/workbench/common/editor/filteredEditorGroupModel.js +107 -0
  314. package/vscode/src/vs/workbench/common/editor/resourceEditorInput.d.ts +6 -3
  315. package/vscode/src/vs/workbench/common/editor/resourceEditorInput.js +21 -3
  316. package/vscode/src/vs/workbench/common/editor/textResourceEditorInput.d.ts +2 -1
  317. package/vscode/src/vs/workbench/common/editor/textResourceEditorInput.js +9 -6
  318. package/vscode/src/vs/workbench/common/editor.d.ts +16 -4
  319. package/vscode/src/vs/workbench/common/editor.js +7 -1
  320. package/vscode/src/vs/workbench/common/memento.js +33 -12
  321. package/vscode/src/vs/workbench/common/notifications.js +30 -7
  322. package/vscode/src/vs/workbench/common/theme.js +61 -1
  323. package/vscode/src/vs/workbench/common/views.d.ts +1 -28
  324. package/vscode/src/vs/workbench/common/views.js +1 -2
  325. package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibilityConfiguration.js +232 -19
  326. package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibilityContributions.js +9 -9
  327. package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibleView.js +1 -0
  328. package/vscode/src/vs/workbench/contrib/accessibility/browser/editorAccessibilityHelp.js +19 -31
  329. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +8 -3
  330. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatActions.js +57 -38
  331. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +4 -4
  332. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditorInput.js +9 -2
  333. package/vscode/src/vs/workbench/contrib/chat/browser/chatFollowups.js +7 -0
  334. package/vscode/src/vs/workbench/contrib/chat/browser/chatInputPart.js +31 -20
  335. package/vscode/src/vs/workbench/contrib/chat/browser/chatListRenderer.js +93 -49
  336. package/vscode/src/vs/workbench/contrib/chat/browser/chatMarkdownDecorationsRenderer.js +30 -6
  337. package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommandContentWidget.js +24 -12
  338. package/vscode/src/vs/workbench/contrib/chat/browser/chatWidget.js +9 -5
  339. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatDynamicVariables.js +12 -1
  340. package/vscode/src/vs/workbench/contrib/chat/browser/media/chat.css.js +1 -1
  341. package/vscode/src/vs/workbench/contrib/chat/common/chatContextKeys.js +2 -1
  342. package/vscode/src/vs/workbench/contrib/chat/common/chatModel.js +21 -43
  343. package/vscode/src/vs/workbench/contrib/chat/common/chatService.js +6 -6
  344. package/vscode/src/vs/workbench/contrib/codeActions/browser/codeActionsContribution.js +4 -4
  345. package/vscode/src/vs/workbench/contrib/codeEditor/browser/suggestEnabledInput/suggestEnabledInput.css.js +1 -1
  346. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleMultiCursorModifier.js +4 -4
  347. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleWordWrap.js +0 -3
  348. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadBody.js +1 -1
  349. package/vscode/src/vs/workbench/contrib/comments/browser/{comments.contribution.js → commentsAccessibility.js} +36 -128
  350. package/vscode/src/vs/workbench/contrib/comments/browser/reactionsAction.js +41 -18
  351. package/vscode/src/vs/workbench/contrib/debug/browser/baseDebugView.js +202 -0
  352. package/vscode/src/vs/workbench/contrib/debug/browser/breakpointEditorContribution.js +27 -4
  353. package/vscode/src/vs/workbench/contrib/debug/browser/breakpointWidget.js +165 -52
  354. package/vscode/src/vs/workbench/contrib/debug/browser/breakpointsView.js +48 -31
  355. package/vscode/src/vs/workbench/contrib/debug/browser/debugIcons.js +6 -1
  356. package/vscode/src/vs/workbench/contrib/debug/browser/media/breakpointWidget.css.js +1 -1
  357. package/vscode/src/vs/workbench/contrib/debug/common/debug.d.ts +40 -10
  358. package/vscode/src/vs/workbench/contrib/debug/common/debug.js +28 -1
  359. package/vscode/src/vs/workbench/contrib/debug/common/debugContext.js +14 -0
  360. package/vscode/src/vs/workbench/contrib/debug/common/debugModel.js +52 -23
  361. package/vscode/src/vs/workbench/contrib/debug/common/debugSource.js +1 -1
  362. package/vscode/src/vs/workbench/contrib/debug/common/debugVisualizers.js +164 -0
  363. package/vscode/src/vs/workbench/contrib/debug/common/disassemblyViewInput.js +10 -0
  364. package/vscode/src/vs/workbench/contrib/debug/common/replModel.js +285 -0
  365. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsActions.js +123 -78
  366. package/vscode/src/vs/workbench/contrib/extensions/common/extensionsInput.js +10 -0
  367. package/vscode/src/vs/workbench/contrib/files/browser/editors/fileEditorInput.js +3 -19
  368. package/vscode/src/vs/workbench/contrib/files/browser/explorerViewlet.js +1 -2
  369. package/vscode/src/vs/workbench/contrib/files/browser/fileActions.js +8 -9
  370. package/vscode/src/vs/workbench/contrib/files/browser/files.configuration.contribution.js +70 -2
  371. package/vscode/src/vs/workbench/contrib/files/browser/files.d.ts +5 -2
  372. package/vscode/src/vs/workbench/contrib/files/browser/views/emptyView.js +2 -2
  373. package/vscode/src/vs/workbench/contrib/files/browser/views/explorerView.js +34 -17
  374. package/vscode/src/vs/workbench/contrib/files/browser/views/explorerViewer.js +5 -4
  375. package/vscode/src/vs/workbench/contrib/files/browser/views/openEditorsView.js +48 -14
  376. package/vscode/src/vs/workbench/contrib/format/browser/formatActionsMultiple.js +16 -8
  377. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.css.js +1 -1
  378. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.js +317 -321
  379. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatLivePreviewWidget.js +17 -24
  380. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSavingService.js +3 -0
  381. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSession.js +306 -130
  382. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.js +3 -0
  383. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatStrategies.js +385 -613
  384. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.js +69 -64
  385. package/vscode/src/vs/workbench/contrib/inlineChat/browser/utils.js +71 -3
  386. package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +39 -44
  387. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditorInput.js +5 -3
  388. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditorInputModel.js +1 -1
  389. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/findModel.js +1 -1
  390. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/coreActions.js +4 -4
  391. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/foldingController.js +3 -3
  392. package/vscode/src/vs/workbench/contrib/notebook/browser/media/notebookCellChat.css.js +1 -1
  393. package/vscode/src/vs/workbench/contrib/notebook/browser/media/notebookEditorStickyScroll.css.js +1 -1
  394. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookEditor.js +38 -7
  395. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookEditorWidget.js +36 -8
  396. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookOptions.js +32 -12
  397. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellPart.js +24 -14
  398. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellEditorOptions.js +4 -4
  399. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellStatusPart.js +1 -1
  400. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellToolbarStickyScroll.js +1 -2
  401. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/chat/cellChatActions.js +264 -12
  402. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/chat/cellChatController.js +60 -27
  403. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/codeCell.js +12 -5
  404. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/codeCellExecutionIcon.js +2 -2
  405. package/vscode/src/vs/workbench/contrib/notebook/browser/view/notebookCellList.js +2 -2
  406. package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/backLayerWebView.js +12 -9
  407. package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/webviewPreloads.js +6 -3
  408. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/notebookViewModelImpl.js +1 -0
  409. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookEditorStickyScroll.js +188 -155
  410. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookKernelView.js +4 -4
  411. package/vscode/src/vs/workbench/contrib/notebook/common/model/notebookCellTextModel.js +10 -3
  412. package/vscode/src/vs/workbench/contrib/notebook/common/notebookCommon.js +16 -33
  413. package/vscode/src/vs/workbench/contrib/notebook/common/notebookEditorInput.js +9 -7
  414. package/vscode/src/vs/workbench/contrib/notebook/common/notebookEditorModel.js +6 -2
  415. package/vscode/src/vs/workbench/contrib/notebook/common/notebookKernelService.js +2 -1
  416. package/vscode/src/vs/workbench/contrib/remote/browser/remoteExplorer.js +29 -14
  417. package/vscode/src/vs/workbench/contrib/remote/browser/tunnelView.js +15 -3
  418. package/vscode/src/vs/workbench/contrib/remote/browser/urlFinder.js +2 -2
  419. package/vscode/src/vs/workbench/contrib/scm/browser/dirtydiffDecorator.js +22 -6
  420. package/vscode/src/vs/workbench/contrib/search/browser/searchActionsFind.js +1 -1
  421. package/vscode/src/vs/workbench/contrib/search/browser/searchModel.js +16 -17
  422. package/vscode/src/vs/workbench/contrib/snippets/browser/snippetCompletionProvider.js +78 -50
  423. package/vscode/src/vs/workbench/contrib/speech/common/speechService.js +15 -1
  424. package/vscode/src/vs/workbench/contrib/terminal/browser/terminal.d.ts +25 -45
  425. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalEditorInput.js +12 -4
  426. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalIcon.js +2 -1
  427. package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/decorationAddon.js +33 -36
  428. package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/decorationStyles.js +1 -1
  429. package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/markNavigationAddon.js +3 -0
  430. package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/xtermTerminal.d.ts +5 -8
  431. package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/xtermTerminal.js +15 -27
  432. package/vscode/src/vs/workbench/contrib/terminal/common/terminalColorRegistry.js +3 -3
  433. package/vscode/src/vs/workbench/contrib/testing/common/testCoverage.js +38 -22
  434. package/vscode/src/vs/workbench/contrib/testing/common/testCoverageService.js +5 -2
  435. package/vscode/src/vs/workbench/contrib/testing/common/testProfileService.js +60 -40
  436. package/vscode/src/vs/workbench/contrib/testing/common/testResult.js +2 -2
  437. package/vscode/src/vs/workbench/contrib/testing/common/testResultStorage.js +15 -11
  438. package/vscode/src/vs/workbench/contrib/testing/common/testService.js +26 -1
  439. package/vscode/src/vs/workbench/contrib/testing/common/testTypes.js +24 -23
  440. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedService.js +1 -1
  441. package/vscode/src/vs/workbench/services/authentication/browser/authenticationService.js +124 -26
  442. package/vscode/src/vs/workbench/services/authentication/common/authentication.d.ts +68 -0
  443. package/vscode/src/vs/workbench/services/auxiliaryWindow/browser/auxiliaryWindowService.js +76 -36
  444. package/vscode/src/vs/workbench/services/configurationResolver/common/configurationResolver.js +1 -0
  445. package/vscode/src/vs/workbench/services/configurationResolver/common/variableResolver.js +1 -0
  446. package/vscode/src/vs/workbench/services/editor/browser/editorService.js +15 -3
  447. package/vscode/src/vs/workbench/services/editor/common/editorGroupFinder.js +10 -1
  448. package/vscode/src/vs/workbench/services/editor/common/editorGroupsService.d.ts +51 -43
  449. package/vscode/src/vs/workbench/services/editor/common/editorService.d.ts +13 -8
  450. package/vscode/src/vs/workbench/services/editor/common/editorService.js +2 -1
  451. package/vscode/src/vs/workbench/services/extensionManagement/browser/extensionBisect.js +10 -10
  452. package/vscode/src/vs/workbench/services/extensions/browser/extensionUrlHandler.js +8 -8
  453. package/vscode/src/vs/workbench/services/extensions/common/extensionsApiProposals.js +7 -7
  454. package/vscode/src/vs/workbench/services/extensions/common/rpcProtocol.js +1 -0
  455. package/vscode/src/vs/workbench/services/filesConfiguration/common/filesConfigurationService.d.ts +29 -9
  456. package/vscode/src/vs/workbench/services/filesConfiguration/common/filesConfigurationService.js +160 -63
  457. package/vscode/src/vs/workbench/services/host/browser/host.d.ts +8 -0
  458. package/vscode/src/vs/workbench/services/keybinding/common/keybindingEditing.js +60 -72
  459. package/vscode/src/vs/workbench/services/layout/browser/layoutService.d.ts +0 -4
  460. package/vscode/src/vs/workbench/services/notebook/common/notebookDocumentService.js +56 -0
  461. package/vscode/src/vs/workbench/services/output/common/output.js +2 -2
  462. package/vscode/src/vs/workbench/services/preferences/browser/keybindingsEditorInput.js +10 -0
  463. package/vscode/src/vs/workbench/services/preferences/common/preferencesEditorInput.js +10 -0
  464. package/vscode/src/vs/workbench/services/remote/common/remoteExplorerService.js +2 -1
  465. package/vscode/src/vs/workbench/services/textfile/common/textFileEditorModel.js +5 -4
  466. package/vscode/src/vs/workbench/services/untitled/common/untitledTextEditorInput.js +21 -8
  467. package/vscode/src/vs/workbench/services/untitled/common/untitledTextEditorService.d.ts +4 -0
  468. package/vscode/src/vs/workbench/services/untitled/common/untitledTextEditorService.js +3 -0
  469. package/vscode/src/vs/workbench/services/userDataProfile/common/userDataProfile.js +4 -4
  470. package/vscode/src/vs/workbench/{browser/parts/views → services/views/browser}/viewsService.js +20 -15
  471. package/vscode/src/vs/workbench/services/views/common/viewsService.d.ts +34 -0
  472. package/vscode/src/vs/workbench/services/{hover/browser/hover.js → views/common/viewsService.js} +2 -2
  473. package/vscode/src/vs/workbench/services/workingCopy/common/storedFileWorkingCopy.d.ts +6 -1
  474. package/vscode/src/vs/workbench/services/workingCopy/common/storedFileWorkingCopy.js +5 -2
  475. package/vscode/src/vs/workbench/services/workspaces/common/workspaceTrust.js +1 -0
  476. package/vscode-dts/vscode.proposed.chatAgents2.d.ts +112 -47
  477. package/vscode-dts/vscode.proposed.chatAgents2Additions.d.ts +68 -9
  478. package/vscode-dts/{vscode.proposed.scmInputBoxActionButton.d.ts → vscode.proposed.codeActionRanges.d.ts} +8 -10
  479. package/vscode-dts/{vscode.proposed.readonlyMessage.d.ts → vscode.proposed.commentReactor.d.ts} +3 -4
  480. package/vscode-dts/vscode.proposed.contribMultiDiffEditorMenus.d.ts +6 -0
  481. package/vscode-dts/vscode.proposed.contribSourceControlHistoryItemGroupMenu.d.ts +8 -0
  482. package/vscode-dts/vscode.proposed.contribSourceControlHistoryItemMenu.d.ts +8 -0
  483. package/vscode-dts/vscode.proposed.debugVisualization.d.ts +100 -0
  484. package/vscode-dts/vscode.proposed.defaultChatAgent.d.ts +1 -1
  485. package/vscode-dts/vscode.proposed.interactive.d.ts +13 -16
  486. package/vscode-dts/vscode.proposed.notebookVariableProvider.d.ts +4 -1
  487. package/vscode-dts/vscode.proposed.resolvers.d.ts +4 -0
  488. package/vscode-dts/vscode.proposed.scmHistoryProvider.d.ts +4 -10
  489. package/vscode-dts/vscode.proposed.scmMultiDiffEditor.d.ts +34 -0
  490. package/vscode-dts/vscode.proposed.speech.d.ts +17 -3
  491. package/vscode-dts/vscode.proposed.testCoverage.d.ts +7 -1
  492. package/vscode-dts/vscode.proposed.tunnelFactory.d.ts +4 -0
  493. package/vscode/src/vs/editor/browser/widget/diffEditor/colors.js +0 -17
  494. package/vscode/src/vs/editor/browser/widget/diffEditor/diffEditorDecorations.js +0 -231
  495. package/vscode/src/vs/editor/browser/widget/diffEditor/outlineModel.js +0 -299
  496. package/vscode/src/vs/editor/browser/widget/diffEditor/workerBasedDocumentDiffProvider.js +0 -101
  497. package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/suggestAddon.js +0 -390
  498. package/vscode/src/vs/workbench/services/editor/common/editorGroupColumn.d.ts +0 -10
  499. package/vscode/src/vs/workbench/services/suggest/browser/media/suggest.css.js +0 -4
  500. package/vscode/src/vs/workbench/services/suggest/browser/simpleCompletionItem.d.ts +0 -28
  501. package/vscode/src/vs/workbench/services/suggest/browser/simpleCompletionItem.js +0 -10
  502. package/vscode/src/vs/workbench/services/suggest/browser/simpleCompletionModel.d.ts +0 -30
  503. package/vscode/src/vs/workbench/services/suggest/browser/simpleCompletionModel.js +0 -98
  504. package/vscode/src/vs/workbench/services/suggest/browser/simpleSuggestWidget.d.ts +0 -10
  505. package/vscode/src/vs/workbench/services/suggest/browser/simpleSuggestWidget.js +0 -428
  506. package/vscode/src/vs/workbench/services/suggest/browser/simpleSuggestWidgetRenderer.js +0 -83
  507. package/vscode-dts/vscode.proposed.chatVariables.d.ts +0 -39
  508. package/vscode-dts/vscode.proposed.interactiveUserActions.d.ts +0 -77
  509. package/vscode-dts/vscode.proposed.saveEditor.d.ts +0 -35
  510. package/vscode-dts/vscode.proposed.scmInputBoxValueProvider.d.ts +0 -25
  511. package/vscode-dts/vscode.proposed.testingActiveProfile.d.ts +0 -21
@@ -0,0 +1,801 @@
1
+ import { __decorate, __param } from '../../../../../../../external/tslib/tslib.es6.js';
2
+ import { append, getWindow, getDomNodePagePosition, $, trackFocus } from '../../../../base/browser/dom.js';
3
+ import { StandardMouseEvent } from '../../../../base/browser/mouseEvent.js';
4
+ import { BreadcrumbsWidget, BreadcrumbsItem } from '../../../../base/browser/ui/breadcrumbs/breadcrumbsWidget.js';
5
+ import { tail } from '../../../../base/common/arrays.js';
6
+ import { timeout } from '../../../../base/common/async.js';
7
+ import { DisposableStore, MutableDisposable, toDisposable, combinedDisposable } from '../../../../base/common/lifecycle.js';
8
+ import { extUri } from '../../../../base/common/resources.js';
9
+ import { URI } from '../../../../base/common/uri.js';
10
+ import './media/breadcrumbscontrol.css.js';
11
+ import { localizeWithPath } from '../../../../nls.js';
12
+ import { registerAction2, Action2, MenuId } from '../../../../platform/actions/common/actions.js';
13
+ import { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';
14
+ import { RawContextKey, ContextKeyExpr, IContextKeyService } from '../../../../platform/contextkey/common/contextkey.js';
15
+ import { IContextViewService } from '../../../../platform/contextview/browser/contextView.js';
16
+ import { FileKind, IFileService } from '../../../../platform/files/common/files.js';
17
+ import { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';
18
+ import { KeybindingsRegistry } from '../../../../platform/keybinding/common/keybindingsRegistry.js';
19
+ import { WorkbenchListFocusContextKey, IListService, WorkbenchDataTree, WorkbenchAsyncDataTree } from '../../../../platform/list/browser/listService.js';
20
+ import { IQuickInputService } from '../../../../platform/quickinput/common/quickInput.js';
21
+ import { ResourceLabels, DEFAULT_LABELS_CONTAINER } from '../../labels.js';
22
+ import { BreadcrumbsConfig, IBreadcrumbsService } from './breadcrumbs.js';
23
+ import { BreadcrumbsModel, OutlineElement2, FileElement } from './breadcrumbsModel.js';
24
+ import { BreadcrumbsFilePicker, BreadcrumbsOutlinePicker } from './breadcrumbsPicker.js';
25
+ import { EditorResourceAccessor, SideBySideEditor } from '../../../common/editor.js';
26
+ import { SIDE_GROUP, ACTIVE_GROUP, IEditorService } from '../../../services/editor/common/editorService.js';
27
+ import { IEditorGroupsService } from '../../../services/editor/common/editorGroupsService.js';
28
+ import { PixelRatio } from '../../../../base/browser/browser.js';
29
+ import { ILabelService } from '../../../../platform/label/common/label.js';
30
+ import { Categories } from '../../../../platform/action/common/actionCommonCategories.js';
31
+ import { registerIcon } from '../../../../platform/theme/common/iconRegistry.js';
32
+ import { Codicon } from '../../../../base/common/codicons.js';
33
+ import { defaultBreadcrumbsWidgetStyles } from '../../../../platform/theme/browser/defaultStyles.js';
34
+ import { Emitter } from '../../../../base/common/event.js';
35
+ var BreadcrumbsControl_1;
36
+ class OutlineItem extends BreadcrumbsItem {
37
+ constructor(model, element, options) {
38
+ super();
39
+ this.model = model;
40
+ this.element = element;
41
+ this.options = options;
42
+ this._disposables = ( new DisposableStore());
43
+ }
44
+ dispose() {
45
+ this._disposables.dispose();
46
+ }
47
+ equals(other) {
48
+ if (!(other instanceof OutlineItem)) {
49
+ return false;
50
+ }
51
+ return this.element.element === other.element.element &&
52
+ this.options.showFileIcons === other.options.showFileIcons &&
53
+ this.options.showSymbolIcons === other.options.showSymbolIcons;
54
+ }
55
+ render(container) {
56
+ const { element, outline } = this.element;
57
+ if (element === outline) {
58
+ const element = $('span', undefined, '…');
59
+ container.appendChild(element);
60
+ return;
61
+ }
62
+ const templateId = outline.config.delegate.getTemplateId(element);
63
+ const renderer = outline.config.renderers.find(renderer => renderer.templateId === templateId);
64
+ if (!renderer) {
65
+ container.innerText = '<<NO RENDERER>>';
66
+ return;
67
+ }
68
+ const template = renderer.renderTemplate(container);
69
+ renderer.renderElement({
70
+ element,
71
+ children: [],
72
+ depth: 0,
73
+ visibleChildrenCount: 0,
74
+ visibleChildIndex: 0,
75
+ collapsible: false,
76
+ collapsed: false,
77
+ visible: true,
78
+ filterData: undefined
79
+ }, 0, template, undefined);
80
+ this._disposables.add(toDisposable(() => { renderer.disposeTemplate(template); }));
81
+ }
82
+ }
83
+ class FileItem extends BreadcrumbsItem {
84
+ constructor(model, element, options, _labels) {
85
+ super();
86
+ this.model = model;
87
+ this.element = element;
88
+ this.options = options;
89
+ this._labels = _labels;
90
+ this._disposables = ( new DisposableStore());
91
+ }
92
+ dispose() {
93
+ this._disposables.dispose();
94
+ }
95
+ equals(other) {
96
+ if (!(other instanceof FileItem)) {
97
+ return false;
98
+ }
99
+ return (extUri.isEqual(this.element.uri, other.element.uri) &&
100
+ this.options.showFileIcons === other.options.showFileIcons &&
101
+ this.options.showSymbolIcons === other.options.showSymbolIcons);
102
+ }
103
+ render(container) {
104
+ const label = this._labels.create(container);
105
+ label.setFile(this.element.uri, {
106
+ hidePath: true,
107
+ hideIcon: this.element.kind === FileKind.FOLDER || !this.options.showFileIcons,
108
+ fileKind: this.element.kind,
109
+ fileDecorations: { colors: this.options.showDecorationColors, badges: false },
110
+ });
111
+ container.classList.add(FileKind[this.element.kind].toLowerCase());
112
+ this._disposables.add(label);
113
+ }
114
+ }
115
+ const separatorIcon = registerIcon('breadcrumb-separator', Codicon.chevronRight, ( localizeWithPath(
116
+ 'vs/workbench/browser/parts/editor/breadcrumbsControl',
117
+ 'separatorIcon',
118
+ 'Icon for the separator in the breadcrumbs.'
119
+ )));
120
+ let BreadcrumbsControl = class BreadcrumbsControl {
121
+ static { BreadcrumbsControl_1 = this; }
122
+ static { this.HEIGHT = 22; }
123
+ static { this.SCROLLBAR_SIZES = {
124
+ default: 3,
125
+ large: 8
126
+ }; }
127
+ static { this.Payload_Reveal = {}; }
128
+ static { this.Payload_RevealAside = {}; }
129
+ static { this.Payload_Pick = {}; }
130
+ static { this.CK_BreadcrumbsPossible = ( new RawContextKey('breadcrumbsPossible', false, ( localizeWithPath(
131
+ 'vs/workbench/browser/parts/editor/breadcrumbsControl',
132
+ 'breadcrumbsPossible',
133
+ "Whether the editor can show breadcrumbs"
134
+ )))); }
135
+ static { this.CK_BreadcrumbsVisible = ( new RawContextKey('breadcrumbsVisible', false, ( localizeWithPath(
136
+ 'vs/workbench/browser/parts/editor/breadcrumbsControl',
137
+ 'breadcrumbsVisible',
138
+ "Whether breadcrumbs are currently visible"
139
+ )))); }
140
+ static { this.CK_BreadcrumbsActive = ( new RawContextKey('breadcrumbsActive', false, ( localizeWithPath(
141
+ 'vs/workbench/browser/parts/editor/breadcrumbsControl',
142
+ 'breadcrumbsActive',
143
+ "Whether breadcrumbs have focus"
144
+ )))); }
145
+ get onDidVisibilityChange() { return this._onDidVisibilityChange.event; }
146
+ constructor(container, _options, _editorGroup, _contextKeyService, _contextViewService, _instantiationService, _quickInputService, _fileService, _editorService, _labelService, configurationService, breadcrumbsService) {
147
+ this._options = _options;
148
+ this._editorGroup = _editorGroup;
149
+ this._contextKeyService = _contextKeyService;
150
+ this._contextViewService = _contextViewService;
151
+ this._instantiationService = _instantiationService;
152
+ this._quickInputService = _quickInputService;
153
+ this._fileService = _fileService;
154
+ this._editorService = _editorService;
155
+ this._labelService = _labelService;
156
+ this._disposables = ( new DisposableStore());
157
+ this._breadcrumbsDisposables = ( new DisposableStore());
158
+ this._model = ( new MutableDisposable());
159
+ this._breadcrumbsPickerShowing = false;
160
+ this._onDidVisibilityChange = this._disposables.add(( new Emitter()));
161
+ this.domNode = document.createElement('div');
162
+ this.domNode.classList.add('breadcrumbs-control');
163
+ append(container, this.domNode);
164
+ this._cfUseQuickPick = BreadcrumbsConfig.UseQuickPick.bindTo(configurationService);
165
+ this._cfShowIcons = BreadcrumbsConfig.Icons.bindTo(configurationService);
166
+ this._cfTitleScrollbarSizing = BreadcrumbsConfig.TitleScrollbarSizing.bindTo(configurationService);
167
+ this._labels = this._instantiationService.createInstance(ResourceLabels, DEFAULT_LABELS_CONTAINER);
168
+ const sizing = this._cfTitleScrollbarSizing.getValue() ?? 'default';
169
+ const styles = _options.widgetStyles ?? defaultBreadcrumbsWidgetStyles;
170
+ this._widget = ( new BreadcrumbsWidget(
171
+ this.domNode,
172
+ BreadcrumbsControl_1.SCROLLBAR_SIZES[sizing],
173
+ separatorIcon,
174
+ styles
175
+ ));
176
+ this._widget.onDidSelectItem(this._onSelectEvent, this, this._disposables);
177
+ this._widget.onDidFocusItem(this._onFocusEvent, this, this._disposables);
178
+ this._widget.onDidChangeFocus(this._updateCkBreadcrumbsActive, this, this._disposables);
179
+ this._ckBreadcrumbsPossible = BreadcrumbsControl_1.CK_BreadcrumbsPossible.bindTo(this._contextKeyService);
180
+ this._ckBreadcrumbsVisible = BreadcrumbsControl_1.CK_BreadcrumbsVisible.bindTo(this._contextKeyService);
181
+ this._ckBreadcrumbsActive = BreadcrumbsControl_1.CK_BreadcrumbsActive.bindTo(this._contextKeyService);
182
+ this._disposables.add(breadcrumbsService.register(this._editorGroup.id, this._widget));
183
+ this.hide();
184
+ }
185
+ dispose() {
186
+ this._disposables.dispose();
187
+ this._breadcrumbsDisposables.dispose();
188
+ this._ckBreadcrumbsPossible.reset();
189
+ this._ckBreadcrumbsVisible.reset();
190
+ this._ckBreadcrumbsActive.reset();
191
+ this._cfUseQuickPick.dispose();
192
+ this._cfShowIcons.dispose();
193
+ this._widget.dispose();
194
+ this._labels.dispose();
195
+ this.domNode.remove();
196
+ }
197
+ get model() {
198
+ return this._model.value;
199
+ }
200
+ layout(dim) {
201
+ this._widget.layout(dim);
202
+ }
203
+ isHidden() {
204
+ return this.domNode.classList.contains('hidden');
205
+ }
206
+ hide() {
207
+ const wasHidden = this.isHidden();
208
+ this._breadcrumbsDisposables.clear();
209
+ this._ckBreadcrumbsVisible.set(false);
210
+ this.domNode.classList.toggle('hidden', true);
211
+ if (!wasHidden) {
212
+ this._onDidVisibilityChange.fire();
213
+ }
214
+ }
215
+ show() {
216
+ const wasHidden = this.isHidden();
217
+ this._ckBreadcrumbsVisible.set(true);
218
+ this.domNode.classList.toggle('hidden', false);
219
+ if (wasHidden) {
220
+ this._onDidVisibilityChange.fire();
221
+ }
222
+ }
223
+ revealLast() {
224
+ this._widget.revealLast();
225
+ }
226
+ update() {
227
+ this._breadcrumbsDisposables.clear();
228
+ const uri = EditorResourceAccessor.getCanonicalUri(this._editorGroup.activeEditor, { supportSideBySide: SideBySideEditor.PRIMARY });
229
+ const wasHidden = this.isHidden();
230
+ if (!uri || !this._fileService.hasProvider(uri)) {
231
+ this._ckBreadcrumbsPossible.set(false);
232
+ if (!wasHidden) {
233
+ this.hide();
234
+ return true;
235
+ }
236
+ else {
237
+ return false;
238
+ }
239
+ }
240
+ const fileInfoUri = EditorResourceAccessor.getOriginalUri(this._editorGroup.activeEditor, { supportSideBySide: SideBySideEditor.PRIMARY });
241
+ this.show();
242
+ this._ckBreadcrumbsPossible.set(true);
243
+ const model = this._instantiationService.createInstance(BreadcrumbsModel, fileInfoUri ?? uri, this._editorGroup.activeEditorPane);
244
+ this._model.value = model;
245
+ this.domNode.classList.toggle('backslash-path', this._labelService.getSeparator(uri.scheme, uri.authority) === '\\');
246
+ const updateBreadcrumbs = () => {
247
+ this.domNode.classList.toggle('relative-path', model.isRelative());
248
+ const showIcons = this._cfShowIcons.getValue();
249
+ const options = {
250
+ ...this._options,
251
+ showFileIcons: this._options.showFileIcons && showIcons,
252
+ showSymbolIcons: this._options.showSymbolIcons && showIcons
253
+ };
254
+ const items = ( model.getElements().map(element => element instanceof FileElement ? ( new FileItem(model, element, options, this._labels)) : ( new OutlineItem(model, element, options))));
255
+ if (items.length === 0) {
256
+ this._widget.setEnabled(false);
257
+ this._widget.setItems([new (class extends BreadcrumbsItem {
258
+ render(container) {
259
+ container.innerText = ( localizeWithPath(
260
+ 'vs/workbench/browser/parts/editor/breadcrumbsControl',
261
+ 'empty',
262
+ "no elements"
263
+ ));
264
+ }
265
+ equals(other) {
266
+ return other === this;
267
+ }
268
+ dispose() {
269
+ }
270
+ })]);
271
+ }
272
+ else {
273
+ this._widget.setEnabled(true);
274
+ this._widget.setItems(items);
275
+ this._widget.reveal(items[items.length - 1]);
276
+ }
277
+ };
278
+ const listener = model.onDidUpdate(updateBreadcrumbs);
279
+ const configListener = this._cfShowIcons.onDidChange(updateBreadcrumbs);
280
+ updateBreadcrumbs();
281
+ this._breadcrumbsDisposables.clear();
282
+ this._breadcrumbsDisposables.add(listener);
283
+ this._breadcrumbsDisposables.add(toDisposable(() => this._model.clear()));
284
+ this._breadcrumbsDisposables.add(configListener);
285
+ this._breadcrumbsDisposables.add(toDisposable(() => this._widget.setItems([])));
286
+ const updateScrollbarSizing = () => {
287
+ const sizing = this._cfTitleScrollbarSizing.getValue() ?? 'default';
288
+ this._widget.setHorizontalScrollbarSize(BreadcrumbsControl_1.SCROLLBAR_SIZES[sizing]);
289
+ };
290
+ updateScrollbarSizing();
291
+ const updateScrollbarSizeListener = this._cfTitleScrollbarSizing.onDidChange(updateScrollbarSizing);
292
+ this._breadcrumbsDisposables.add(updateScrollbarSizeListener);
293
+ this._breadcrumbsDisposables.add({
294
+ dispose: () => {
295
+ if (this._breadcrumbsPickerShowing) {
296
+ this._contextViewService.hideContextView({ source: this });
297
+ }
298
+ }
299
+ });
300
+ return wasHidden !== this.isHidden();
301
+ }
302
+ _onFocusEvent(event) {
303
+ if (event.item && this._breadcrumbsPickerShowing) {
304
+ this._breadcrumbsPickerIgnoreOnceItem = undefined;
305
+ this._widget.setSelection(event.item);
306
+ }
307
+ }
308
+ _onSelectEvent(event) {
309
+ if (!event.item) {
310
+ return;
311
+ }
312
+ if (event.item === this._breadcrumbsPickerIgnoreOnceItem) {
313
+ this._breadcrumbsPickerIgnoreOnceItem = undefined;
314
+ this._widget.setFocused(undefined);
315
+ this._widget.setSelection(undefined);
316
+ return;
317
+ }
318
+ const { element } = event.item;
319
+ this._editorGroup.focus();
320
+ const group = this._getEditorGroup(event.payload);
321
+ if (group !== undefined) {
322
+ this._widget.setFocused(undefined);
323
+ this._widget.setSelection(undefined);
324
+ this._revealInEditor(event, element, group);
325
+ return;
326
+ }
327
+ if (this._cfUseQuickPick.getValue()) {
328
+ this._widget.setFocused(undefined);
329
+ this._widget.setSelection(undefined);
330
+ this._quickInputService.quickAccess.show(element instanceof OutlineElement2 ? '@' : '');
331
+ return;
332
+ }
333
+ let picker;
334
+ let pickerAnchor;
335
+ this._contextViewService.showContextView({
336
+ render: (parent) => {
337
+ if (event.item instanceof FileItem) {
338
+ picker = this._instantiationService.createInstance(BreadcrumbsFilePicker, parent, event.item.model.resource);
339
+ }
340
+ else if (event.item instanceof OutlineItem) {
341
+ picker = this._instantiationService.createInstance(BreadcrumbsOutlinePicker, parent, event.item.model.resource);
342
+ }
343
+ const selectListener = picker.onWillPickElement(() => this._contextViewService.hideContextView({ source: this, didPick: true }));
344
+ const zoomListener = PixelRatio.onDidChange(() => this._contextViewService.hideContextView({ source: this }));
345
+ const focusTracker = trackFocus(parent);
346
+ const blurListener = focusTracker.onDidBlur(() => {
347
+ this._breadcrumbsPickerIgnoreOnceItem = this._widget.isDOMFocused() ? event.item : undefined;
348
+ this._contextViewService.hideContextView({ source: this });
349
+ });
350
+ this._breadcrumbsPickerShowing = true;
351
+ this._updateCkBreadcrumbsActive();
352
+ return combinedDisposable(picker, selectListener, zoomListener, focusTracker, blurListener);
353
+ },
354
+ getAnchor: () => {
355
+ if (!pickerAnchor) {
356
+ const window = getWindow(this.domNode);
357
+ const maxInnerWidth = window.innerWidth - 8 ;
358
+ let maxHeight = Math.min(window.innerHeight * 0.7, 300);
359
+ const pickerWidth = Math.min(maxInnerWidth, Math.max(240, maxInnerWidth / 4.17));
360
+ const pickerArrowSize = 8;
361
+ let pickerArrowOffset;
362
+ const data = getDomNodePagePosition(event.node.firstChild);
363
+ const y = data.top + data.height + pickerArrowSize;
364
+ if (y + maxHeight >= window.innerHeight) {
365
+ maxHeight = window.innerHeight - y - 30 ;
366
+ }
367
+ let x = data.left;
368
+ if (x + pickerWidth >= maxInnerWidth) {
369
+ x = maxInnerWidth - pickerWidth;
370
+ }
371
+ if (event.payload instanceof StandardMouseEvent) {
372
+ const maxPickerArrowOffset = pickerWidth - 2 * pickerArrowSize;
373
+ pickerArrowOffset = event.payload.posx - x;
374
+ if (pickerArrowOffset > maxPickerArrowOffset) {
375
+ x = Math.min(maxInnerWidth - pickerWidth, x + pickerArrowOffset - maxPickerArrowOffset);
376
+ pickerArrowOffset = maxPickerArrowOffset;
377
+ }
378
+ }
379
+ else {
380
+ pickerArrowOffset = (data.left + (data.width * 0.3)) - x;
381
+ }
382
+ picker.show(element, maxHeight, pickerWidth, pickerArrowSize, Math.max(0, pickerArrowOffset));
383
+ pickerAnchor = { x, y };
384
+ }
385
+ return pickerAnchor;
386
+ },
387
+ onHide: (data) => {
388
+ if (!data?.didPick) {
389
+ picker.restoreViewState();
390
+ }
391
+ this._breadcrumbsPickerShowing = false;
392
+ this._updateCkBreadcrumbsActive();
393
+ if (data?.source === this) {
394
+ this._widget.setFocused(undefined);
395
+ this._widget.setSelection(undefined);
396
+ }
397
+ picker.dispose();
398
+ }
399
+ });
400
+ }
401
+ _updateCkBreadcrumbsActive() {
402
+ const value = this._widget.isDOMFocused() || this._breadcrumbsPickerShowing;
403
+ this._ckBreadcrumbsActive.set(value);
404
+ }
405
+ async _revealInEditor(event, element, group, pinned = false) {
406
+ if (element instanceof FileElement) {
407
+ if (element.kind === FileKind.FILE) {
408
+ await this._editorService.openEditor({ resource: element.uri, options: { pinned } }, group);
409
+ }
410
+ else {
411
+ const items = this._widget.getItems();
412
+ const idx = items.indexOf(event.item);
413
+ this._widget.setFocused(items[idx + 1]);
414
+ this._widget.setSelection(items[idx + 1], BreadcrumbsControl_1.Payload_Pick);
415
+ }
416
+ }
417
+ else {
418
+ element.outline.reveal(element, { pinned }, group === SIDE_GROUP);
419
+ }
420
+ }
421
+ _getEditorGroup(data) {
422
+ if (data === BreadcrumbsControl_1.Payload_RevealAside) {
423
+ return SIDE_GROUP;
424
+ }
425
+ else if (data === BreadcrumbsControl_1.Payload_Reveal) {
426
+ return ACTIVE_GROUP;
427
+ }
428
+ else {
429
+ return undefined;
430
+ }
431
+ }
432
+ };
433
+ BreadcrumbsControl = BreadcrumbsControl_1 = ( __decorate([
434
+ ( __param(3, IContextKeyService)),
435
+ ( __param(4, IContextViewService)),
436
+ ( __param(5, IInstantiationService)),
437
+ ( __param(6, IQuickInputService)),
438
+ ( __param(7, IFileService)),
439
+ ( __param(8, IEditorService)),
440
+ ( __param(9, ILabelService)),
441
+ ( __param(10, IConfigurationService)),
442
+ ( __param(11, IBreadcrumbsService))
443
+ ], BreadcrumbsControl));
444
+ let BreadcrumbsControlFactory = class BreadcrumbsControlFactory {
445
+ get control() { return this._control; }
446
+ get onDidEnablementChange() { return this._onDidEnablementChange.event; }
447
+ get onDidVisibilityChange() { return this._onDidVisibilityChange.event; }
448
+ constructor(_container, _editorGroup, _options, configurationService, _instantiationService, fileService) {
449
+ this._container = _container;
450
+ this._editorGroup = _editorGroup;
451
+ this._options = _options;
452
+ this._instantiationService = _instantiationService;
453
+ this._disposables = ( new DisposableStore());
454
+ this._controlDisposables = ( new DisposableStore());
455
+ this._onDidEnablementChange = this._disposables.add(( new Emitter()));
456
+ this._onDidVisibilityChange = this._disposables.add(( new Emitter()));
457
+ const config = this._disposables.add(BreadcrumbsConfig.IsEnabled.bindTo(configurationService));
458
+ this._disposables.add(config.onDidChange(() => {
459
+ const value = config.getValue();
460
+ if (!value && this._control) {
461
+ this._controlDisposables.clear();
462
+ this._control = undefined;
463
+ this._onDidEnablementChange.fire();
464
+ }
465
+ else if (value && !this._control) {
466
+ this._control = this.createControl();
467
+ this._control.update();
468
+ this._onDidEnablementChange.fire();
469
+ }
470
+ }));
471
+ if (config.getValue()) {
472
+ this._control = this.createControl();
473
+ }
474
+ this._disposables.add(fileService.onDidChangeFileSystemProviderRegistrations(e => {
475
+ if (this._control?.model && this._control.model.resource.scheme !== e.scheme) {
476
+ return;
477
+ }
478
+ if (this._control?.update()) {
479
+ this._onDidEnablementChange.fire();
480
+ }
481
+ }));
482
+ }
483
+ createControl() {
484
+ const control = this._controlDisposables.add(this._instantiationService.createInstance(BreadcrumbsControl, this._container, this._options, this._editorGroup));
485
+ this._controlDisposables.add(control.onDidVisibilityChange(() => this._onDidVisibilityChange.fire()));
486
+ return control;
487
+ }
488
+ dispose() {
489
+ this._disposables.dispose();
490
+ this._controlDisposables.dispose();
491
+ }
492
+ };
493
+ BreadcrumbsControlFactory = ( __decorate([
494
+ ( __param(3, IConfigurationService)),
495
+ ( __param(4, IInstantiationService)),
496
+ ( __param(5, IFileService))
497
+ ], BreadcrumbsControlFactory));
498
+ registerAction2(class ToggleBreadcrumb extends Action2 {
499
+ constructor() {
500
+ super({
501
+ id: 'breadcrumbs.toggle',
502
+ title: {
503
+ value: ( localizeWithPath(
504
+ 'vs/workbench/browser/parts/editor/breadcrumbsControl',
505
+ 'cmd.toggle',
506
+ "Toggle Breadcrumbs"
507
+ )),
508
+ mnemonicTitle: ( localizeWithPath(
509
+ 'vs/workbench/browser/parts/editor/breadcrumbsControl',
510
+ { key: 'miBreadcrumbs', comment: ['&& denotes a mnemonic'] },
511
+ "Toggle &&Breadcrumbs"
512
+ )),
513
+ original: 'Toggle Breadcrumbs',
514
+ },
515
+ category: Categories.View,
516
+ toggled: {
517
+ condition: ( ContextKeyExpr.equals('config.breadcrumbs.enabled', true)),
518
+ title: ( localizeWithPath(
519
+ 'vs/workbench/browser/parts/editor/breadcrumbsControl',
520
+ 'cmd.toggle2',
521
+ "Breadcrumbs"
522
+ )),
523
+ mnemonicTitle: ( localizeWithPath(
524
+ 'vs/workbench/browser/parts/editor/breadcrumbsControl',
525
+ { key: 'miBreadcrumbs2', comment: ['&& denotes a mnemonic'] },
526
+ "&&Breadcrumbs"
527
+ ))
528
+ },
529
+ menu: [
530
+ { id: MenuId.CommandPalette },
531
+ { id: MenuId.MenubarAppearanceMenu, group: '4_editor', order: 2 },
532
+ { id: MenuId.NotebookToolbar, group: 'notebookLayout', order: 2 },
533
+ { id: MenuId.StickyScrollContext }
534
+ ]
535
+ });
536
+ }
537
+ run(accessor) {
538
+ const config = accessor.get(IConfigurationService);
539
+ const value = BreadcrumbsConfig.IsEnabled.bindTo(config).getValue();
540
+ BreadcrumbsConfig.IsEnabled.bindTo(config).updateValue(!value);
541
+ }
542
+ });
543
+ function focusAndSelectHandler(accessor, select) {
544
+ const groups = accessor.get(IEditorGroupsService);
545
+ const breadcrumbs = accessor.get(IBreadcrumbsService);
546
+ const widget = breadcrumbs.getWidget(groups.activeGroup.id);
547
+ if (widget) {
548
+ const item = tail(widget.getItems());
549
+ widget.setFocused(item);
550
+ if (select) {
551
+ widget.setSelection(item, BreadcrumbsControl.Payload_Pick);
552
+ }
553
+ }
554
+ }
555
+ registerAction2(class FocusAndSelectBreadcrumbs extends Action2 {
556
+ constructor() {
557
+ super({
558
+ id: 'breadcrumbs.focusAndSelect',
559
+ title: {
560
+ value: ( localizeWithPath(
561
+ 'vs/workbench/browser/parts/editor/breadcrumbsControl',
562
+ 'cmd.focusAndSelect',
563
+ "Focus and Select Breadcrumbs"
564
+ )),
565
+ original: 'Focus and Select Breadcrumbs'
566
+ },
567
+ precondition: BreadcrumbsControl.CK_BreadcrumbsVisible,
568
+ keybinding: {
569
+ weight: 200 ,
570
+ primary: 2048 | 1024 | 89 ,
571
+ when: BreadcrumbsControl.CK_BreadcrumbsPossible,
572
+ },
573
+ f1: true
574
+ });
575
+ }
576
+ run(accessor, ...args) {
577
+ focusAndSelectHandler(accessor, true);
578
+ }
579
+ });
580
+ registerAction2(class FocusBreadcrumbs extends Action2 {
581
+ constructor() {
582
+ super({
583
+ id: 'breadcrumbs.focus',
584
+ title: {
585
+ value: ( localizeWithPath(
586
+ 'vs/workbench/browser/parts/editor/breadcrumbsControl',
587
+ 'cmd.focus',
588
+ "Focus Breadcrumbs"
589
+ )),
590
+ original: 'Focus Breadcrumbs'
591
+ },
592
+ precondition: BreadcrumbsControl.CK_BreadcrumbsVisible,
593
+ keybinding: {
594
+ weight: 200 ,
595
+ primary: 2048 | 1024 | 85 ,
596
+ when: BreadcrumbsControl.CK_BreadcrumbsPossible,
597
+ },
598
+ f1: true
599
+ });
600
+ }
601
+ run(accessor, ...args) {
602
+ focusAndSelectHandler(accessor, false);
603
+ }
604
+ });
605
+ KeybindingsRegistry.registerCommandAndKeybindingRule({
606
+ id: 'breadcrumbs.toggleToOn',
607
+ weight: 200 ,
608
+ primary: 2048 | 1024 | 89 ,
609
+ when: ContextKeyExpr.not('config.breadcrumbs.enabled'),
610
+ handler: async (accessor) => {
611
+ const instant = accessor.get(IInstantiationService);
612
+ const config = accessor.get(IConfigurationService);
613
+ const isEnabled = BreadcrumbsConfig.IsEnabled.bindTo(config);
614
+ if (!isEnabled.getValue()) {
615
+ await isEnabled.updateValue(true);
616
+ await timeout(50);
617
+ }
618
+ return instant.invokeFunction(focusAndSelectHandler, true);
619
+ }
620
+ });
621
+ KeybindingsRegistry.registerCommandAndKeybindingRule({
622
+ id: 'breadcrumbs.focusNext',
623
+ weight: 200 ,
624
+ primary: 17 ,
625
+ secondary: [2048 | 17 ],
626
+ mac: {
627
+ primary: 17 ,
628
+ secondary: [512 | 17 ],
629
+ },
630
+ when: ( ContextKeyExpr.and(
631
+ BreadcrumbsControl.CK_BreadcrumbsVisible,
632
+ BreadcrumbsControl.CK_BreadcrumbsActive
633
+ )),
634
+ handler(accessor) {
635
+ const groups = accessor.get(IEditorGroupsService);
636
+ const breadcrumbs = accessor.get(IBreadcrumbsService);
637
+ const widget = breadcrumbs.getWidget(groups.activeGroup.id);
638
+ if (!widget) {
639
+ return;
640
+ }
641
+ widget.focusNext();
642
+ }
643
+ });
644
+ KeybindingsRegistry.registerCommandAndKeybindingRule({
645
+ id: 'breadcrumbs.focusPrevious',
646
+ weight: 200 ,
647
+ primary: 15 ,
648
+ secondary: [2048 | 15 ],
649
+ mac: {
650
+ primary: 15 ,
651
+ secondary: [512 | 15 ],
652
+ },
653
+ when: ( ContextKeyExpr.and(
654
+ BreadcrumbsControl.CK_BreadcrumbsVisible,
655
+ BreadcrumbsControl.CK_BreadcrumbsActive
656
+ )),
657
+ handler(accessor) {
658
+ const groups = accessor.get(IEditorGroupsService);
659
+ const breadcrumbs = accessor.get(IBreadcrumbsService);
660
+ const widget = breadcrumbs.getWidget(groups.activeGroup.id);
661
+ if (!widget) {
662
+ return;
663
+ }
664
+ widget.focusPrev();
665
+ }
666
+ });
667
+ KeybindingsRegistry.registerCommandAndKeybindingRule({
668
+ id: 'breadcrumbs.focusNextWithPicker',
669
+ weight: 200 + 1,
670
+ primary: 2048 | 17 ,
671
+ mac: {
672
+ primary: 512 | 17 ,
673
+ },
674
+ when: ( ContextKeyExpr.and(
675
+ BreadcrumbsControl.CK_BreadcrumbsVisible,
676
+ BreadcrumbsControl.CK_BreadcrumbsActive,
677
+ WorkbenchListFocusContextKey
678
+ )),
679
+ handler(accessor) {
680
+ const groups = accessor.get(IEditorGroupsService);
681
+ const breadcrumbs = accessor.get(IBreadcrumbsService);
682
+ const widget = breadcrumbs.getWidget(groups.activeGroup.id);
683
+ if (!widget) {
684
+ return;
685
+ }
686
+ widget.focusNext();
687
+ }
688
+ });
689
+ KeybindingsRegistry.registerCommandAndKeybindingRule({
690
+ id: 'breadcrumbs.focusPreviousWithPicker',
691
+ weight: 200 + 1,
692
+ primary: 2048 | 15 ,
693
+ mac: {
694
+ primary: 512 | 15 ,
695
+ },
696
+ when: ( ContextKeyExpr.and(
697
+ BreadcrumbsControl.CK_BreadcrumbsVisible,
698
+ BreadcrumbsControl.CK_BreadcrumbsActive,
699
+ WorkbenchListFocusContextKey
700
+ )),
701
+ handler(accessor) {
702
+ const groups = accessor.get(IEditorGroupsService);
703
+ const breadcrumbs = accessor.get(IBreadcrumbsService);
704
+ const widget = breadcrumbs.getWidget(groups.activeGroup.id);
705
+ if (!widget) {
706
+ return;
707
+ }
708
+ widget.focusPrev();
709
+ }
710
+ });
711
+ KeybindingsRegistry.registerCommandAndKeybindingRule({
712
+ id: 'breadcrumbs.selectFocused',
713
+ weight: 200 ,
714
+ primary: 3 ,
715
+ secondary: [18 ],
716
+ when: ( ContextKeyExpr.and(
717
+ BreadcrumbsControl.CK_BreadcrumbsVisible,
718
+ BreadcrumbsControl.CK_BreadcrumbsActive
719
+ )),
720
+ handler(accessor) {
721
+ const groups = accessor.get(IEditorGroupsService);
722
+ const breadcrumbs = accessor.get(IBreadcrumbsService);
723
+ const widget = breadcrumbs.getWidget(groups.activeGroup.id);
724
+ if (!widget) {
725
+ return;
726
+ }
727
+ widget.setSelection(widget.getFocused(), BreadcrumbsControl.Payload_Pick);
728
+ }
729
+ });
730
+ KeybindingsRegistry.registerCommandAndKeybindingRule({
731
+ id: 'breadcrumbs.revealFocused',
732
+ weight: 200 ,
733
+ primary: 10 ,
734
+ secondary: [2048 | 3 ],
735
+ when: ( ContextKeyExpr.and(
736
+ BreadcrumbsControl.CK_BreadcrumbsVisible,
737
+ BreadcrumbsControl.CK_BreadcrumbsActive
738
+ )),
739
+ handler(accessor) {
740
+ const groups = accessor.get(IEditorGroupsService);
741
+ const breadcrumbs = accessor.get(IBreadcrumbsService);
742
+ const widget = breadcrumbs.getWidget(groups.activeGroup.id);
743
+ if (!widget) {
744
+ return;
745
+ }
746
+ widget.setSelection(widget.getFocused(), BreadcrumbsControl.Payload_Reveal);
747
+ }
748
+ });
749
+ KeybindingsRegistry.registerCommandAndKeybindingRule({
750
+ id: 'breadcrumbs.selectEditor',
751
+ weight: 200 + 1,
752
+ primary: 9 ,
753
+ when: ( ContextKeyExpr.and(
754
+ BreadcrumbsControl.CK_BreadcrumbsVisible,
755
+ BreadcrumbsControl.CK_BreadcrumbsActive
756
+ )),
757
+ handler(accessor) {
758
+ const groups = accessor.get(IEditorGroupsService);
759
+ const breadcrumbs = accessor.get(IBreadcrumbsService);
760
+ const widget = breadcrumbs.getWidget(groups.activeGroup.id);
761
+ if (!widget) {
762
+ return;
763
+ }
764
+ widget.setFocused(undefined);
765
+ widget.setSelection(undefined);
766
+ groups.activeGroup.activeEditorPane?.focus();
767
+ }
768
+ });
769
+ KeybindingsRegistry.registerCommandAndKeybindingRule({
770
+ id: 'breadcrumbs.revealFocusedFromTreeAside',
771
+ weight: 200 ,
772
+ primary: 2048 | 3 ,
773
+ when: ( ContextKeyExpr.and(
774
+ BreadcrumbsControl.CK_BreadcrumbsVisible,
775
+ BreadcrumbsControl.CK_BreadcrumbsActive,
776
+ WorkbenchListFocusContextKey
777
+ )),
778
+ handler(accessor) {
779
+ const editors = accessor.get(IEditorService);
780
+ const lists = accessor.get(IListService);
781
+ const tree = lists.lastFocusedList;
782
+ if (!(tree instanceof WorkbenchDataTree) && !(tree instanceof WorkbenchAsyncDataTree)) {
783
+ return;
784
+ }
785
+ const element = tree.getFocus()[0];
786
+ if (URI.isUri(element?.resource)) {
787
+ return editors.openEditor({
788
+ resource: element.resource,
789
+ options: { pinned: true }
790
+ }, SIDE_GROUP);
791
+ }
792
+ const input = tree.getInput();
793
+ if (input && typeof input.outlineKind === 'string') {
794
+ return input.reveal(element, {
795
+ pinned: true,
796
+ preserveFocus: false
797
+ }, true);
798
+ }
799
+ }
800
+ });
801
+ export { BreadcrumbsControl, BreadcrumbsControlFactory };