@codingame/monaco-vscode-api 6.0.3 → 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (447) hide show
  1. package/README.md +93 -73
  2. package/api.js +1 -1
  3. package/debugProtocol.d.ts +10 -1
  4. package/extensions.d.ts +2 -0
  5. package/missing-services.js +21 -2
  6. package/package.json +9 -9
  7. package/service-override/extensions.d.ts +1 -2
  8. package/services.js +4 -2
  9. package/vscode/src/vs/base/browser/dnd.js +1 -1
  10. package/vscode/src/vs/base/browser/dom.js +116 -5
  11. package/vscode/src/vs/base/browser/domObservable.js +16 -0
  12. package/vscode/src/vs/base/browser/markdownRenderer.js +5 -3
  13. package/vscode/src/vs/base/browser/trustedTypes.js +1 -2
  14. package/vscode/src/vs/base/browser/ui/actionbar/actionViewItems.js +1 -1
  15. package/vscode/src/vs/base/browser/ui/actionbar/actionbar.js +1 -1
  16. package/vscode/src/vs/base/browser/ui/button/button.js +2 -2
  17. package/vscode/src/vs/base/browser/ui/contextview/contextview.js +1 -4
  18. package/vscode/src/vs/base/browser/ui/dropdown/dropdown.js +1 -1
  19. package/vscode/src/vs/base/browser/ui/dropdown/dropdownActionViewItem.js +1 -1
  20. package/vscode/src/vs/base/browser/ui/highlightedlabel/highlightedLabel.js +1 -1
  21. package/vscode/src/vs/base/browser/ui/hover/hover.d.ts +32 -16
  22. package/vscode/src/vs/base/browser/ui/hover/hoverDelegate.d.ts +2 -2
  23. package/vscode/src/vs/base/browser/ui/hover/hoverDelegate2.js +2 -2
  24. package/vscode/src/vs/base/browser/ui/hover/hoverWidget.css.js +1 -1
  25. package/vscode/src/vs/base/browser/ui/hover/hoverWidget.js +2 -0
  26. package/vscode/src/vs/base/browser/ui/iconLabel/iconLabel.js +1 -1
  27. package/vscode/src/vs/base/browser/ui/iconLabel/simpleIconLabel.js +1 -1
  28. package/vscode/src/vs/base/browser/ui/inputbox/inputBox.js +1 -1
  29. package/vscode/src/vs/base/browser/ui/keybindingLabel/keybindingLabel.js +1 -1
  30. package/vscode/src/vs/base/browser/ui/list/listView.js +3 -5
  31. package/vscode/src/vs/base/browser/ui/list/rowCache.js +1 -8
  32. package/vscode/src/vs/base/browser/ui/sash/sash.js +1 -1
  33. package/vscode/src/vs/base/browser/ui/selectBox/selectBoxCustom.js +7 -11
  34. package/vscode/src/vs/base/browser/ui/splitview/paneview.js +1 -1
  35. package/vscode/src/vs/base/browser/ui/splitview/splitview.js +1 -1
  36. package/vscode/src/vs/base/browser/ui/table/tableWidget.js +1 -1
  37. package/vscode/src/vs/base/browser/ui/toggle/toggle.js +1 -1
  38. package/vscode/src/vs/base/browser/ui/toolbar/toolbar.d.ts +8 -1
  39. package/vscode/src/vs/base/browser/ui/toolbar/toolbar.js +2 -3
  40. package/vscode/src/vs/base/browser/ui/tree/abstractTree.js +1 -1
  41. package/vscode/src/vs/base/browser/ui/tree/asyncDataTree.js +0 -3
  42. package/vscode/src/vs/base/common/assert.js +1 -1
  43. package/vscode/src/vs/base/common/collections.js +49 -1
  44. package/vscode/src/vs/base/common/equals.js +55 -5
  45. package/vscode/src/vs/base/common/errors.js +14 -1
  46. package/vscode/src/vs/base/common/event.js +2 -1
  47. package/vscode/src/vs/base/common/history.js +7 -4
  48. package/vscode/src/vs/base/common/iterator.js +9 -1
  49. package/vscode/src/vs/base/common/map.d.ts +41 -0
  50. package/vscode/src/vs/base/common/numbers.js +18 -1
  51. package/vscode/src/vs/base/common/observableInternal/api.js +11 -0
  52. package/vscode/src/vs/base/common/observableInternal/autorun.js +18 -1
  53. package/vscode/src/vs/base/common/observableInternal/base.d.ts +8 -1
  54. package/vscode/src/vs/base/common/observableInternal/base.js +2 -5
  55. package/vscode/src/vs/base/common/observableInternal/derived.js +13 -3
  56. package/vscode/src/vs/base/common/observableInternal/lazyObservableValue.js +109 -0
  57. package/vscode/src/vs/base/common/observableInternal/promise.js +3 -0
  58. package/vscode/src/vs/base/common/observableInternal/utils.d.ts +7 -0
  59. package/vscode/src/vs/base/common/observableInternal/utils.js +64 -12
  60. package/vscode/src/vs/base/common/prefixTree.d.ts +52 -0
  61. package/vscode/src/vs/base/common/product.d.ts +1 -0
  62. package/vscode/src/vs/base/parts/ipc/common/ipc.js +1 -1
  63. package/vscode/src/vs/editor/browser/config/charWidthReader.js +1 -1
  64. package/vscode/src/vs/editor/browser/controller/textAreaHandler.js +1 -1
  65. package/vscode/src/vs/editor/browser/coreCommands.js +2 -1
  66. package/vscode/src/vs/editor/browser/observableCodeEditor.js +230 -0
  67. package/vscode/src/vs/editor/browser/services/abstractCodeEditorService.js +1 -1
  68. package/vscode/src/vs/editor/browser/services/hoverService/hoverService.js +26 -26
  69. package/vscode/src/vs/editor/browser/services/hoverService/updatableHoverWidget.js +2 -2
  70. package/vscode/src/vs/editor/browser/view/domLineBreaksComputer.js +1 -1
  71. package/vscode/src/vs/editor/browser/view/viewLayer.js +4 -12
  72. package/vscode/src/vs/editor/browser/viewParts/contentWidgets/contentWidgets.js +1 -1
  73. package/vscode/src/vs/editor/browser/viewParts/glyphMargin/glyphMargin.js +1 -1
  74. package/vscode/src/vs/editor/browser/viewParts/viewZones/viewZones.js +2 -2
  75. package/vscode/src/vs/editor/browser/widget/codeEditor/codeEditorWidget.js +15 -4
  76. package/vscode/src/vs/editor/browser/widget/diffEditor/components/diffEditorEditors.js +8 -8
  77. package/vscode/src/vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/diffEditorViewZones.js +4 -4
  78. package/vscode/src/vs/editor/browser/widget/diffEditor/diffEditorOptions.js +1 -1
  79. package/vscode/src/vs/editor/browser/widget/diffEditor/diffEditorViewModel.js +1 -1
  80. package/vscode/src/vs/editor/browser/widget/diffEditor/diffEditorWidget.js +14 -2
  81. package/vscode/src/vs/editor/browser/widget/diffEditor/features/gutterFeature.js +1 -1
  82. package/vscode/src/vs/editor/browser/widget/diffEditor/features/movedBlocksLinesFeature.js +2 -2
  83. package/vscode/src/vs/editor/browser/widget/diffEditor/registrations.contribution.js +2 -2
  84. package/vscode/src/vs/editor/browser/widget/diffEditor/utils/editorGutter.js +3 -3
  85. package/vscode/src/vs/editor/browser/widget/diffEditor/utils.js +2 -2
  86. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/colors.js +1 -1
  87. package/vscode/src/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorWidgetImpl.js +2 -2
  88. package/vscode/src/vs/editor/common/config/editorOptions.d.ts +5 -0
  89. package/vscode/src/vs/editor/common/config/editorOptions.js +83 -65
  90. package/vscode/src/vs/editor/common/core/editorColorRegistry.js +43 -43
  91. package/vscode/src/vs/editor/common/cursor/cursor.js +3 -2
  92. package/vscode/src/vs/editor/common/cursor/cursorTypeEditOperations.js +911 -0
  93. package/vscode/src/vs/editor/common/cursor/cursorTypeOperations.js +36 -799
  94. package/vscode/src/vs/editor/common/cursor/cursorWordOperations.js +6 -5
  95. package/vscode/src/vs/editor/common/languageFeatureRegistry.d.ts +1 -0
  96. package/vscode/src/vs/editor/common/languageFeatureRegistry.js +3 -0
  97. package/vscode/src/vs/editor/common/languages/autoIndent.js +23 -1
  98. package/vscode/src/vs/editor/common/languages.d.ts +20 -3
  99. package/vscode/src/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsImpl.js +6 -6
  100. package/vscode/src/vs/editor/common/model/pieceTreeTextBuffer/pieceTreeBase.js +19 -0
  101. package/vscode/src/vs/editor/common/model/pieceTreeTextBuffer/pieceTreeTextBuffer.js +3 -0
  102. package/vscode/src/vs/editor/common/model/textModel.js +6 -2
  103. package/vscode/src/vs/editor/common/model/tokenizationTextModelPart.js +5 -5
  104. package/vscode/src/vs/editor/common/model.d.ts +4 -0
  105. package/vscode/src/vs/editor/common/services/getIconClasses.js +1 -1
  106. package/vscode/src/vs/editor/common/services/semanticTokensProviderStyling.js +2 -15
  107. package/vscode/src/vs/editor/common/standalone/standaloneEnums.js +63 -62
  108. package/vscode/src/vs/editor/common/viewModel/viewModelImpl.js +11 -8
  109. package/vscode/src/vs/editor/contrib/bracketMatching/browser/bracketMatching.js +1 -1
  110. package/vscode/src/vs/editor/contrib/codeAction/browser/codeActionController.js +2 -17
  111. package/vscode/src/vs/editor/contrib/codeAction/browser/lightBulbWidget.css.js +1 -1
  112. package/vscode/src/vs/editor/contrib/codeAction/browser/lightBulbWidget.js +18 -5
  113. package/vscode/src/vs/editor/contrib/colorPicker/browser/colorHoverParticipant.js +55 -27
  114. package/vscode/src/vs/editor/contrib/colorPicker/browser/colorPickerWidget.js +7 -4
  115. package/vscode/src/vs/editor/contrib/colorPicker/browser/standaloneColorPickerWidget.js +9 -9
  116. package/vscode/src/vs/editor/contrib/contextmenu/browser/contextmenu.js +1 -1
  117. package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.js +103 -47
  118. package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/defaultProviders.js +8 -2
  119. package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorController.js +18 -10
  120. package/vscode/src/vs/editor/contrib/find/browser/findWidget.js +2 -4
  121. package/vscode/src/vs/editor/contrib/folding/browser/folding.css.js +1 -1
  122. package/vscode/src/vs/editor/contrib/folding/browser/folding.js +33 -13
  123. package/vscode/src/vs/editor/contrib/folding/browser/foldingDecorations.js +12 -7
  124. package/vscode/src/vs/editor/contrib/gotoError/browser/gotoErrorWidget.js +1 -1
  125. package/vscode/src/vs/editor/contrib/gotoSymbol/browser/peek/referencesWidget.js +2 -2
  126. package/vscode/src/vs/editor/contrib/hover/browser/contentHoverController.js +161 -185
  127. package/vscode/src/vs/editor/contrib/hover/browser/contentHoverRendered.js +321 -0
  128. package/vscode/src/vs/editor/contrib/hover/browser/contentHoverStatusBar.js +4 -1
  129. package/vscode/src/vs/editor/contrib/hover/browser/contentHoverTypes.js +6 -21
  130. package/vscode/src/vs/editor/contrib/hover/browser/contentHoverWidget.js +39 -40
  131. package/vscode/src/vs/editor/contrib/hover/browser/hoverAccessibleViews.js +55 -46
  132. package/vscode/src/vs/editor/contrib/hover/browser/hoverActions.js +12 -2
  133. package/vscode/src/vs/editor/contrib/hover/browser/hoverController.js +15 -9
  134. package/vscode/src/vs/editor/contrib/hover/browser/hoverTypes.js +11 -1
  135. package/vscode/src/vs/editor/contrib/hover/browser/markdownHoverParticipant.js +141 -93
  136. package/vscode/src/vs/editor/contrib/hover/browser/markerHoverParticipant.js +24 -7
  137. package/vscode/src/vs/editor/contrib/indentation/browser/indentation.js +36 -1
  138. package/vscode/src/vs/editor/contrib/inlayHints/browser/inlayHintsHover.js +5 -3
  139. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/ghostTextWidget.js +1 -1
  140. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/hoverParticipant.js +25 -12
  141. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsController.js +88 -118
  142. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsHintsWidget.js +1 -1
  143. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsModel.js +34 -33
  144. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsSource.js +2 -2
  145. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/provideInlineCompletions.js +11 -4
  146. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/suggestWidgetInlineCompletionProvider.js +10 -19
  147. package/vscode/src/vs/editor/contrib/inlineEdit/browser/ghostTextWidget.js +1 -1
  148. package/vscode/src/vs/editor/contrib/inlineEdit/browser/hoverParticipant.js +45 -27
  149. package/vscode/src/vs/editor/contrib/inlineEdit/browser/inlineEditController.js +4 -4
  150. package/vscode/src/vs/editor/contrib/inlineEdit/browser/inlineEditHintsWidget.js +1 -1
  151. package/vscode/src/vs/editor/contrib/inlineEdits/browser/commands.js +126 -0
  152. package/vscode/src/vs/editor/contrib/inlineEdits/browser/consts.js +9 -0
  153. package/vscode/src/vs/editor/contrib/inlineEdits/browser/inlineEdits.contribution.js +9 -0
  154. package/vscode/src/vs/editor/contrib/inlineEdits/browser/inlineEditsController.js +82 -0
  155. package/vscode/src/vs/editor/contrib/inlineEdits/browser/inlineEditsModel.js +240 -0
  156. package/vscode/src/vs/editor/contrib/inlineEdits/browser/inlineEditsWidget.css.js +4 -0
  157. package/vscode/src/vs/editor/contrib/inlineEdits/browser/inlineEditsWidget.js +322 -0
  158. package/vscode/src/vs/editor/contrib/inlineProgress/browser/inlineProgress.js +8 -4
  159. package/vscode/src/vs/editor/contrib/linesOperations/browser/linesOperations.js +3 -2
  160. package/vscode/src/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js +1 -1
  161. package/vscode/src/vs/editor/contrib/peekView/browser/peekView.js +2 -2
  162. package/vscode/src/vs/editor/contrib/placeholderText/browser/placeholderText.contribution.js +60 -0
  163. package/vscode/src/vs/editor/contrib/placeholderText/browser/placeholderText.css.js +4 -0
  164. package/vscode/src/vs/editor/contrib/rename/browser/renameWidget.js +1 -1
  165. package/vscode/src/vs/editor/contrib/stickyScroll/browser/stickyScroll.css.js +1 -1
  166. package/vscode/src/vs/editor/contrib/stickyScroll/browser/stickyScrollController.js +38 -20
  167. package/vscode/src/vs/editor/contrib/stickyScroll/browser/stickyScrollWidget.js +3 -0
  168. package/vscode/src/vs/editor/contrib/suggest/browser/suggestWidget.js +9 -9
  169. package/vscode/src/vs/editor/contrib/suggest/browser/suggestWidgetStatus.js +10 -32
  170. package/vscode/src/vs/editor/contrib/symbolIcons/browser/symbolIcons.js +23 -138
  171. package/vscode/src/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js +3 -0
  172. package/vscode/src/vs/editor/contrib/wordHighlighter/browser/highlightDecorations.js +5 -5
  173. package/vscode/src/vs/editor/contrib/wordOperations/browser/wordOperations.js +13 -12
  174. package/vscode/src/vs/editor/contrib/wordPartOperations/browser/wordPartOperations.js +3 -3
  175. package/vscode/src/vs/platform/accessibility/browser/accessibilityService.js +21 -0
  176. package/vscode/src/vs/platform/accessibilitySignal/browser/accessibilitySignalService.js +5 -6
  177. package/vscode/src/vs/platform/actionWidget/browser/actionWidget.js +1 -1
  178. package/vscode/src/vs/platform/actions/browser/buttonbar.js +27 -6
  179. package/vscode/src/vs/platform/actions/browser/floatingMenu.js +1 -1
  180. package/vscode/src/vs/platform/actions/browser/menuEntryActionViewItem.css.js +1 -1
  181. package/vscode/src/vs/platform/actions/browser/menuEntryActionViewItem.js +33 -3
  182. package/vscode/src/vs/platform/actions/browser/toolbar.js +2 -1
  183. package/vscode/src/vs/platform/actions/common/actions.d.ts +3 -0
  184. package/vscode/src/vs/platform/actions/common/actions.js +3 -0
  185. package/vscode/src/vs/platform/actions/common/menuService.js +3 -2
  186. package/vscode/src/vs/platform/clipboard/browser/clipboardService.js +1 -1
  187. package/vscode/src/vs/platform/configuration/common/configurationRegistry.d.ts +7 -5
  188. package/vscode/src/vs/platform/configuration/common/configurationRegistry.js +109 -13
  189. package/vscode/src/vs/platform/diagnostics/common/diagnostics.d.ts +2 -0
  190. package/vscode/src/vs/platform/extensionManagement/common/extensionManagement.d.ts +12 -6
  191. package/vscode/src/vs/platform/extensionManagement/common/extensionManagement.js +2 -0
  192. package/vscode/src/vs/platform/extensionManagement/common/extensionManagement.service.d.ts +3 -3
  193. package/vscode/src/vs/platform/extensionManagement/common/extensionsScannerService.js +20 -10
  194. package/vscode/src/vs/platform/extensions/common/extensionValidator.js +46 -8
  195. package/vscode/src/vs/platform/extensions/common/extensions.d.ts +1 -1
  196. package/vscode/src/vs/platform/extensions/common/extensions.js +12 -3
  197. package/vscode/src/vs/platform/extensions/common/extensionsApiProposals.js +368 -0
  198. package/vscode/src/vs/platform/files/common/watcher.js +21 -24
  199. package/vscode/src/vs/platform/list/browser/listService.js +2 -1
  200. package/vscode/src/vs/platform/observable/common/platformObservableUtils.js +2 -2
  201. package/vscode/src/vs/platform/opener/browser/link.js +1 -1
  202. package/vscode/src/vs/platform/product/common/product.js +1 -1
  203. package/vscode/src/vs/platform/quickinput/browser/quickInputTree.js +1 -1
  204. package/vscode/src/vs/platform/remote/common/remoteExtensionsScanner.service.d.ts +0 -2
  205. package/vscode/src/vs/platform/request/common/request.js +18 -8
  206. package/vscode/src/vs/platform/terminal/common/capabilities/capabilities.d.ts +2 -6
  207. package/vscode/src/vs/platform/terminal/common/capabilities/commandDetection/promptInputModel.d.ts +8 -1
  208. package/vscode/src/vs/platform/theme/common/colorUtils.d.ts +1 -1
  209. package/vscode/src/vs/platform/theme/common/colorUtils.js +25 -5
  210. package/vscode/src/vs/platform/theme/common/colors/baseColors.js +1 -1
  211. package/vscode/src/vs/platform/theme/common/colors/chartsColors.js +6 -6
  212. package/vscode/src/vs/platform/theme/common/colors/editorColors.js +35 -35
  213. package/vscode/src/vs/platform/theme/common/colors/inputColors.js +9 -9
  214. package/vscode/src/vs/platform/theme/common/colors/listColors.js +11 -11
  215. package/vscode/src/vs/platform/theme/common/colors/menuColors.js +4 -4
  216. package/vscode/src/vs/platform/theme/common/colors/minimapColors.js +5 -5
  217. package/vscode/src/vs/platform/theme/common/colors/miscColors.js +1 -1
  218. package/vscode/src/vs/platform/theme/common/colors/quickpickColors.js +5 -5
  219. package/vscode/src/vs/platform/tunnel/common/tunnel.js +4 -1
  220. package/vscode/src/vs/platform/userDataProfile/common/userDataProfile.js +75 -19
  221. package/vscode/src/vs/platform/window/common/window.d.ts +2 -2
  222. package/vscode/src/vs/workbench/api/common/extHost.api.impl.js +32 -25
  223. package/vscode/src/vs/workbench/api/common/extHost.common.services.js +2 -0
  224. package/vscode/src/vs/workbench/api/common/extHost.protocol.js +2 -0
  225. package/vscode/src/vs/workbench/api/common/extHostAuthentication.js +5 -11
  226. package/vscode/src/vs/workbench/api/common/extHostChatAgents2.js +5 -15
  227. package/vscode/src/vs/workbench/api/common/extHostChatVariables.js +2 -5
  228. package/vscode/src/vs/workbench/api/common/extHostComments.js +9 -3
  229. package/vscode/src/vs/workbench/api/common/extHostDebugService.js +32 -22
  230. package/vscode/src/vs/workbench/api/common/extHostExtensionService.js +3 -3
  231. package/vscode/src/vs/workbench/api/common/extHostLanguageFeatures.js +109 -40
  232. package/vscode/src/vs/workbench/api/common/extHostLanguageModelTools.js +46 -0
  233. package/vscode/src/vs/workbench/api/common/extHostLanguageModels.js +84 -35
  234. package/vscode/src/vs/workbench/api/common/extHostNotebook.js +2 -2
  235. package/vscode/src/vs/workbench/api/common/extHostSCM.js +50 -41
  236. package/vscode/src/vs/workbench/api/common/extHostSearch.js +2 -2
  237. package/vscode/src/vs/workbench/api/common/extHostSecrets.js +11 -8
  238. package/vscode/src/vs/workbench/api/common/extHostTerminalService.js +7 -6
  239. package/vscode/src/vs/workbench/api/common/extHostTesting.js +63 -70
  240. package/vscode/src/vs/workbench/api/common/extHostTextEditors.js +5 -3
  241. package/vscode/src/vs/workbench/api/common/extHostTypeConverters.js +75 -16
  242. package/vscode/src/vs/workbench/api/common/extHostTypes.js +29 -4
  243. package/vscode/src/vs/workbench/api/common/extHostWorkspace.js +1 -1
  244. package/vscode/src/vs/workbench/browser/actions/developerActions.js +1 -1
  245. package/vscode/src/vs/workbench/browser/parts/editor/editorActions.js +127 -107
  246. package/vscode/src/vs/workbench/browser/parts/editor/editorCommands.js +2 -2
  247. package/vscode/src/vs/workbench/browser/parts/editor/editorPanes.js +1 -1
  248. package/vscode/src/vs/workbench/browser/parts/editor/editorStatus.js +33 -21
  249. package/vscode/src/vs/workbench/browser/parts/editor/sideBySideEditor.js +1 -1
  250. package/vscode/src/vs/workbench/browser/parts/globalCompositeBar.js +5 -5
  251. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsToasts.js +1 -1
  252. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsViewer.js +2 -2
  253. package/vscode/src/vs/workbench/browser/parts/views/checkbox.js +2 -2
  254. package/vscode/src/vs/workbench/browser/parts/views/treeView.js +23 -6
  255. package/vscode/src/vs/workbench/browser/parts/views/viewFilter.js +3 -1
  256. package/vscode/src/vs/workbench/browser/parts/views/viewPane.js +3 -3
  257. package/vscode/src/vs/workbench/browser/parts/views/viewPaneContainer.js +1 -1
  258. package/vscode/src/vs/workbench/browser/web.api.js +8 -0
  259. package/vscode/src/vs/workbench/browser/workbench.contribution.js +199 -194
  260. package/vscode/src/vs/workbench/common/configuration.js +1 -1
  261. package/vscode/src/vs/workbench/common/contributions.js +8 -1
  262. package/vscode/src/vs/workbench/common/editor.js +5 -1
  263. package/vscode/src/vs/workbench/common/theme.js +79 -454
  264. package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibilityConfiguration.js +221 -239
  265. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatActions.js +17 -15
  266. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.js +1 -0
  267. package/vscode/src/vs/workbench/contrib/chat/browser/chatAgentHover.js +4 -0
  268. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatCollections.js +27 -0
  269. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatCommandContentPart.js +35 -0
  270. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatConfirmationContentPart.js +51 -0
  271. package/vscode/src/vs/workbench/contrib/chat/browser/{chatConfirmationWidget.js → chatContentParts/chatConfirmationWidget.js} +9 -9
  272. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatMarkdownContentPart.js +131 -0
  273. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatProgressContentPart.js +37 -0
  274. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatReferencesContentPart.js +263 -0
  275. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatTaskContentPart.js +37 -0
  276. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatTextEditContentPart.js +160 -0
  277. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatTreeContentPart.js +171 -0
  278. package/vscode/src/vs/workbench/contrib/chat/browser/chatContentParts/chatWarningContentPart.js +34 -0
  279. package/vscode/src/vs/workbench/contrib/chat/browser/{media → chatContentParts/media}/chatConfirmationWidget.css.js +1 -1
  280. package/vscode/src/vs/workbench/contrib/chat/browser/chatInputPart.js +91 -44
  281. package/vscode/src/vs/workbench/contrib/chat/browser/chatListRenderer.js +292 -1019
  282. package/vscode/src/vs/workbench/contrib/chat/browser/chatMarkdownDecorationsRenderer.js +2 -2
  283. package/vscode/src/vs/workbench/contrib/chat/browser/chatMarkdownRenderer.js +1 -1
  284. package/vscode/src/vs/workbench/contrib/chat/browser/chatWidget.js +22 -7
  285. package/vscode/src/vs/workbench/contrib/chat/browser/codeBlockPart.css.js +1 -1
  286. package/vscode/src/vs/workbench/contrib/chat/browser/codeBlockPart.js +61 -54
  287. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatDynamicVariables.js +23 -16
  288. package/vscode/src/vs/workbench/contrib/chat/browser/media/chat.css.js +1 -1
  289. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatAgentHover.css.js +1 -1
  290. package/vscode/src/vs/workbench/contrib/chat/common/chatAgents.js +8 -0
  291. package/vscode/src/vs/workbench/contrib/chat/common/chatColors.js +1 -1
  292. package/vscode/src/vs/workbench/contrib/chat/common/chatModel.js +3 -3
  293. package/vscode/src/vs/workbench/contrib/chat/common/chatWordCounter.js +5 -4
  294. package/vscode/src/vs/workbench/contrib/chat/common/codeBlockModelCollection.js +16 -0
  295. package/vscode/src/vs/workbench/contrib/chat/common/languageModelToolsService.service.js +3 -0
  296. package/vscode/src/vs/workbench/contrib/chat/common/languageModels.js +2 -2
  297. package/vscode/src/vs/workbench/contrib/codeActions/browser/codeActionsContribution.js +43 -16
  298. package/vscode/src/vs/workbench/contrib/codeEditor/browser/diffEditorHelper.js +1 -1
  299. package/vscode/src/vs/workbench/contrib/codeEditor/browser/find/simpleFindWidget.js +1 -3
  300. package/vscode/src/vs/workbench/contrib/codeEditor/browser/suggestEnabledInput/suggestEnabledInput.js +1 -1
  301. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleMultiCursorModifier.js +7 -5
  302. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleWordWrap.js +7 -7
  303. package/vscode/src/vs/workbench/contrib/comments/browser/commentColors.js +3 -3
  304. package/vscode/src/vs/workbench/contrib/comments/browser/commentGlyphWidget.js +3 -3
  305. package/vscode/src/vs/workbench/contrib/comments/browser/commentReply.js +2 -2
  306. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadBody.js +1 -1
  307. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadHeader.js +2 -1
  308. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadWidget.js +2 -1
  309. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadZoneWidget.js +1 -1
  310. package/vscode/src/vs/workbench/contrib/comments/browser/commentsController.js +8 -5
  311. package/vscode/src/vs/workbench/contrib/comments/browser/commentsTreeViewer.js +1 -1
  312. package/vscode/src/vs/workbench/contrib/comments/browser/media/panel.css.js +1 -1
  313. package/vscode/src/vs/workbench/contrib/comments/browser/media/review.css.js +1 -1
  314. package/vscode/src/vs/workbench/contrib/comments/browser/timestamp.js +1 -1
  315. package/vscode/src/vs/workbench/contrib/contextmenu/browser/contextmenu.contribution.js +5 -5
  316. package/vscode/src/vs/workbench/contrib/debug/browser/baseDebugView.js +14 -7
  317. package/vscode/src/vs/workbench/contrib/debug/browser/breakpointEditorContribution.js +4 -4
  318. package/vscode/src/vs/workbench/contrib/debug/browser/breakpointWidget.js +8 -7
  319. package/vscode/src/vs/workbench/contrib/debug/browser/breakpointsView.js +19 -16
  320. package/vscode/src/vs/workbench/contrib/debug/browser/debugColors.js +13 -12
  321. package/vscode/src/vs/workbench/contrib/debug/common/debug.d.ts +19 -2
  322. package/vscode/src/vs/workbench/contrib/debug/common/debug.js +9 -4
  323. package/vscode/src/vs/workbench/contrib/debug/common/debugModel.js +10 -5
  324. package/vscode/src/vs/workbench/contrib/debug/common/replModel.js +4 -4
  325. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsActions.js +235 -173
  326. package/vscode/src/vs/workbench/contrib/extensions/browser/media/extensionActions.css.js +1 -1
  327. package/vscode/src/vs/workbench/contrib/extensions/common/extensions.js +2 -1
  328. package/vscode/src/vs/workbench/contrib/files/browser/fileActions.js +17 -5
  329. package/vscode/src/vs/workbench/contrib/files/browser/files.contribution._configuration.js +62 -44
  330. package/vscode/src/vs/workbench/contrib/files/browser/files.contribution._editorPane.js +2 -2
  331. package/vscode/src/vs/workbench/contrib/files/browser/views/openEditorsView.js +2 -2
  332. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +114 -107
  333. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatContentWidget.js +33 -25
  334. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.js +71 -101
  335. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSession.js +38 -43
  336. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +11 -33
  337. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatStrategies.js +3 -4
  338. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.js +49 -86
  339. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatZoneWidget.js +60 -71
  340. package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChat.css.js +1 -1
  341. package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChatContentWidget.css.js +1 -1
  342. package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +116 -113
  343. package/vscode/src/vs/workbench/contrib/markdown/browser/markdownDocumentRenderer.js +6 -10
  344. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditorInputModel.js +2 -2
  345. package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/multiDiffEditorInput.js +1 -0
  346. package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/scmMultiDiffSourceResolver.js +2 -2
  347. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/findFilters.js +12 -23
  348. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/findMatchDecorationModel.js +0 -2
  349. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/findModel.js +7 -9
  350. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindReplaceWidget.js +88 -61
  351. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindWidget.js +1 -3
  352. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/cellOutputActions.js +39 -3
  353. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.js +2 -1
  354. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatController.js +12 -11
  355. package/vscode/src/vs/workbench/contrib/notebook/browser/media/notebookCellChat.css.js +1 -1
  356. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookAccessibilityProvider.js +1 -1
  357. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookBrowser.js +3 -2
  358. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookEditorWidget.js +40 -105
  359. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookIcons.js +27 -26
  360. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookOptions.js +14 -5
  361. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellActionView.js +1 -1
  362. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellComments.js +43 -46
  363. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellDnd.js +1 -1
  364. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellOutput.js +4 -4
  365. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellStatusPart.js +12 -9
  366. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellToolbars.js +19 -14
  367. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/codeCell.js +2 -2
  368. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/codeCellRunToolbar.js +9 -6
  369. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/markupCell.js +1 -1
  370. package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/backLayerWebView.js +5 -3
  371. package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/cellRenderer.js +3 -3
  372. package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/webviewPreloads.js +1 -1
  373. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/baseCellViewModel.js +16 -6
  374. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/codeCellViewModel.js +8 -8
  375. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/notebookOutlineDataSourceFactory.service.js +3 -0
  376. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/notebookViewModelImpl.js +11 -12
  377. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookEditorStickyScroll.js +12 -13
  378. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookEditorToolbar.js +1 -1
  379. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookTopCellToolbar.js +5 -3
  380. package/vscode/src/vs/workbench/contrib/notebook/common/notebookCommon.js +9 -2
  381. package/vscode/src/vs/workbench/contrib/notebook/common/notebookEditorInput.js +37 -36
  382. package/vscode/src/vs/workbench/contrib/notebook/common/notebookEditorModel.js +18 -8
  383. package/vscode/src/vs/workbench/contrib/preferences/browser/preferencesWidgets.js +1 -1
  384. package/vscode/src/vs/workbench/contrib/preferences/browser/settingsTreeModels.js +14 -5
  385. package/vscode/src/vs/workbench/contrib/preferences/common/settingsEditorColorRegistry.js +17 -22
  386. package/vscode/src/vs/workbench/contrib/remote/browser/media/tunnelView.css.js +1 -1
  387. package/vscode/src/vs/workbench/contrib/remote/browser/tunnelView.js +7 -10
  388. package/vscode/src/vs/workbench/contrib/scm/browser/dirtydiffDecorator.js +7 -27
  389. package/vscode/src/vs/workbench/contrib/search/browser/anythingQuickAccess.js +3 -4
  390. package/vscode/src/vs/workbench/contrib/search/browser/notebookSearch/notebookSearchService.js +2 -2
  391. package/vscode/src/vs/workbench/contrib/search/browser/searchActionsFind.js +4 -0
  392. package/vscode/src/vs/workbench/contrib/search/browser/searchModel.js +3 -3
  393. package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/xtermTerminal.d.ts +3 -0
  394. package/vscode/src/vs/workbench/contrib/terminal/common/terminal.d.ts +0 -1
  395. package/vscode/src/vs/workbench/contrib/terminal/common/terminalColorRegistry.js +13 -37
  396. package/vscode/src/vs/workbench/contrib/testing/common/testCoverage.d.ts +88 -0
  397. package/vscode/src/vs/workbench/contrib/testing/common/testCoverage.js +48 -31
  398. package/vscode/src/vs/workbench/contrib/testing/common/testId.d.ts +115 -0
  399. package/vscode/src/vs/workbench/contrib/testing/common/testResult.d.ts +226 -0
  400. package/vscode/src/vs/workbench/contrib/testing/common/testTypes.d.ts +319 -0
  401. package/vscode/src/vs/workbench/contrib/testing/common/testTypes.js +2 -3
  402. package/vscode/src/vs/workbench/contrib/testing/common/testingStates.d.ts +10 -0
  403. package/vscode/src/vs/workbench/contrib/webview/browser/webviewWindowDragMonitor.js +21 -2
  404. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewIconManager.js +7 -8
  405. package/vscode/src/vs/workbench/services/authentication/browser/authenticationService.js +3 -3
  406. package/vscode/src/vs/workbench/services/authentication/common/authentication.d.ts +10 -5
  407. package/vscode/src/vs/workbench/services/editor/common/customEditorLabelService.js +54 -21
  408. package/vscode/src/vs/workbench/services/extensionManagement/common/extensionManagement.service.d.ts +1 -0
  409. package/vscode/src/vs/workbench/services/extensions/browser/extensionService.d.ts +1 -2
  410. package/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.d.ts +2 -4
  411. package/vscode/src/vs/workbench/services/extensions/common/extensions.js +5 -3
  412. package/vscode/src/vs/workbench/services/extensions/common/extensions.service.d.ts +3 -1
  413. package/vscode/src/vs/workbench/services/extensions/common/extensionsRegistry.js +59 -41
  414. package/vscode/src/vs/workbench/services/extensions/common/rpcProtocol.js +1 -1
  415. package/vscode/src/vs/workbench/services/filesConfiguration/common/filesConfigurationService.js +3 -2
  416. package/vscode/src/vs/workbench/services/host/browser/host.service.d.ts +1 -0
  417. package/vscode/src/vs/workbench/services/language/common/languageService.js +7 -0
  418. package/vscode/src/vs/workbench/services/layout/browser/layoutService.js +1 -1
  419. package/vscode/src/vs/workbench/services/preferences/common/preferences.d.ts +2 -2
  420. package/vscode/src/vs/workbench/services/search/common/search.js +2 -1
  421. package/vscode/src/vs/workbench/services/search/common/textSearchManager.js +2 -2
  422. package/vscode/src/vs/workbench/services/statusbar/browser/statusbar.d.ts +2 -2
  423. package/vscode/src/vs/workbench/services/textfile/common/encoding.js +69 -26
  424. package/vscode/src/vs/workbench/services/textfile/common/textFileEditorModel.js +23 -4
  425. package/vscode/src/vs/workbench/services/textfile/common/textfiles.d.ts +5 -1
  426. package/vscode/src/vs/workbench/services/userDataProfile/common/userDataProfileIcons.js +1 -1
  427. package/vscode/src/vs/workbench/services/views/browser/viewsService.js +12 -5
  428. package/vscode/src/vs/workbench/services/workingCopy/common/storedFileWorkingCopy.js +38 -19
  429. package/vscode/src/vs/workbench/services/workingCopy/common/workingCopyFileService.service.d.ts +2 -1
  430. package/vscode-dts/vscode.proposed.aiTextSearchProvider.d.ts +0 -196
  431. package/vscode-dts/vscode.proposed.attributableCoverage.d.ts +28 -10
  432. package/vscode-dts/vscode.proposed.authGetSessions.d.ts +30 -22
  433. package/vscode-dts/vscode.proposed.chatProvider.d.ts +17 -8
  434. package/vscode-dts/vscode.proposed.chatVariableResolver.d.ts +0 -9
  435. package/vscode-dts/vscode.proposed.commentReveal.d.ts +32 -0
  436. package/vscode-dts/vscode.proposed.commentThreadApplicability.d.ts +10 -0
  437. package/vscode-dts/vscode.proposed.createFileSystemWatcher.d.ts +1 -1
  438. package/vscode-dts/vscode.proposed.fileComments.d.ts +12 -53
  439. package/vscode-dts/vscode.proposed.fileSearchProvider.d.ts +6 -0
  440. package/vscode-dts/vscode.proposed.inlineCompletionsAdditions.d.ts +6 -0
  441. package/vscode-dts/vscode.proposed.lmTools.d.ts +91 -0
  442. package/vscode-dts/vscode.proposed.mappedEditsProvider.d.ts +1 -1
  443. package/vscode-dts/vscode.proposed.scmHistoryProvider.d.ts +10 -6
  444. package/vscode-dts/vscode.proposed.terminalShellIntegration.d.ts +38 -13
  445. package/vscode/src/vs/editor/browser/observableUtilities.js +0 -58
  446. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/notebookOutlineProviderFactory.service.js +0 -3
  447. package/vscode/src/vs/workbench/services/extensions/common/extensionsApiProposals.js +0 -122
@@ -157,7 +157,7 @@ class BaseActionViewItem extends Disposable {
157
157
  else {
158
158
  if (!this.customHover && title !== '') {
159
159
  const hoverDelegate = this.options.hoverDelegate ?? getDefaultHoverDelegate('element');
160
- this.customHover = this._store.add(getBaseLayerHoverDelegate().setupUpdatableHover(hoverDelegate, this.element, title));
160
+ this.customHover = this._store.add(getBaseLayerHoverDelegate().setupManagedHover(hoverDelegate, this.element, title));
161
161
  }
162
162
  else if (this.customHover) {
163
163
  this.customHover.update(title);
@@ -289,7 +289,7 @@ class ActionBar extends Disposable {
289
289
  }
290
290
  pull(index) {
291
291
  if (index >= 0 && index < this.viewItems.length) {
292
- this.actionsList.removeChild(this.actionsList.childNodes[index]);
292
+ this.actionsList.childNodes[index].remove();
293
293
  this.viewItemDisposables.deleteAndDispose(this.viewItems[index]);
294
294
  dispose(this.viewItems.splice(index, 1));
295
295
  this.refreshRole();
@@ -218,7 +218,7 @@ class Button extends Disposable {
218
218
  }
219
219
  setTitle(title) {
220
220
  if (!this._hover && title !== '') {
221
- this._hover = this._register(getBaseLayerHoverDelegate().setupUpdatableHover(this.options.hoverDelegate ?? getDefaultHoverDelegate('mouse'), this._element, title));
221
+ this._hover = this._register(getBaseLayerHoverDelegate().setupManagedHover(this.options.hoverDelegate ?? getDefaultHoverDelegate('mouse'), this._element, title));
222
222
  }
223
223
  else if (this._hover) {
224
224
  this._hover.update(title);
@@ -262,7 +262,7 @@ class ButtonWithDropdown extends Disposable {
262
262
  this.separatorContainer.style.backgroundColor = buttonBackground ?? '';
263
263
  this.separator.style.backgroundColor = options.buttonSeparator ?? '';
264
264
  this.dropdownButton = this._register(( (new Button(this.element, { ...options, title: false, supportIcons: true }))));
265
- this._register(getBaseLayerHoverDelegate().setupUpdatableHover(getDefaultHoverDelegate('mouse'), this.dropdownButton.element, ( localizeWithPath(_moduleId, 0, 'More Actions...'))));
265
+ this._register(getBaseLayerHoverDelegate().setupManagedHover(getDefaultHoverDelegate('mouse'), this.dropdownButton.element, ( localizeWithPath(_moduleId, 0, 'More Actions...'))));
266
266
  this.dropdownButton.element.setAttribute('aria-haspopup', 'true');
267
267
  this.dropdownButton.element.setAttribute('aria-expanded', 'false');
268
268
  this.dropdownButton.element.classList.add('monaco-dropdown-button');
@@ -88,15 +88,12 @@ class ContextView extends Disposable {
88
88
  }
89
89
  if (this.container) {
90
90
  this.toDisposeOnSetContainer.dispose();
91
+ this.view.remove();
91
92
  if (this.shadowRoot) {
92
- this.shadowRoot.removeChild(this.view);
93
93
  this.shadowRoot = null;
94
94
  this.shadowRootHostElement?.remove();
95
95
  this.shadowRootHostElement = null;
96
96
  }
97
- else {
98
- this.container.removeChild(this.view);
99
- }
100
97
  this.container = null;
101
98
  }
102
99
  if (container) {
@@ -65,7 +65,7 @@ class BaseDropdown extends ActionRunner {
65
65
  set tooltip(tooltip) {
66
66
  if (this._label) {
67
67
  if (!this.hover && tooltip !== '') {
68
- this.hover = this._register(getBaseLayerHoverDelegate().setupUpdatableHover(getDefaultHoverDelegate('mouse'), this._label, tooltip));
68
+ this.hover = this._register(getBaseLayerHoverDelegate().setupManagedHover(getDefaultHoverDelegate('mouse'), this._label, tooltip));
69
69
  }
70
70
  else if (this.hover) {
71
71
  this.hover.update(tooltip);
@@ -44,7 +44,7 @@ class DropdownMenuActionViewItem extends BaseActionViewItem {
44
44
  this.element.setAttribute('aria-haspopup', 'true');
45
45
  this.element.setAttribute('aria-expanded', 'false');
46
46
  if (this._action.label) {
47
- this._register(getBaseLayerHoverDelegate().setupUpdatableHover(this.options.hoverDelegate ?? getDefaultHoverDelegate('mouse'), this.element, this._action.label));
47
+ this._register(getBaseLayerHoverDelegate().setupManagedHover(this.options.hoverDelegate ?? getDefaultHoverDelegate('mouse'), this.element, this._action.label));
48
48
  }
49
49
  this.element.ariaLabel = this._action.label || '';
50
50
  return null;
@@ -74,7 +74,7 @@ class HighlightedLabel extends Disposable {
74
74
  else {
75
75
  if (!this.customHover && this.title !== '') {
76
76
  const hoverDelegate = this.options?.hoverDelegate ?? getDefaultHoverDelegate('mouse');
77
- this.customHover = this._register(getBaseLayerHoverDelegate().setupUpdatableHover(hoverDelegate, this.domNode, this.title));
77
+ this.customHover = this._register(getBaseLayerHoverDelegate().setupManagedHover(hoverDelegate, this.domNode, this.title));
78
78
  }
79
79
  else if (this.customHover) {
80
80
  this.customHover.update(this.title);
@@ -9,11 +9,12 @@ import { IDisposable } from '../../../common/lifecycle.js';
9
9
  */
10
10
  interface IHoverDelegate2 {
11
11
  /**
12
- * Shows a hover, provided a hover with the same options object is not already visible.
12
+ * Shows a hover, provided a hover with the same {@link options} object is not already visible.
13
+ *
13
14
  * @param options A set of options defining the characteristics of the hover.
14
15
  * @param focus Whether to focus the hover (useful for keyboard accessibility).
15
16
  *
16
- * **Example:** A simple usage with a single element target.
17
+ * @example A simple usage with a single element target.
17
18
  *
18
19
  * ```typescript
19
20
  * showHover({
@@ -33,13 +34,31 @@ interface IHoverDelegate2 {
33
34
  * simultaneously. #188822
34
35
  */
35
36
  showAndFocusLastHover(): void;
36
- setupUpdatableHover(hoverDelegate: IHoverDelegate, htmlElement: HTMLElement, content: IUpdatableHoverContentOrFactory, options?: IUpdatableHoverOptions): IUpdatableHover;
37
+ /**
38
+ * Sets up a managed hover for the given element. A managed hover will set up listeners for
39
+ * mouse events, show the hover after a delay and provide hooks to easily update the content.
40
+ *
41
+ * This should be used over {@link showHover} when fine-grained control is not needed. The
42
+ * managed hover also does not scale well, consider using {@link showHover} when showing hovers
43
+ * for many elements.
44
+ *
45
+ * @param hoverDelegate The hover delegate containing hooks and configuration for the hover.
46
+ * @param targetElement The target element to show the hover for.
47
+ * @param content The content of the hover or a factory that creates it at the time it's shown.
48
+ * @param options Additional options for the managed hover.
49
+ */
50
+ setupManagedHover(hoverDelegate: IHoverDelegate, targetElement: HTMLElement, content: IManagedHoverContentOrFactory, options?: IManagedHoverOptions): IManagedHover;
37
51
  /**
38
52
  * Shows the hover for the given element if one has been setup.
53
+ *
54
+ * @param targetElement The target element of the hover, as set up in {@link setupManagedHover}.
39
55
  */
40
- triggerUpdatableHover(htmlElement: HTMLElement): void;
56
+ showManagedHover(targetElement: HTMLElement): void;
41
57
  }
42
58
  interface IHoverWidget extends IDisposable {
59
+ /**
60
+ * Whether the hover widget has been disposed.
61
+ */
43
62
  readonly isDisposed: boolean;
44
63
  }
45
64
  interface IHoverOptions {
@@ -186,25 +205,22 @@ interface IHoverTarget extends IDisposable {
186
205
  * An optional absolute x coordinate to position the hover with, for example to position the
187
206
  * hover using `MouseEvent.pageX`.
188
207
  */
189
- x?: number;
208
+ readonly x?: number;
190
209
  /**
191
210
  * An optional absolute y coordinate to position the hover with, for example to position the
192
211
  * hover using `MouseEvent.pageY`.
193
212
  */
194
- y?: number;
213
+ readonly y?: number;
195
214
  }
196
- interface IUpdatableHoverTooltipMarkdownString {
215
+ interface IManagedHoverTooltipMarkdownString {
197
216
  markdown: IMarkdownString | string | undefined | ((token: CancellationToken) => Promise<IMarkdownString | string | undefined>);
198
217
  markdownNotSupportedFallback: string | undefined;
199
218
  }
200
- type IUpdatableHoverContent = string | IUpdatableHoverTooltipMarkdownString | HTMLElement | undefined;
201
- type IUpdatableHoverContentOrFactory = IUpdatableHoverContent | (() => IUpdatableHoverContent);
202
- interface IUpdatableHoverOptions {
203
- actions?: IHoverAction[];
204
- linkHandler?(url: string): void;
205
- trapFocus?: boolean;
219
+ type IManagedHoverContent = string | IManagedHoverTooltipMarkdownString | HTMLElement | undefined;
220
+ type IManagedHoverContentOrFactory = IManagedHoverContent | (() => IManagedHoverContent);
221
+ interface IManagedHoverOptions extends Pick<IHoverOptions, 'actions' | 'linkHandler' | 'trapFocus'> {
206
222
  }
207
- interface IUpdatableHover extends IDisposable {
223
+ interface IManagedHover extends IDisposable {
208
224
  /**
209
225
  * Allows to programmatically open the hover.
210
226
  */
@@ -216,7 +232,7 @@ interface IUpdatableHover extends IDisposable {
216
232
  /**
217
233
  * Updates the contents of the hover.
218
234
  */
219
- update(tooltip: IUpdatableHoverContent, options?: IUpdatableHoverOptions): void;
235
+ update(tooltip: IManagedHoverContent, options?: IManagedHoverOptions): void;
220
236
  }
221
237
 
222
- export type { IHoverAction, IHoverAppearanceOptions, IHoverDelegate2, IHoverOptions, IHoverPersistenceOptions, IHoverPositionOptions, IHoverTarget, IHoverWidget, IUpdatableHover, IUpdatableHoverContent, IUpdatableHoverContentOrFactory, IUpdatableHoverOptions, IUpdatableHoverTooltipMarkdownString };
238
+ export type { IHoverAction, IHoverAppearanceOptions, IHoverDelegate2, IHoverOptions, IHoverPersistenceOptions, IHoverPositionOptions, IHoverTarget, IHoverWidget, IManagedHover, IManagedHoverContent, IManagedHoverContentOrFactory, IManagedHoverOptions, IManagedHoverTooltipMarkdownString };
@@ -1,4 +1,4 @@
1
- import { IHoverWidget, IUpdatableHoverOptions } from './hover.js';
1
+ import { IHoverWidget, IManagedHoverOptions } from './hover.js';
2
2
  import { HoverPosition } from './hoverWidget.js';
3
3
  import { IMarkdownString } from '../../../common/htmlContent.js';
4
4
  import { IDisposable } from '../../../common/lifecycle.js';
@@ -7,7 +7,7 @@ interface IHoverDelegateTarget extends IDisposable {
7
7
  readonly targetElements: readonly HTMLElement[];
8
8
  x?: number;
9
9
  }
10
- interface IHoverDelegateOptions extends IUpdatableHoverOptions {
10
+ interface IHoverDelegateOptions extends IManagedHoverOptions {
11
11
  /**
12
12
  * The content to display in the primary section of the hover. The type of text determines the
13
13
  * default `hideOnHover` behavior.
@@ -2,8 +2,8 @@ let baseHoverDelegate = {
2
2
  showHover: () => undefined,
3
3
  hideHover: () => undefined,
4
4
  showAndFocusLastHover: () => undefined,
5
- setupUpdatableHover: () => null,
6
- triggerUpdatableHover: () => undefined
5
+ setupManagedHover: () => null,
6
+ showManagedHover: () => undefined
7
7
  };
8
8
  function setBaseLayerHoverDelegate(hoverDelegate) {
9
9
  baseHoverDelegate = hoverDelegate;
@@ -1,4 +1,4 @@
1
1
  import n from '../../../../../../../external/rollup-plugin-styles/dist/runtime/inject-css.js';
2
- var css = ".monaco-hover{animation:fadein .1s linear;box-sizing:border-box;cursor:default;line-height:1.5em;overflow:hidden;position:absolute;user-select:text;-webkit-user-select:text;white-space:var(--vscode-hover-whiteSpace,normal)}.monaco-hover.hidden{display:none}.monaco-hover a:hover:not(.disabled){cursor:pointer}.monaco-hover .hover-contents:not(.html-hover-contents){padding:4px 8px}.monaco-hover .markdown-hover>.hover-contents:not(.code-hover-contents){word-wrap:break-word;max-width:var(--vscode-hover-maxWidth,500px)}.monaco-hover .markdown-hover>.hover-contents:not(.code-hover-contents) hr{min-width:100%}.monaco-hover .code,.monaco-hover h1,.monaco-hover h2,.monaco-hover h3,.monaco-hover h4,.monaco-hover h5,.monaco-hover h6,.monaco-hover p,.monaco-hover ul{margin:8px 0}.monaco-hover h1,.monaco-hover h2,.monaco-hover h3,.monaco-hover h4,.monaco-hover h5,.monaco-hover h6{line-height:1.1}.monaco-hover code{font-family:var(--monaco-monospace-font)}.monaco-hover hr{border-left:0;border-right:0;box-sizing:border-box;height:1px;margin:4px -8px -4px}.monaco-hover .code:first-child,.monaco-hover p:first-child,.monaco-hover ul:first-child{margin-top:0}.monaco-hover .code:last-child,.monaco-hover p:last-child,.monaco-hover ul:last-child{margin-bottom:0}.monaco-hover ol,.monaco-hover ul{padding-left:20px}.monaco-hover li>p{margin-bottom:0}.monaco-hover li>ul{margin-top:0}.monaco-hover code{border-radius:3px;padding:0 .4em}.monaco-hover .monaco-tokenized-source{white-space:var(--vscode-hover-sourceWhiteSpace,pre-wrap)}.monaco-hover .hover-row.status-bar{font-size:12px;line-height:22px}.monaco-hover .hover-row.status-bar .info{font-style:italic;padding:0 8px}.monaco-hover .hover-row.status-bar .actions{display:flex;padding:0 8px;width:100%}.monaco-hover .hover-row.status-bar .actions .action-container{cursor:pointer;margin-right:16px}.monaco-hover .hover-row.status-bar .actions .action-container .action .icon{padding-right:4px}.monaco-hover .markdown-hover .hover-contents .codicon{color:inherit;font-size:inherit;vertical-align:middle}.monaco-hover .hover-contents a.code-link,.monaco-hover .hover-contents a.code-link:hover{color:inherit}.monaco-hover .hover-contents a.code-link:before{content:\"(\"}.monaco-hover .hover-contents a.code-link:after{content:\")\"}.monaco-hover .hover-contents a.code-link>span{border-bottom:1px solid transparent;color:var(--vscode-textLink-foreground);text-decoration:underline;text-underline-position:under}.monaco-hover .hover-contents a.code-link>span:hover{color:var(--vscode-textLink-activeForeground)}.monaco-hover .markdown-hover .hover-contents:not(.code-hover-contents):not(.html-hover-contents) span{display:inline-block;margin-bottom:4px}.monaco-hover-content .action-container a{-webkit-user-select:none;user-select:none}.monaco-hover-content .action-container.disabled{cursor:default;opacity:.4;pointer-events:none}";
2
+ var css = ".monaco-hover{animation:fadein .1s linear;box-sizing:border-box;cursor:default;line-height:1.5em;overflow:hidden;position:absolute;user-select:text;-webkit-user-select:text;white-space:var(--vscode-hover-whiteSpace,normal)}.monaco-hover.hidden{display:none}.monaco-hover a:hover:not(.disabled){cursor:pointer}.monaco-hover .hover-contents:not(.html-hover-contents){padding:4px 8px}.monaco-hover .markdown-hover>.hover-contents:not(.code-hover-contents){word-wrap:break-word;max-width:var(--vscode-hover-maxWidth,500px)}.monaco-hover .markdown-hover>.hover-contents:not(.code-hover-contents) hr{min-width:100%}.monaco-hover .code,.monaco-hover h1,.monaco-hover h2,.monaco-hover h3,.monaco-hover h4,.monaco-hover h5,.monaco-hover h6,.monaco-hover p,.monaco-hover ul{margin:8px 0}.monaco-hover h1,.monaco-hover h2,.monaco-hover h3,.monaco-hover h4,.monaco-hover h5,.monaco-hover h6{line-height:1.1}.monaco-hover code{font-family:var(--monaco-monospace-font)}.monaco-hover hr{border-left:0;border-right:0;box-sizing:border-box;height:1px;margin:4px -8px -4px}.monaco-hover .code:first-child,.monaco-hover p:first-child,.monaco-hover ul:first-child{margin-top:0}.monaco-hover .code:last-child,.monaco-hover p:last-child,.monaco-hover ul:last-child{margin-bottom:0}.monaco-hover ol,.monaco-hover ul{padding-left:20px}.monaco-hover li>p{margin-bottom:0}.monaco-hover li>ul{margin-top:0}.monaco-hover code{border-radius:3px;padding:0 .4em}.monaco-hover .monaco-tokenized-source{white-space:var(--vscode-hover-sourceWhiteSpace,pre-wrap)}.monaco-hover .hover-row.status-bar{font-size:12px;line-height:22px}.monaco-hover .hover-row.status-bar .info{font-style:italic;padding:0 8px}.monaco-hover .hover-row.status-bar .actions{display:flex;padding:0 8px;width:100%}.monaco-hover .hover-row.status-bar .actions .action-container{cursor:pointer;margin-right:16px}.monaco-hover .hover-row.status-bar .actions .action-container .action .icon{padding-right:4px}.monaco-hover .hover-row.status-bar .actions .action-container a{color:var(--vscode-textLink-foreground);text-decoration:var(--text-link-decoration)}.monaco-hover .markdown-hover .hover-contents .codicon{color:inherit;font-size:inherit;vertical-align:middle}.monaco-hover .hover-contents a.code-link,.monaco-hover .hover-contents a.code-link:hover{color:inherit}.monaco-hover .hover-contents a.code-link:before{content:\"(\"}.monaco-hover .hover-contents a.code-link:after{content:\")\"}.monaco-hover .hover-contents a.code-link>span{border-bottom:1px solid transparent;color:var(--vscode-textLink-foreground);text-decoration:underline;text-underline-position:under}.monaco-hover .hover-contents a.code-link>span:hover{color:var(--vscode-textLink-activeForeground)}.monaco-hover .markdown-hover .hover-contents:not(.code-hover-contents):not(.html-hover-contents) span{display:inline-block;margin-bottom:4px}.monaco-hover-content .action-container a{-webkit-user-select:none;user-select:none}.monaco-hover-content .action-container.disabled{cursor:default;opacity:.4;pointer-events:none}";
3
3
  n(css,{});
4
4
  export { css, css as default };
@@ -40,6 +40,8 @@ class HoverAction extends Disposable {
40
40
  }
41
41
  constructor(parent, actionOptions, keybindingLabel) {
42
42
  super();
43
+ this.actionLabel = actionOptions.label;
44
+ this.actionKeybindingLabel = keybindingLabel;
43
45
  this.actionContainer = append(parent, $('div.action-container'));
44
46
  this.actionContainer.setAttribute('tabindex', '0');
45
47
  this.action = append(this.actionContainer, $('a.action'));
@@ -147,7 +147,7 @@ class IconLabel extends Disposable {
147
147
  setupNativeHover(htmlElement, tooltip);
148
148
  }
149
149
  else {
150
- const hoverDisposable = getBaseLayerHoverDelegate().setupUpdatableHover(this.hoverDelegate, htmlElement, tooltip);
150
+ const hoverDisposable = getBaseLayerHoverDelegate().setupManagedHover(this.hoverDelegate, htmlElement, tooltip);
151
151
  if (hoverDisposable) {
152
152
  this.customHovers.set(htmlElement, hoverDisposable);
153
153
  }
@@ -11,7 +11,7 @@ class SimpleIconLabel {
11
11
  }
12
12
  set title(title) {
13
13
  if (!this.hover && title) {
14
- this.hover = getBaseLayerHoverDelegate().setupUpdatableHover(getDefaultHoverDelegate('mouse'), this._container, title);
14
+ this.hover = getBaseLayerHoverDelegate().setupManagedHover(getDefaultHoverDelegate('mouse'), this._container, title);
15
15
  }
16
16
  else if (this.hover) {
17
17
  this.hover.update(title);
@@ -127,7 +127,7 @@ class InputBox extends Widget {
127
127
  setTooltip(tooltip) {
128
128
  this.tooltip = tooltip;
129
129
  if (!this.hover) {
130
- this.hover = this._register(getBaseLayerHoverDelegate().setupUpdatableHover(getDefaultHoverDelegate('mouse'), this.input, tooltip));
130
+ this.hover = this._register(getBaseLayerHoverDelegate().setupManagedHover(getDefaultHoverDelegate('mouse'), this.input, tooltip));
131
131
  }
132
132
  else {
133
133
  this.hover.update(tooltip);
@@ -26,7 +26,7 @@ class KeybindingLabel extends Disposable {
26
26
  if (labelForeground) {
27
27
  this.domNode.style.color = labelForeground;
28
28
  }
29
- this.hover = this._register(getBaseLayerHoverDelegate().setupUpdatableHover(getDefaultHoverDelegate('mouse'), this.domNode, ''));
29
+ this.hover = this._register(getBaseLayerHoverDelegate().setupManagedHover(getDefaultHoverDelegate('mouse'), this.domNode, ''));
30
30
  this.didEverRender = false;
31
31
  container.appendChild(this.domNode);
32
32
  }
@@ -787,7 +787,7 @@ class ListView {
787
787
  const container = getDragImageContainer(this.domNode);
788
788
  container.appendChild(dragImage);
789
789
  event.dataTransfer.setDragImage(dragImage, -10, -10);
790
- setTimeout(() => container.removeChild(dragImage), 0);
790
+ setTimeout(() => dragImage.remove(), 0);
791
791
  }
792
792
  this.domNode.classList.add('dragging');
793
793
  this.currentDragData = ( new ElementsDragAndDropData(elements));
@@ -1075,7 +1075,7 @@ class ListView {
1075
1075
  renderer.disposeElement?.(item.element, index, row.templateData, undefined);
1076
1076
  this.virtualDelegate.setDynamicHeight?.(item.element, item.size);
1077
1077
  item.lastDynamicHeightWidth = this.renderWidth;
1078
- this.rowsContainer.removeChild(row.domNode);
1078
+ row.domNode.remove();
1079
1079
  this.cache.release(row);
1080
1080
  return item.size - size;
1081
1081
  }
@@ -1095,9 +1095,7 @@ class ListView {
1095
1095
  }
1096
1096
  }
1097
1097
  this.items = [];
1098
- if (this.domNode && this.domNode.parentNode) {
1099
- this.domNode.parentNode.removeChild(this.domNode);
1100
- }
1098
+ this.domNode?.remove();
1101
1099
  this.dragOverAnimationDisposable?.dispose();
1102
1100
  this.disposables.dispose();
1103
1101
  }
@@ -1,11 +1,4 @@
1
1
  import { $ } from '../../dom.js';
2
- function removeFromParent(element) {
3
- try {
4
- element.parentElement?.removeChild(element);
5
- }
6
- catch (e) {
7
- }
8
- }
9
2
  class RowCache {
10
3
  constructor(renderers) {
11
4
  this.renderers = renderers;
@@ -67,7 +60,7 @@ class RowCache {
67
60
  }
68
61
  doRemoveNode(domNode) {
69
62
  domNode.classList.remove('scrolling');
70
- removeFromParent(domNode);
63
+ domNode.remove();
71
64
  }
72
65
  getTemplateCache(templateId) {
73
66
  let result = this.cache.get(templateId);
@@ -309,7 +309,7 @@ class Sash extends Disposable {
309
309
  };
310
310
  const onPointerUp = (e) => {
311
311
  EventHelper.stop(e, false);
312
- this.el.removeChild(style);
312
+ style.remove();
313
313
  this.el.classList.remove('active');
314
314
  this._onDidEnd.fire();
315
315
  disposables.dispose();
@@ -86,7 +86,7 @@ class SelectBoxList extends Disposable {
86
86
  }
87
87
  setTitle(title) {
88
88
  if (!this._hover && title) {
89
- this._hover = this._register(getBaseLayerHoverDelegate().setupUpdatableHover(getDefaultHoverDelegate('mouse'), this.selectElement, title));
89
+ this._hover = this._register(getBaseLayerHoverDelegate().setupManagedHover(getDefaultHoverDelegate('mouse'), this.selectElement, title));
90
90
  }
91
91
  else if (this._hover) {
92
92
  this._hover.update(title);
@@ -349,11 +349,7 @@ class SelectBoxList extends Disposable {
349
349
  this.layoutSelectDropDown(preLayoutPosition);
350
350
  return {
351
351
  dispose: () => {
352
- try {
353
- container.removeChild(this.selectDropDownContainer);
354
- }
355
- catch (error) {
356
- }
352
+ this.selectDropDownContainer.remove();
357
353
  }
358
354
  };
359
355
  }
@@ -403,8 +399,8 @@ class SelectBoxList extends Disposable {
403
399
  && maxVisibleOptionsAbove > maxVisibleOptionsBelow
404
400
  && this.options.length > maxVisibleOptionsBelow) {
405
401
  this._dropDownPosition = AnchorPosition.ABOVE;
406
- this.selectDropDownContainer.removeChild(this.selectDropDownListContainer);
407
- this.selectDropDownContainer.removeChild(this.selectionDetailsPane);
402
+ this.selectDropDownListContainer.remove();
403
+ this.selectionDetailsPane.remove();
408
404
  this.selectDropDownContainer.appendChild(this.selectionDetailsPane);
409
405
  this.selectDropDownContainer.appendChild(this.selectDropDownListContainer);
410
406
  this.selectionDetailsPane.classList.remove('border-top');
@@ -412,8 +408,8 @@ class SelectBoxList extends Disposable {
412
408
  }
413
409
  else {
414
410
  this._dropDownPosition = AnchorPosition.BELOW;
415
- this.selectDropDownContainer.removeChild(this.selectDropDownListContainer);
416
- this.selectDropDownContainer.removeChild(this.selectionDetailsPane);
411
+ this.selectDropDownListContainer.remove();
412
+ this.selectionDetailsPane.remove();
417
413
  this.selectDropDownContainer.appendChild(this.selectDropDownListContainer);
418
414
  this.selectDropDownContainer.appendChild(this.selectionDetailsPane);
419
415
  this.selectionDetailsPane.classList.remove('border-bottom');
@@ -601,7 +597,7 @@ class SelectBoxList extends Disposable {
601
597
  const child = element.childNodes.item(i);
602
598
  const tagName = child.tagName && child.tagName.toLowerCase();
603
599
  if (tagName === 'img') {
604
- element.removeChild(child);
600
+ child.remove();
605
601
  }
606
602
  else {
607
603
  cleanRenderedMarkdown(child);
@@ -264,7 +264,7 @@ class PaneDraggable extends Disposable {
264
264
  }
265
265
  const dragImage = append(this.pane.element.ownerDocument.body, $('.monaco-drag-image', {}, this.pane.draggableElement.textContent || ''));
266
266
  e.dataTransfer.setDragImage(dragImage, -10, -10);
267
- setTimeout(() => this.pane.element.ownerDocument.body.removeChild(dragImage), 0);
267
+ setTimeout(() => dragImage.remove(), 0);
268
268
  this.context.draggable = this;
269
269
  }
270
270
  onDragEnter(e) {
@@ -561,7 +561,7 @@ class SplitView extends Disposable {
561
561
  this.viewContainer.insertBefore(container, this.viewContainer.children.item(index));
562
562
  }
563
563
  const onChangeDisposable = view.onDidChange(size => this.onViewChange(item, size));
564
- const containerDisposable = toDisposable(() => this.viewContainer.removeChild(container));
564
+ const containerDisposable = toDisposable(() => container.remove());
565
565
  const disposable = combinedDisposable(onChangeDisposable, containerDisposable);
566
566
  let viewSize;
567
567
  if (typeof size === 'number') {
@@ -90,7 +90,7 @@ class ColumnHeader extends Disposable {
90
90
  this.onDidLayout = this._onDidLayout.event;
91
91
  this.element = $('.monaco-table-th', { 'data-col-index': index }, column.label);
92
92
  if (column.tooltip) {
93
- this._register(getBaseLayerHoverDelegate().setupUpdatableHover(getDefaultHoverDelegate('mouse'), this.element, column.tooltip));
93
+ this._register(getBaseLayerHoverDelegate().setupManagedHover(getDefaultHoverDelegate('mouse'), this.element, column.tooltip));
94
94
  }
95
95
  }
96
96
  layout(size) {
@@ -78,7 +78,7 @@ class Toggle extends Widget {
78
78
  classes.push('checked');
79
79
  }
80
80
  this.domNode = document.createElement('div');
81
- this._hover = this._register(getBaseLayerHoverDelegate().setupUpdatableHover(opts.hoverDelegate ?? getDefaultHoverDelegate('mouse'), this.domNode, this._opts.title));
81
+ this._hover = this._register(getBaseLayerHoverDelegate().setupManagedHover(opts.hoverDelegate ?? getDefaultHoverDelegate('mouse'), this.domNode, this._opts.title));
82
82
  this.domNode.classList.add(...classes);
83
83
  if (!this._opts.notFocusable) {
84
84
  this.domNode.tabIndex = 0;
@@ -25,6 +25,14 @@ interface IToolBarOptions {
25
25
  * If true, toggled primary items are highlighted with a background color.
26
26
  */
27
27
  highlightToggledItems?: boolean;
28
+ /**
29
+ * Render action with icons (default: `true`)
30
+ */
31
+ icon?: boolean;
32
+ /**
33
+ * Render action with label (default: `false`)
34
+ */
35
+ label?: boolean;
28
36
  }
29
37
  /**
30
38
  * A widget that combines an action bar for primary actions and a dropdown for secondary actions.
@@ -36,7 +44,6 @@ declare class ToolBar extends Disposable {
36
44
  private toggleMenuActionViewItem;
37
45
  private submenuActionViewItems;
38
46
  private hasSecondaryActions;
39
- private readonly lookupKeybindings;
40
47
  private readonly element;
41
48
  private _onDidChangeDropdownVisibility;
42
49
  readonly onDidChangeDropdownVisibility: Event<boolean>;
@@ -19,7 +19,6 @@ class ToolBar extends Disposable {
19
19
  this.disposables = this._register(( (new DisposableStore())));
20
20
  options.hoverDelegate = options.hoverDelegate ?? this._register(createInstantHoverDelegate());
21
21
  this.options = options;
22
- this.lookupKeybindings = typeof this.options.getKeyBinding === 'function';
23
22
  this.toggleMenuAction = this._register(( (new ToggleMenuAction(() => this.toggleMenuActionViewItem?.show(), options.toggleMenuTitle))));
24
23
  this.element = document.createElement('div');
25
24
  this.element.className = 'monaco-toolbar';
@@ -121,14 +120,14 @@ class ToolBar extends Disposable {
121
120
  primaryActionsToSet.push(this.toggleMenuAction);
122
121
  }
123
122
  primaryActionsToSet.forEach(action => {
124
- this.actionBar.push(action, { icon: true, label: false, keybinding: this.getKeybindingLabel(action) });
123
+ this.actionBar.push(action, { icon: this.options.icon ?? true, label: this.options.label ?? false, keybinding: this.getKeybindingLabel(action) });
125
124
  });
126
125
  }
127
126
  isEmpty() {
128
127
  return this.actionBar.isEmpty();
129
128
  }
130
129
  getKeybindingLabel(action) {
131
- const key = this.lookupKeybindings ? this.options.getKeyBinding?.(action) : undefined;
130
+ const key = this.options.getKeyBinding?.(action);
132
131
  return key?.getLabel() ?? undefined;
133
132
  }
134
133
  clear() {
@@ -603,7 +603,7 @@ class FindWidget extends Disposable {
603
603
  this._onDidDisable = ( (new Emitter()));
604
604
  this.onDidDisable = this._onDidDisable.event;
605
605
  container.appendChild(this.elements.root);
606
- this._register(toDisposable(() => container.removeChild(this.elements.root)));
606
+ this._register(toDisposable(() => this.elements.root.remove()));
607
607
  const styles = options?.styles ?? unthemedFindWidgetStyles;
608
608
  if (styles.listFilterWidgetBackground) {
609
609
  this.elements.root.style.backgroundColor = styles.listFilterWidgetBackground;
@@ -398,9 +398,6 @@ class AsyncDataTree {
398
398
  resort(element = this.root.element, recursive = true) {
399
399
  this.tree.resort(this.getDataNode(element), recursive);
400
400
  }
401
- hasElement(element) {
402
- return this.tree.hasElement(this.getDataNode(element));
403
- }
404
401
  hasNode(element) {
405
402
  return element === this.root.element || ( this.nodes.has(element));
406
403
  }
@@ -1,4 +1,4 @@
1
- import { BugIndicatingError, onUnexpectedError } from './errors.js';
1
+ import { onUnexpectedError, BugIndicatingError } from './errors.js';
2
2
  function ok(value, message) {
3
3
  if (!value) {
4
4
  throw ( new Error(message ? `Assertion failed (${message})` : 'Assertion Failed'));
@@ -1,3 +1,4 @@
1
+ var _a;
1
2
  function groupBy(data, groupFn) {
2
3
  const result = Object.create(null);
3
4
  for (const element of data) {
@@ -49,4 +50,51 @@ function intersection(setA, setB) {
49
50
  }
50
51
  return result;
51
52
  }
52
- export { diffMaps, diffSets, groupBy, intersection };
53
+ class SetWithKey {
54
+ static { _a = Symbol.toStringTag; }
55
+ constructor(values, toKey) {
56
+ this.toKey = toKey;
57
+ this._map = ( new Map());
58
+ this[_a] = 'SetWithKey';
59
+ for (const value of values) {
60
+ this.add(value);
61
+ }
62
+ }
63
+ get size() {
64
+ return this._map.size;
65
+ }
66
+ add(value) {
67
+ const key = this.toKey(value);
68
+ this._map.set(key, value);
69
+ return this;
70
+ }
71
+ delete(value) {
72
+ return this._map.delete(this.toKey(value));
73
+ }
74
+ has(value) {
75
+ return ( this._map.has(this.toKey(value)));
76
+ }
77
+ *entries() {
78
+ for (const entry of ( this._map.values())) {
79
+ yield [entry, entry];
80
+ }
81
+ }
82
+ keys() {
83
+ return ( this.values());
84
+ }
85
+ *values() {
86
+ for (const entry of ( this._map.values())) {
87
+ yield entry;
88
+ }
89
+ }
90
+ clear() {
91
+ this._map.clear();
92
+ }
93
+ forEach(callbackfn, thisArg) {
94
+ this._map.forEach(entry => callbackfn.call(thisArg, entry, entry, this));
95
+ }
96
+ [Symbol.iterator]() {
97
+ return ( this.values());
98
+ }
99
+ }
100
+ export { SetWithKey, diffMaps, diffSets, groupBy, intersection };
@@ -6,11 +6,61 @@ function itemsEquals(itemEquals = strictEquals) {
6
6
  function itemEquals() {
7
7
  return (a, b) => a.equals(b);
8
8
  }
9
- function equalsIfDefined(v1, v2, equals) {
10
- if (!v1 || !v2) {
11
- return v1 === v2;
9
+ function equalsIfDefined(equalsOrV1, v2, equals) {
10
+ if (equals !== undefined) {
11
+ const v1 = equalsOrV1;
12
+ if (v1 === undefined || v1 === null || v2 === undefined || v2 === null) {
13
+ return v2 === v1;
14
+ }
15
+ return equals(v1, v2);
16
+ }
17
+ else {
18
+ const equals = equalsOrV1;
19
+ return (v1, v2) => {
20
+ if (v1 === undefined || v1 === null || v2 === undefined || v2 === null) {
21
+ return v2 === v1;
22
+ }
23
+ return equals(v1, v2);
24
+ };
25
+ }
26
+ }
27
+ function structuralEquals(a, b) {
28
+ if (a === b) {
29
+ return true;
30
+ }
31
+ if (Array.isArray(a) && Array.isArray(b)) {
32
+ if (a.length !== b.length) {
33
+ return false;
34
+ }
35
+ for (let i = 0; i < a.length; i++) {
36
+ if (!structuralEquals(a[i], b[i])) {
37
+ return false;
38
+ }
39
+ }
40
+ return true;
41
+ }
42
+ if (a && typeof a === 'object' && b && typeof b === 'object') {
43
+ if (Object.getPrototypeOf(a) === Object.prototype && Object.getPrototypeOf(b) === Object.prototype) {
44
+ const aObj = a;
45
+ const bObj = b;
46
+ const keysA = ( Object.keys(aObj));
47
+ const keysB = ( Object.keys(bObj));
48
+ const keysBSet = ( new Set(keysB));
49
+ if (keysA.length !== keysB.length) {
50
+ return false;
51
+ }
52
+ for (const key of keysA) {
53
+ if (!( keysBSet.has(key))) {
54
+ return false;
55
+ }
56
+ if (!structuralEquals(aObj[key], bObj[key])) {
57
+ return false;
58
+ }
59
+ }
60
+ return true;
61
+ }
12
62
  }
13
- return equals(v1, v2);
63
+ return false;
14
64
  }
15
65
  function getStructuralKey(t) {
16
66
  return JSON.stringify(toNormalizedJsonStructure(t));
@@ -41,4 +91,4 @@ function toNormalizedJsonStructure(t) {
41
91
  }
42
92
  return t;
43
93
  }
44
- export { equalsIfDefined, getStructuralKey, itemEquals, itemsEquals, strictEquals };
94
+ export { equalsIfDefined, getStructuralKey, itemEquals, itemsEquals, strictEquals, structuralEquals };