@codingame/monaco-vscode-api 1.85.0 → 1.85.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (298) hide show
  1. package/README.md +31 -13
  2. package/contributions.js +1 -0
  3. package/missing-services.js +396 -68
  4. package/monaco-editor-treemending.patch +957 -950
  5. package/package.json +8 -7
  6. package/service-override/tools/editor.js +1 -1
  7. package/services.js +10 -6
  8. package/vscode/src/vs/base/browser/ui/tree/treeDefaults.js +14 -0
  9. package/vscode/src/vs/base/common/jsonFormatter.js +8 -1
  10. package/vscode/src/vs/platform/actions/browser/buttonbar.js +128 -0
  11. package/vscode/src/vs/platform/extensionManagement/common/extensionEnablementService.js +140 -0
  12. package/vscode/src/vs/platform/extensionManagement/common/extensionManagement.js +2 -1
  13. package/vscode/src/vs/platform/extensions/common/extensions.d.ts +1062 -93
  14. package/vscode/src/vs/platform/files/common/inMemoryFilesystemProvider.js +220 -0
  15. package/vscode/src/vs/platform/layout/browser/zIndexRegistry.js +58 -0
  16. package/vscode/src/vs/platform/quickinput/browser/quickPickPin.js +102 -0
  17. package/vscode/src/vs/platform/terminal/common/capabilities/commandDetectionCapability.js +56 -1
  18. package/vscode/src/vs/platform/userDataSync/common/content.js +9 -0
  19. package/vscode/src/vs/platform/userDataSync/common/settingsMerge.js +514 -0
  20. package/vscode/src/vs/platform/userDataSync/common/userDataSync.js +154 -2
  21. package/vscode/src/vs/platform/userDataSync/common/userDataSyncAccount.js +43 -1
  22. package/vscode/src/vs/platform/userDataSync/common/userDataSyncMachines.js +177 -0
  23. package/vscode/src/vs/workbench/api/common/extHostApiCommands.js +1 -1
  24. package/vscode/src/vs/workbench/api/common/extHostTypeConverters.js +1 -1
  25. package/vscode/src/vs/workbench/api/common/extHostWebview.js +2 -2
  26. package/vscode/src/vs/workbench/browser/actions/layoutActions.js +186 -4
  27. package/vscode/src/vs/workbench/browser/parts/views/checkbox.js +105 -0
  28. package/vscode/src/vs/workbench/browser/parts/views/media/views.css.js +4 -0
  29. package/vscode/src/vs/workbench/browser/parts/views/treeView.js +1614 -0
  30. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +191 -0
  31. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatActions.js +238 -2
  32. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.js +75 -0
  33. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +205 -1
  34. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditorInput.js +168 -0
  35. package/vscode/src/vs/workbench/contrib/chat/browser/chatFollowups.js +35 -0
  36. package/vscode/src/vs/workbench/contrib/chat/browser/chatInputPart.js +340 -0
  37. package/vscode/src/vs/workbench/contrib/chat/browser/chatListRenderer.js +1195 -0
  38. package/vscode/src/vs/workbench/contrib/chat/browser/chatMarkdownDecorationsRenderer.js +115 -0
  39. package/vscode/src/vs/workbench/contrib/chat/browser/chatOptions.js +81 -0
  40. package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommandContentWidget.css.js +4 -0
  41. package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommandContentWidget.js +62 -0
  42. package/vscode/src/vs/workbench/contrib/chat/browser/chatWidget.js +583 -0
  43. package/vscode/src/vs/workbench/contrib/chat/browser/codeBlockPart.css.js +4 -0
  44. package/vscode/src/vs/workbench/contrib/chat/browser/codeBlockPart.js +290 -0
  45. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatDynamicVariables.js +167 -0
  46. package/vscode/src/vs/workbench/contrib/chat/browser/media/chat.css.js +4 -0
  47. package/vscode/src/vs/workbench/contrib/chat/common/chatContextKeys.js +6 -1
  48. package/vscode/src/vs/workbench/contrib/chat/common/chatModel.js +562 -0
  49. package/vscode/src/vs/workbench/contrib/chat/common/chatParserTypes.js +31 -1
  50. package/vscode/src/vs/workbench/contrib/chat/common/chatProvider.js +24 -1
  51. package/vscode/src/vs/workbench/contrib/chat/common/chatRequestParser.js +193 -0
  52. package/vscode/src/vs/workbench/contrib/chat/common/chatService.js +22 -1
  53. package/vscode/src/vs/workbench/contrib/chat/common/chatSlashCommands.js +52 -1
  54. package/vscode/src/vs/workbench/contrib/chat/common/chatViewModel.js +258 -0
  55. package/vscode/src/vs/workbench/contrib/chat/common/chatWidgetHistoryService.js +37 -0
  56. package/vscode/src/vs/workbench/contrib/chat/common/chatWordCounter.js +25 -0
  57. package/vscode/src/vs/workbench/contrib/codeEditor/browser/find/simpleFindWidget.css.js +4 -0
  58. package/vscode/src/vs/workbench/contrib/codeEditor/browser/find/simpleFindWidget.js +388 -0
  59. package/vscode/src/vs/workbench/contrib/codeEditor/browser/languageConfigurationExtensionPoint.js +7 -7
  60. package/vscode/src/vs/workbench/contrib/comments/browser/commentColors.js +61 -0
  61. package/vscode/src/vs/workbench/contrib/comments/browser/commentFormActions.js +49 -0
  62. package/vscode/src/vs/workbench/contrib/comments/browser/commentNode.js +647 -0
  63. package/vscode/src/vs/workbench/contrib/comments/browser/commentReply.js +300 -0
  64. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadAdditionalActions.js +60 -0
  65. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadBody.js +249 -0
  66. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadHeader.js +107 -0
  67. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadWidget.js +333 -0
  68. package/vscode/src/vs/workbench/contrib/comments/browser/media/review.css.js +4 -0
  69. package/vscode/src/vs/workbench/contrib/comments/browser/reactionsAction.js +99 -0
  70. package/vscode/src/vs/workbench/contrib/comments/browser/timestamp.js +55 -0
  71. package/vscode/src/vs/workbench/contrib/comments/common/commentsConfiguration.js +2 -0
  72. package/vscode/src/vs/workbench/contrib/contextmenu/browser/contextmenu.contribution.js +20 -0
  73. package/vscode/src/vs/workbench/contrib/debug/browser/breakpointEditorContribution.js +855 -0
  74. package/vscode/src/vs/workbench/contrib/debug/browser/breakpointWidget.js +410 -0
  75. package/vscode/src/vs/workbench/contrib/debug/browser/breakpointsView.js +1591 -0
  76. package/vscode/src/vs/workbench/contrib/debug/browser/callStackEditorContribution.js +178 -0
  77. package/vscode/src/vs/workbench/contrib/debug/browser/media/breakpointWidget.css.js +4 -0
  78. package/vscode/src/vs/workbench/contrib/debug/browser/media/callStackEditorContribution.css.js +4 -0
  79. package/vscode/src/vs/workbench/contrib/debug/common/debugModel.js +1485 -0
  80. package/vscode/src/vs/workbench/contrib/debug/common/debugSource.js +125 -0
  81. package/vscode/src/vs/workbench/contrib/debug/common/disassemblyViewInput.js +29 -0
  82. package/vscode/src/vs/workbench/contrib/extensions/common/extensionsInput.js +41 -0
  83. package/vscode/src/vs/workbench/contrib/extensions/common/extensionsUtils.js +102 -0
  84. package/vscode/src/vs/workbench/contrib/files/browser/explorerViewlet.js +73 -2
  85. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.css.js +4 -0
  86. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.js +988 -0
  87. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatLivePreviewWidget.js +431 -0
  88. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSession.js +417 -0
  89. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatStrategies.js +806 -0
  90. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.js +915 -0
  91. package/vscode/src/vs/workbench/contrib/inlineChat/browser/utils.js +19 -0
  92. package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +129 -10
  93. package/vscode/src/vs/workbench/contrib/markdown/browser/markdownDocumentRenderer.js +205 -0
  94. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditorInput.js +150 -0
  95. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditorInputModel.js +480 -0
  96. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeMarkers/mergeMarkersController.js +5 -0
  97. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/diffComputer.js +90 -0
  98. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/editing.js +54 -0
  99. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/lineRange.js +108 -0
  100. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/mapping.js +258 -0
  101. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/mergeEditorModel.js +614 -0
  102. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/modifiedBaseRange.js +307 -0
  103. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/rangeUtils.js +44 -0
  104. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/textModelDiffs.js +165 -0
  105. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/telemetry.js +78 -0
  106. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/utils.js +169 -0
  107. package/vscode/src/vs/workbench/contrib/mergeEditor/common/mergeEditor.js +64 -0
  108. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/clipboard/cellOutputClipboard.js +49 -0
  109. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/findFilters.js +70 -0
  110. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/findMatchDecorationModel.js +120 -0
  111. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/findModel.js +416 -0
  112. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindReplaceWidget.css.js +4 -0
  113. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindReplaceWidget.js +663 -0
  114. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/cellOperations.js +593 -0
  115. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/cellOutputActions.js +72 -0
  116. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/coreActions.js +326 -0
  117. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/editActions.js +539 -0
  118. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/foldingController.js +265 -0
  119. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/insertCellActions.js +348 -0
  120. package/vscode/src/vs/workbench/contrib/notebook/browser/media/notebook.css.js +4 -0
  121. package/vscode/src/vs/workbench/contrib/notebook/browser/media/notebookCellChat.css.js +4 -0
  122. package/vscode/src/vs/workbench/contrib/notebook/browser/media/notebookCellEditorHint.css.js +4 -0
  123. package/vscode/src/vs/workbench/contrib/notebook/browser/media/notebookCellInsertToolbar.css.js +4 -0
  124. package/vscode/src/vs/workbench/contrib/notebook/browser/media/notebookCellOutput.css.js +4 -0
  125. package/vscode/src/vs/workbench/contrib/notebook/browser/media/notebookCellStatusBar.css.js +4 -0
  126. package/vscode/src/vs/workbench/contrib/notebook/browser/media/notebookCellTitleToolbar.css.js +4 -0
  127. package/vscode/src/vs/workbench/contrib/notebook/browser/media/notebookDnd.css.js +4 -0
  128. package/vscode/src/vs/workbench/contrib/notebook/browser/media/notebookEditorStickyScroll.css.js +4 -0
  129. package/vscode/src/vs/workbench/contrib/notebook/browser/media/notebookFocusIndicator.css.js +4 -0
  130. package/vscode/src/vs/workbench/contrib/notebook/browser/media/notebookFolding.css.js +4 -0
  131. package/vscode/src/vs/workbench/contrib/notebook/browser/media/notebookKernelActionViewItem.css.js +4 -0
  132. package/vscode/src/vs/workbench/contrib/notebook/browser/media/notebookOutline.css.js +4 -0
  133. package/vscode/src/vs/workbench/contrib/notebook/browser/media/notebookToolbar.css.js +4 -0
  134. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookBrowser.js +95 -3
  135. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookEditor.js +437 -0
  136. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookEditorExtensions.js +29 -0
  137. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookEditorWidget.js +2730 -0
  138. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookIcons.js +139 -0
  139. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookLogger.js +17 -0
  140. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookOptions.js +564 -0
  141. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookViewEvents.js +27 -0
  142. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellPart.js +119 -0
  143. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellActionView.js +27 -0
  144. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellComments.js +135 -0
  145. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellContextKeys.js +178 -0
  146. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellDecorations.js +35 -0
  147. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellDnd.js +377 -0
  148. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellDragRenderer.js +97 -0
  149. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellEditorOptions.js +194 -0
  150. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellExecution.js +71 -0
  151. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellFocus.js +20 -0
  152. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellFocusIndicator.js +85 -0
  153. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellOutput.js +652 -0
  154. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellProgressBar.js +59 -0
  155. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellStatusPart.js +303 -0
  156. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellToolbarStickyScroll.js +24 -0
  157. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellToolbars.js +228 -0
  158. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/chat/cellChatActions.js +302 -0
  159. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/chat/cellChatController.js +438 -0
  160. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/chat/cellChatPart.js +45 -0
  161. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/codeCell.js +435 -0
  162. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/codeCellExecutionIcon.js +95 -0
  163. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/codeCellRunToolbar.js +107 -0
  164. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/collapsedCellInput.js +29 -0
  165. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/collapsedCellOutput.js +59 -0
  166. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/foldedCellHint.js +67 -0
  167. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/markupCell.js +430 -0
  168. package/vscode/src/vs/workbench/contrib/notebook/browser/view/notebookCellAnchor.js +54 -0
  169. package/vscode/src/vs/workbench/contrib/notebook/browser/view/notebookCellList.js +1131 -0
  170. package/vscode/src/vs/workbench/contrib/notebook/browser/view/notebookCellListView.js +21 -0
  171. package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/backLayerWebView.js +1591 -0
  172. package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/cellRenderer.js +341 -0
  173. package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/webviewPreloads.js +2155 -0
  174. package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/webviewThemeMapping.js +65 -0
  175. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/OutlineEntry.js +95 -0
  176. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/baseCellViewModel.js +507 -0
  177. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/cellEditorOptions.js +85 -0
  178. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/cellOutputViewModel.js +47 -0
  179. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/cellSelectionCollection.js +40 -0
  180. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/codeCellViewModel.js +435 -0
  181. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/eventDispatcher.js +31 -0
  182. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/foldingModel.js +257 -0
  183. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/markupCellViewModel.js +239 -0
  184. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/notebookOutlineEntryFactory.js +103 -0
  185. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/notebookOutlineProvider.js +211 -0
  186. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/notebookViewModelImpl.js +808 -0
  187. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/viewContext.js +8 -0
  188. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookEditorStickyScroll.js +381 -0
  189. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookEditorToolbar.js +527 -0
  190. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookEditorWidgetContextKeys.js +163 -0
  191. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookKernelQuickPickStrategy.js +651 -0
  192. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookKernelView.js +173 -0
  193. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookOverviewRuler.js +98 -0
  194. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookTopCellToolbar.js +62 -0
  195. package/vscode/src/vs/workbench/contrib/notebook/common/model/notebookCellOutputTextModel.js +101 -0
  196. package/vscode/src/vs/workbench/contrib/notebook/common/model/notebookCellTextModel.js +346 -0
  197. package/vscode/src/vs/workbench/contrib/notebook/common/notebookCommon.js +152 -1
  198. package/vscode/src/vs/workbench/contrib/notebook/common/notebookContextKeys.js +39 -0
  199. package/vscode/src/vs/workbench/contrib/notebook/common/notebookEditorInput.js +296 -0
  200. package/vscode/src/vs/workbench/contrib/notebook/common/notebookEditorModel.js +261 -0
  201. package/vscode/src/vs/workbench/contrib/notebook/common/notebookExecutionService.js +3 -1
  202. package/vscode/src/vs/workbench/contrib/notebook/common/notebookKernelService.js +2 -1
  203. package/vscode/src/vs/workbench/contrib/notebook/common/notebookKeymapService.js +3 -0
  204. package/vscode/src/vs/workbench/contrib/notebook/common/notebookLoggingService.js +3 -0
  205. package/vscode/src/vs/workbench/contrib/notebook/common/notebookPerformance.js +16 -0
  206. package/vscode/src/vs/workbench/contrib/notebook/common/notebookRange.js +66 -0
  207. package/vscode/src/vs/workbench/contrib/notebook/common/services/notebookWorkerService.js +4 -0
  208. package/vscode/src/vs/workbench/contrib/preferences/common/settingsEditorColorRegistry.js +130 -0
  209. package/vscode/src/vs/workbench/contrib/remote/browser/media/tunnelView.css.js +4 -0
  210. package/vscode/src/vs/workbench/contrib/remote/browser/remoteExplorer.js +847 -0
  211. package/vscode/src/vs/workbench/contrib/remote/browser/remoteIcons.js +89 -0
  212. package/vscode/src/vs/workbench/contrib/remote/browser/tunnelView.js +1942 -0
  213. package/vscode/src/vs/workbench/contrib/remote/browser/urlFinder.js +107 -0
  214. package/vscode/src/vs/workbench/contrib/search/browser/searchActionsBase.js +49 -0
  215. package/vscode/src/vs/workbench/contrib/search/browser/searchActionsFind.js +387 -0
  216. package/vscode/src/vs/workbench/contrib/search/browser/searchModel.js +2 -2
  217. package/vscode/src/vs/workbench/contrib/search/common/constants.js +66 -0
  218. package/vscode/src/vs/workbench/contrib/searchEditor/browser/constants.js +11 -0
  219. package/vscode/src/vs/workbench/contrib/snippets/browser/commands/abstractSnippetsActions.js +24 -0
  220. package/vscode/src/vs/workbench/contrib/snippets/browser/commands/fileTemplateSnippets.js +95 -0
  221. package/vscode/src/vs/workbench/contrib/tasks/common/taskDefinitionRegistry.js +6 -6
  222. package/vscode/src/vs/workbench/contrib/tasks/common/taskService.js +12 -2
  223. package/vscode/src/vs/workbench/contrib/tasks/common/tasks.js +712 -0
  224. package/vscode/src/vs/workbench/contrib/terminal/browser/terminal.js +4 -1
  225. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalProcessExtHostProxy.js +130 -0
  226. package/vscode/src/vs/workbench/contrib/terminal/common/terminal.js +2 -1
  227. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/featuredExtensionService.js +159 -0
  228. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedExtensionPoint.js +375 -0
  229. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedService.js +563 -0
  230. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/common/gettingStartedContent.js +932 -0
  231. package/vscode/src/vs/workbench/services/authentication/browser/authenticationService.js +20 -1
  232. package/vscode/src/vs/workbench/services/configurationResolver/common/configurationResolverSchema.js +205 -0
  233. package/vscode/src/vs/workbench/services/configurationResolver/common/configurationResolverUtils.js +11 -0
  234. package/vscode/src/vs/workbench/services/configurationResolver/common/variableResolver.js +9 -9
  235. package/vscode/src/vs/workbench/services/extensionManagement/browser/extensionBisect.js +1 -1
  236. package/vscode/src/vs/workbench/services/keybinding/common/keybindingEditing.js +2 -2
  237. package/vscode/src/vs/workbench/services/languageStatus/common/languageStatusService.js +24 -1
  238. package/vscode/src/vs/workbench/services/layout/browser/layoutService.js +15 -1
  239. package/vscode/src/vs/workbench/services/preferences/browser/keybindingsEditorInput.js +41 -0
  240. package/vscode/src/vs/workbench/services/preferences/browser/keybindingsEditorModel.js +588 -0
  241. package/vscode/src/vs/workbench/services/preferences/common/preferencesEditorInput.js +43 -0
  242. package/vscode/src/vs/workbench/services/remote/common/remoteExplorerService.d.ts +2 -2
  243. package/vscode/src/vs/workbench/services/remote/common/remoteExplorerService.js +190 -2
  244. package/vscode/src/vs/workbench/services/search/common/search.js +3 -3
  245. package/vscode/src/vs/workbench/services/terminal/common/embedderTerminalService.js +75 -1
  246. package/vscode/src/vs/workbench/services/timer/browser/timerService.js +240 -1
  247. package/vscode/src/vs/workbench/services/userData/browser/userDataInit.js +31 -1
  248. package/vscode/src/vs/workbench/services/userDataProfile/common/userDataProfile.js +25 -1
  249. package/vscode/src/vs/workbench/services/userDataProfile/common/userDataProfileIcons.js +75 -1
  250. package/vscode/src/vs/workbench/services/userDataSync/common/userDataSync.js +74 -4
  251. package/vscode/src/vs/workbench/services/workingCopy/common/resourceWorkingCopy.js +77 -0
  252. package/assets/break.mp3 +0 -0
  253. package/assets/chatRequestSent.mp3 +0 -0
  254. package/assets/chatResponsePending.mp3 +0 -0
  255. package/assets/chatResponseReceived1.mp3 +0 -0
  256. package/assets/chatResponseReceived2.mp3 +0 -0
  257. package/assets/chatResponseReceived3.mp3 +0 -0
  258. package/assets/chatResponseReceived4.mp3 +0 -0
  259. package/assets/clear.mp3 +0 -0
  260. package/assets/defaultIcon.png +0 -0
  261. package/assets/diffLineDeleted.mp3 +0 -0
  262. package/assets/diffLineInserted.mp3 +0 -0
  263. package/assets/diffLineModified.mp3 +0 -0
  264. package/assets/error.mp3 +0 -0
  265. package/assets/fake.html +0 -10
  266. package/assets/foldedAreas.mp3 +0 -0
  267. package/assets/format.mp3 +0 -0
  268. package/assets/index-no-csp.html +0 -1226
  269. package/assets/index.html +0 -1227
  270. package/assets/quickFixes.mp3 +0 -0
  271. package/assets/save.mp3 +0 -0
  272. package/assets/service-worker.js +0 -457
  273. package/assets/taskCompleted.mp3 +0 -0
  274. package/assets/taskFailed.mp3 +0 -0
  275. package/assets/terminalBell.mp3 +0 -0
  276. package/assets/warning.mp3 +0 -0
  277. package/assets/webWorkerExtensionHostIframe.html +0 -123
  278. package/override/vs/workbench/contrib/notebook/browser/contrib/find/findMatchDecorationModel.js +0 -2
  279. package/override/vs/workbench/contrib/notebook/browser/notebookEditorWidget.js +0 -2
  280. package/override/vs/workbench/contrib/notebook/common/notebookEditorInput.js +0 -5
  281. package/vscode/src/vs/base/parts/request/browser/request.js +0 -60
  282. package/vscode/src/vs/platform/request/browser/requestService.js +0 -28
  283. package/vscode/src/vs/platform/request/common/requestIpc.js +0 -17
  284. package/vscode/src/vs/platform/url/common/urlService.js +0 -17
  285. package/vscode/src/vs/workbench/services/configuration/common/jsonEditingService.js +0 -120
  286. package/vscode/src/vs/workbench/services/decorations/browser/decorationsService.js +0 -319
  287. package/vscode/src/vs/workbench/services/files/browser/elevatedFileService.js +0 -9
  288. package/vscode/src/vs/workbench/services/host/browser/browserHostService.js +0 -408
  289. package/vscode/src/vs/workbench/services/request/browser/requestService.js +0 -48
  290. package/vscode/src/vs/workbench/services/textfile/browser/browserTextFileService.js +0 -56
  291. package/vscode/src/vs/workbench/services/textfile/browser/textFileService.js +0 -639
  292. package/vscode/src/vs/workbench/services/textfile/common/textFileEditorModelManager.js +0 -402
  293. package/vscode/src/vs/workbench/services/textfile/common/textFileSaveParticipant.js +0 -62
  294. package/vscode/src/vs/workbench/services/themes/browser/browserHostColorSchemeService.js +0 -38
  295. package/vscode/src/vs/workbench/services/themes/common/tokenClassificationExtensionPoint.js +0 -295
  296. package/vscode/src/vs/workbench/services/url/browser/urlService.js +0 -47
  297. package/vscode/src/vs/workbench/services/views/common/treeViewsService.js +0 -20
  298. package/vscode/src/vs/workbench/services/workspaces/common/canonicalUriService.js +0 -19
@@ -0,0 +1,855 @@
1
+ import { __decorate, __param } from '../../../../../../../external/tslib/tslib.es6.js';
2
+ import { isSafari } from 'monaco-editor/esm/vs/base/browser/browser.js';
3
+ import { BrowserFeatures } from 'monaco-editor/esm/vs/base/browser/canIUse.js';
4
+ import * as dom from 'monaco-editor/esm/vs/base/browser/dom.js';
5
+ import { StandardMouseEvent } from 'monaco-editor/esm/vs/base/browser/mouseEvent.js';
6
+ import { Action, SubmenuAction, Separator } from 'monaco-editor/esm/vs/base/common/actions.js';
7
+ import { distinct } from 'monaco-editor/esm/vs/base/common/arrays.js';
8
+ import { RunOnceScheduler, timeout } from 'monaco-editor/esm/vs/base/common/async.js';
9
+ import { memoize } from 'monaco-editor/esm/vs/base/common/decorators.js';
10
+ import { onUnexpectedError } from 'monaco-editor/esm/vs/base/common/errors.js';
11
+ import { MarkdownString } from 'monaco-editor/esm/vs/base/common/htmlContent.js';
12
+ import { dispose, disposeIfDisposable } from 'monaco-editor/esm/vs/base/common/lifecycle.js';
13
+ import * as platform from 'monaco-editor/esm/vs/base/common/platform.js';
14
+ import Severity from 'monaco-editor/esm/vs/base/common/severity.js';
15
+ import { noBreakWhitespace } from 'monaco-editor/esm/vs/base/common/strings.js';
16
+ import { ThemeIcon } from 'monaco-editor/esm/vs/base/common/themables.js';
17
+ import { generateUuid } from 'monaco-editor/esm/vs/base/common/uuid.js';
18
+ import { Range } from 'monaco-editor/esm/vs/editor/common/core/range.js';
19
+ import { ILanguageService } from 'monaco-editor/esm/vs/editor/common/languages/language.js';
20
+ import { GlyphMarginLane, OverviewRulerLane } from 'monaco-editor/esm/vs/editor/common/model.js';
21
+ import * as nls from 'monaco-editor/esm/vs/nls.js';
22
+ import { IConfigurationService } from 'monaco-editor/esm/vs/platform/configuration/common/configuration.js';
23
+ import { IContextKeyService } from 'monaco-editor/esm/vs/platform/contextkey/common/contextkey.js';
24
+ import { IContextMenuService } from 'monaco-editor/esm/vs/platform/contextview/browser/contextView.js';
25
+ import '../../../../../../../override/vs/platform/dialogs/common/dialogs.js';
26
+ import { IInstantiationService } from 'monaco-editor/esm/vs/platform/instantiation/common/instantiation.js';
27
+ import { ILabelService } from 'monaco-editor/esm/vs/platform/label/common/label.js';
28
+ import { registerColor } from 'monaco-editor/esm/vs/platform/theme/common/colorRegistry.js';
29
+ import { registerThemingParticipant, themeColorFromId } from 'monaco-editor/esm/vs/platform/theme/common/themeService.js';
30
+ import { GutterActionsRegistry } from '../../codeEditor/browser/editorLineNumberMenu.js';
31
+ import { getBreakpointMessageAndIcon } from './breakpointsView.js';
32
+ import { BreakpointWidget } from './breakpointWidget.js';
33
+ import { debugBreakpointHint, allBreakpoints, debugBreakpointUnsupported, breakpoint, debugStackframeFocused, debugStackframe } from './debugIcons.js';
34
+ import { IDebugService, BREAKPOINT_EDITOR_CONTRIBUTION_ID, CONTEXT_BREAKPOINT_WIDGET_VISIBLE, DebuggerString } from '../common/debug.js';
35
+ import { IDialogService } from '../../../../platform/dialogs/common/dialogs.js';
36
+ const $ = dom.$;
37
+ const breakpointHelperDecoration = {
38
+ description: 'breakpoint-helper-decoration',
39
+ glyphMarginClassName: ThemeIcon.asClassName(debugBreakpointHint),
40
+ glyphMargin: { position: GlyphMarginLane.Right },
41
+ stickiness: 1
42
+ };
43
+ function createBreakpointDecorations(accessor, model, breakpoints, state, breakpointsActivated, showBreakpointsInOverviewRuler) {
44
+ const result = [];
45
+ breakpoints.forEach((breakpoint) => {
46
+ if (breakpoint.lineNumber > model.getLineCount()) {
47
+ return;
48
+ }
49
+ const hasOtherBreakpointsOnLine = ( breakpoints.some(bp => bp !== breakpoint && bp.lineNumber === breakpoint.lineNumber));
50
+ const column = model.getLineFirstNonWhitespaceColumn(breakpoint.lineNumber);
51
+ const range = model.validateRange(breakpoint.column ? ( new Range(
52
+ breakpoint.lineNumber,
53
+ breakpoint.column,
54
+ breakpoint.lineNumber,
55
+ breakpoint.column + 1
56
+ ))
57
+ : ( new Range(breakpoint.lineNumber, column, breakpoint.lineNumber, column + 1))
58
+ );
59
+ result.push({
60
+ options: getBreakpointDecorationOptions(accessor, model, breakpoint, state, breakpointsActivated, showBreakpointsInOverviewRuler, hasOtherBreakpointsOnLine),
61
+ range
62
+ });
63
+ });
64
+ return result;
65
+ }
66
+ function getBreakpointDecorationOptions(accessor, model, breakpoint, state, breakpointsActivated, showBreakpointsInOverviewRuler, hasOtherBreakpointsOnLine) {
67
+ const debugService = accessor.get(IDebugService);
68
+ const languageService = accessor.get(ILanguageService);
69
+ const { icon, message, showAdapterUnverifiedMessage } = getBreakpointMessageAndIcon(state, breakpointsActivated, breakpoint, undefined);
70
+ let glyphMarginHoverMessage;
71
+ let unverifiedMessage;
72
+ if (showAdapterUnverifiedMessage) {
73
+ let langId;
74
+ unverifiedMessage = ( debugService.getModel().getSessions().map(s => {
75
+ const dbg = debugService.getAdapterManager().getDebugger(s.configuration.type);
76
+ const message = dbg?.strings?.[DebuggerString.UnverifiedBreakpoints];
77
+ if (message) {
78
+ if (!langId) {
79
+ langId = languageService.guessLanguageIdByFilepathOrFirstLine(breakpoint.uri) ?? undefined;
80
+ }
81
+ return langId && dbg.interestedInLanguage(langId) ? message : undefined;
82
+ }
83
+ return undefined;
84
+ }))
85
+ .find(messages => !!messages);
86
+ }
87
+ if (message) {
88
+ glyphMarginHoverMessage = ( new MarkdownString(undefined, { isTrusted: true, supportThemeIcons: true }));
89
+ if (breakpoint.condition || breakpoint.hitCondition) {
90
+ const languageId = model.getLanguageId();
91
+ glyphMarginHoverMessage.appendCodeblock(languageId, message);
92
+ if (unverifiedMessage) {
93
+ glyphMarginHoverMessage.appendMarkdown('$(warning) ' + unverifiedMessage);
94
+ }
95
+ }
96
+ else {
97
+ glyphMarginHoverMessage.appendText(message);
98
+ if (unverifiedMessage) {
99
+ glyphMarginHoverMessage.appendMarkdown('\n\n$(warning) ' + unverifiedMessage);
100
+ }
101
+ }
102
+ }
103
+ else if (unverifiedMessage) {
104
+ glyphMarginHoverMessage = ( new MarkdownString(undefined, { isTrusted: true, supportThemeIcons: true })).appendMarkdown(unverifiedMessage);
105
+ }
106
+ let overviewRulerDecoration = null;
107
+ if (showBreakpointsInOverviewRuler) {
108
+ overviewRulerDecoration = {
109
+ color: themeColorFromId(debugIconBreakpointForeground),
110
+ position: OverviewRulerLane.Left
111
+ };
112
+ }
113
+ const renderInline = breakpoint.column && (hasOtherBreakpointsOnLine || breakpoint.column > model.getLineFirstNonWhitespaceColumn(breakpoint.lineNumber));
114
+ return {
115
+ description: 'breakpoint-decoration',
116
+ glyphMargin: { position: GlyphMarginLane.Right },
117
+ glyphMarginClassName: ThemeIcon.asClassName(icon),
118
+ glyphMarginHoverMessage,
119
+ stickiness: 1 ,
120
+ before: renderInline ? {
121
+ content: noBreakWhitespace,
122
+ inlineClassName: `debug-breakpoint-placeholder`,
123
+ inlineClassNameAffectsLetterSpacing: true
124
+ } : undefined,
125
+ overviewRuler: overviewRulerDecoration,
126
+ zIndex: 9999
127
+ };
128
+ }
129
+ async function requestBreakpointCandidateLocations(model, lineNumbers, session) {
130
+ if (!session.capabilities.supportsBreakpointLocationsRequest) {
131
+ return [];
132
+ }
133
+ return await Promise.all(( distinct(lineNumbers, l => l).map(async (lineNumber) => {
134
+ try {
135
+ return { lineNumber, positions: await session.breakpointsLocations(model.uri, lineNumber) };
136
+ }
137
+ catch {
138
+ return { lineNumber, positions: [] };
139
+ }
140
+ })));
141
+ }
142
+ function createCandidateDecorations(model, breakpointDecorations, lineBreakpoints) {
143
+ const result = [];
144
+ for (const { positions, lineNumber } of lineBreakpoints) {
145
+ if (positions.length === 0) {
146
+ continue;
147
+ }
148
+ const firstColumn = model.getLineFirstNonWhitespaceColumn(lineNumber);
149
+ const lastColumn = model.getLineLastNonWhitespaceColumn(lineNumber);
150
+ positions.forEach(p => {
151
+ const range = ( new Range(p.lineNumber, p.column, p.lineNumber, p.column + 1));
152
+ if ((p.column <= firstColumn && !( breakpointDecorations.some(
153
+ bp => bp.range.startColumn > firstColumn && bp.range.startLineNumber === p.lineNumber
154
+ ))) || p.column > lastColumn) {
155
+ return;
156
+ }
157
+ const breakpointAtPosition = breakpointDecorations.find(bpd => bpd.range.equalsRange(range));
158
+ if (breakpointAtPosition && breakpointAtPosition.inlineWidget) {
159
+ return;
160
+ }
161
+ result.push({
162
+ range,
163
+ options: {
164
+ description: 'breakpoint-placeholder-decoration',
165
+ stickiness: 1 ,
166
+ before: breakpointAtPosition ? undefined : {
167
+ content: noBreakWhitespace,
168
+ inlineClassName: `debug-breakpoint-placeholder`,
169
+ inlineClassNameAffectsLetterSpacing: true
170
+ },
171
+ },
172
+ breakpoint: breakpointAtPosition ? breakpointAtPosition.breakpoint : undefined
173
+ });
174
+ });
175
+ }
176
+ return result;
177
+ }
178
+ let BreakpointEditorContribution = class BreakpointEditorContribution {
179
+ constructor(editor, debugService, contextMenuService, instantiationService, contextKeyService, dialogService, configurationService, labelService) {
180
+ this.editor = editor;
181
+ this.debugService = debugService;
182
+ this.contextMenuService = contextMenuService;
183
+ this.instantiationService = instantiationService;
184
+ this.dialogService = dialogService;
185
+ this.configurationService = configurationService;
186
+ this.labelService = labelService;
187
+ this.breakpointHintDecoration = null;
188
+ this.toDispose = [];
189
+ this.ignoreDecorationsChangedEvent = false;
190
+ this.ignoreBreakpointsChangeEvent = false;
191
+ this.breakpointDecorations = [];
192
+ this.candidateDecorations = [];
193
+ this.breakpointWidgetVisible = CONTEXT_BREAKPOINT_WIDGET_VISIBLE.bindTo(contextKeyService);
194
+ this.setDecorationsScheduler = ( new RunOnceScheduler(() => this.setDecorations(), 30));
195
+ this.setDecorationsScheduler.schedule();
196
+ this.registerListeners();
197
+ }
198
+ getContextMenuActionsAtPosition(lineNumber, model) {
199
+ if (!this.debugService.getAdapterManager().hasEnabledDebuggers()) {
200
+ return [];
201
+ }
202
+ if (!this.debugService.canSetBreakpointsIn(model)) {
203
+ return [];
204
+ }
205
+ const breakpoints = this.debugService.getModel().getBreakpoints({ lineNumber, uri: model.uri });
206
+ return this.getContextMenuActions(breakpoints, model.uri, lineNumber);
207
+ }
208
+ registerListeners() {
209
+ this.toDispose.push(this.editor.onMouseDown(async (e) => {
210
+ if (!this.debugService.getAdapterManager().hasEnabledDebuggers()) {
211
+ return;
212
+ }
213
+ const model = this.editor.getModel();
214
+ if (!e.target.position
215
+ || !model
216
+ || e.target.type !== 2
217
+ || e.target.detail.isAfterLines
218
+ || !this.marginFreeFromNonDebugDecorations(e.target.position.lineNumber)
219
+ && !e.target.element?.className.includes('breakpoint')) {
220
+ return;
221
+ }
222
+ const canSetBreakpoints = this.debugService.canSetBreakpointsIn(model);
223
+ const lineNumber = e.target.position.lineNumber;
224
+ const uri = model.uri;
225
+ if (e.event.rightButton || (platform.isMacintosh && e.event.leftButton && e.event.ctrlKey)) {
226
+ return;
227
+ }
228
+ else {
229
+ const breakpoints = this.debugService.getModel().getBreakpoints({ uri, lineNumber });
230
+ if (breakpoints.length) {
231
+ const isShiftPressed = e.event.shiftKey;
232
+ const enabled = ( breakpoints.some(bp => bp.enabled));
233
+ if (isShiftPressed) {
234
+ breakpoints.forEach(bp => this.debugService.enableOrDisableBreakpoints(!enabled, bp));
235
+ }
236
+ else if (!platform.isLinux && ( breakpoints.some(bp => !!bp.condition || !!bp.logMessage || !!bp.hitCondition))) {
237
+ const logPoint = breakpoints.every(bp => !!bp.logMessage);
238
+ const breakpointType = logPoint ? ( nls.localizeWithPath(
239
+ 'vs/workbench/contrib/debug/browser/breakpointEditorContribution',
240
+ 'logPoint',
241
+ "Logpoint"
242
+ )) : ( nls.localizeWithPath(
243
+ 'vs/workbench/contrib/debug/browser/breakpointEditorContribution',
244
+ 'breakpoint',
245
+ "Breakpoint"
246
+ ));
247
+ const disabledBreakpointDialogMessage = ( nls.localizeWithPath(
248
+ 'vs/workbench/contrib/debug/browser/breakpointEditorContribution',
249
+ 'breakpointHasConditionDisabled',
250
+ "This {0} has a {1} that will get lost on remove. Consider enabling the {0} instead.",
251
+ breakpointType.toLowerCase(),
252
+ logPoint ? ( nls.localizeWithPath(
253
+ 'vs/workbench/contrib/debug/browser/breakpointEditorContribution',
254
+ 'message',
255
+ "message"
256
+ )) : ( nls.localizeWithPath(
257
+ 'vs/workbench/contrib/debug/browser/breakpointEditorContribution',
258
+ 'condition',
259
+ "condition"
260
+ ))
261
+ ));
262
+ const enabledBreakpointDialogMessage = ( nls.localizeWithPath(
263
+ 'vs/workbench/contrib/debug/browser/breakpointEditorContribution',
264
+ 'breakpointHasConditionEnabled',
265
+ "This {0} has a {1} that will get lost on remove. Consider disabling the {0} instead.",
266
+ breakpointType.toLowerCase(),
267
+ logPoint ? ( nls.localizeWithPath(
268
+ 'vs/workbench/contrib/debug/browser/breakpointEditorContribution',
269
+ 'message',
270
+ "message"
271
+ )) : ( nls.localizeWithPath(
272
+ 'vs/workbench/contrib/debug/browser/breakpointEditorContribution',
273
+ 'condition',
274
+ "condition"
275
+ ))
276
+ ));
277
+ await this.dialogService.prompt({
278
+ type: Severity.Info,
279
+ message: enabled ? enabledBreakpointDialogMessage : disabledBreakpointDialogMessage,
280
+ buttons: [
281
+ {
282
+ label: ( nls.localizeWithPath(
283
+ 'vs/workbench/contrib/debug/browser/breakpointEditorContribution',
284
+ { key: 'removeLogPoint', comment: ['&& denotes a mnemonic'] },
285
+ "&&Remove {0}",
286
+ breakpointType
287
+ )),
288
+ run: () => breakpoints.forEach(bp => this.debugService.removeBreakpoints(bp.getId()))
289
+ },
290
+ {
291
+ label: ( nls.localizeWithPath(
292
+ 'vs/workbench/contrib/debug/browser/breakpointEditorContribution',
293
+ 'disableLogPoint',
294
+ "{0} {1}",
295
+ enabled ? ( nls.localizeWithPath(
296
+ 'vs/workbench/contrib/debug/browser/breakpointEditorContribution',
297
+ { key: 'disable', comment: ['&& denotes a mnemonic'] },
298
+ "&&Disable"
299
+ )) : ( nls.localizeWithPath(
300
+ 'vs/workbench/contrib/debug/browser/breakpointEditorContribution',
301
+ { key: 'enable', comment: ['&& denotes a mnemonic'] },
302
+ "&&Enable"
303
+ )),
304
+ breakpointType
305
+ )),
306
+ run: () => breakpoints.forEach(bp => this.debugService.enableOrDisableBreakpoints(!enabled, bp))
307
+ }
308
+ ],
309
+ cancelButton: true
310
+ });
311
+ }
312
+ else {
313
+ if (!enabled) {
314
+ breakpoints.forEach(bp => this.debugService.enableOrDisableBreakpoints(!enabled, bp));
315
+ }
316
+ else {
317
+ breakpoints.forEach(bp => this.debugService.removeBreakpoints(bp.getId()));
318
+ }
319
+ }
320
+ }
321
+ else if (canSetBreakpoints) {
322
+ this.debugService.addBreakpoints(uri, [{ lineNumber }]);
323
+ }
324
+ }
325
+ }));
326
+ if (!(BrowserFeatures.pointerEvents && isSafari)) {
327
+ this.toDispose.push(this.editor.onMouseMove((e) => {
328
+ if (!this.debugService.getAdapterManager().hasEnabledDebuggers()) {
329
+ return;
330
+ }
331
+ let showBreakpointHintAtLineNumber = -1;
332
+ const model = this.editor.getModel();
333
+ if (model && e.target.position && ((e.target.type === 2 || e.target.type === 3) ) && this.debugService.canSetBreakpointsIn(model) &&
334
+ this.marginFreeFromNonDebugDecorations(e.target.position.lineNumber)) {
335
+ const data = e.target.detail;
336
+ if (!data.isAfterLines) {
337
+ showBreakpointHintAtLineNumber = e.target.position.lineNumber;
338
+ }
339
+ }
340
+ this.ensureBreakpointHintDecoration(showBreakpointHintAtLineNumber);
341
+ }));
342
+ this.toDispose.push(this.editor.onMouseLeave(() => {
343
+ this.ensureBreakpointHintDecoration(-1);
344
+ }));
345
+ }
346
+ this.toDispose.push(this.editor.onDidChangeModel(async () => {
347
+ this.closeBreakpointWidget();
348
+ await this.setDecorations();
349
+ }));
350
+ this.toDispose.push(this.debugService.getModel().onDidChangeBreakpoints(() => {
351
+ if (!this.ignoreBreakpointsChangeEvent && !this.setDecorationsScheduler.isScheduled()) {
352
+ this.setDecorationsScheduler.schedule();
353
+ }
354
+ }));
355
+ this.toDispose.push(this.debugService.onDidChangeState(() => {
356
+ if (!this.setDecorationsScheduler.isScheduled()) {
357
+ this.setDecorationsScheduler.schedule();
358
+ }
359
+ }));
360
+ this.toDispose.push(this.editor.onDidChangeModelDecorations(() => this.onModelDecorationsChanged()));
361
+ this.toDispose.push(this.configurationService.onDidChangeConfiguration(async (e) => {
362
+ if (e.affectsConfiguration('debug.showBreakpointsInOverviewRuler') || e.affectsConfiguration('debug.showInlineBreakpointCandidates')) {
363
+ await this.setDecorations();
364
+ }
365
+ }));
366
+ }
367
+ getContextMenuActions(breakpoints, uri, lineNumber, column) {
368
+ const actions = [];
369
+ if (breakpoints.length === 1) {
370
+ const breakpointType = breakpoints[0].logMessage ? ( nls.localizeWithPath(
371
+ 'vs/workbench/contrib/debug/browser/breakpointEditorContribution',
372
+ 'logPoint',
373
+ "Logpoint"
374
+ )) : ( nls.localizeWithPath(
375
+ 'vs/workbench/contrib/debug/browser/breakpointEditorContribution',
376
+ 'breakpoint',
377
+ "Breakpoint"
378
+ ));
379
+ actions.push(( new Action('debug.removeBreakpoint', ( nls.localizeWithPath(
380
+ 'vs/workbench/contrib/debug/browser/breakpointEditorContribution',
381
+ 'removeBreakpoint',
382
+ "Remove {0}",
383
+ breakpointType
384
+ )), undefined, true, async () => {
385
+ await this.debugService.removeBreakpoints(breakpoints[0].getId());
386
+ })));
387
+ actions.push(( new Action('workbench.debug.action.editBreakpointAction', ( nls.localizeWithPath(
388
+ 'vs/workbench/contrib/debug/browser/breakpointEditorContribution',
389
+ 'editBreakpoint',
390
+ "Edit {0}...",
391
+ breakpointType
392
+ )), undefined, true, () => Promise.resolve(this.showBreakpointWidget(breakpoints[0].lineNumber, breakpoints[0].column)))));
393
+ actions.push(( new Action(
394
+ `workbench.debug.viewlet.action.toggleBreakpoint`,
395
+ breakpoints[0].enabled ? ( nls.localizeWithPath(
396
+ 'vs/workbench/contrib/debug/browser/breakpointEditorContribution',
397
+ 'disableBreakpoint',
398
+ "Disable {0}",
399
+ breakpointType
400
+ )) : ( nls.localizeWithPath(
401
+ 'vs/workbench/contrib/debug/browser/breakpointEditorContribution',
402
+ 'enableBreakpoint',
403
+ "Enable {0}",
404
+ breakpointType
405
+ )),
406
+ undefined,
407
+ true,
408
+ () => this.debugService.enableOrDisableBreakpoints(!breakpoints[0].enabled, breakpoints[0])
409
+ )));
410
+ }
411
+ else if (breakpoints.length > 1) {
412
+ const sorted = breakpoints.slice().sort((first, second) => (first.column && second.column) ? first.column - second.column : 1);
413
+ actions.push(( new SubmenuAction('debug.removeBreakpoints', ( nls.localizeWithPath(
414
+ 'vs/workbench/contrib/debug/browser/breakpointEditorContribution',
415
+ 'removeBreakpoints',
416
+ "Remove Breakpoints"
417
+ )), ( sorted.map(bp => ( new Action('removeInlineBreakpoint', bp.column ? ( nls.localizeWithPath(
418
+ 'vs/workbench/contrib/debug/browser/breakpointEditorContribution',
419
+ 'removeInlineBreakpointOnColumn',
420
+ "Remove Inline Breakpoint on Column {0}",
421
+ bp.column
422
+ )) : ( nls.localizeWithPath(
423
+ 'vs/workbench/contrib/debug/browser/breakpointEditorContribution',
424
+ 'removeLineBreakpoint',
425
+ "Remove Line Breakpoint"
426
+ )), undefined, true, () => this.debugService.removeBreakpoints(bp.getId()))))))));
427
+ actions.push(( new SubmenuAction('debug.editBreakpoints', ( nls.localizeWithPath(
428
+ 'vs/workbench/contrib/debug/browser/breakpointEditorContribution',
429
+ 'editBreakpoints',
430
+ "Edit Breakpoints"
431
+ )), ( sorted.map(bp => ( new Action('editBreakpoint', bp.column ? ( nls.localizeWithPath(
432
+ 'vs/workbench/contrib/debug/browser/breakpointEditorContribution',
433
+ 'editInlineBreakpointOnColumn',
434
+ "Edit Inline Breakpoint on Column {0}",
435
+ bp.column
436
+ )) : ( nls.localizeWithPath(
437
+ 'vs/workbench/contrib/debug/browser/breakpointEditorContribution',
438
+ 'editLineBreakpoint',
439
+ "Edit Line Breakpoint"
440
+ )), undefined, true, () => Promise.resolve(this.showBreakpointWidget(bp.lineNumber, bp.column)))))))));
441
+ actions.push(( new SubmenuAction('debug.enableDisableBreakpoints', ( nls.localizeWithPath(
442
+ 'vs/workbench/contrib/debug/browser/breakpointEditorContribution',
443
+ 'enableDisableBreakpoints',
444
+ "Enable/Disable Breakpoints"
445
+ )), ( sorted.map(bp => ( new Action(
446
+ bp.enabled ? 'disableColumnBreakpoint' : 'enableColumnBreakpoint',
447
+ bp.enabled ? (bp.column ? ( nls.localizeWithPath(
448
+ 'vs/workbench/contrib/debug/browser/breakpointEditorContribution',
449
+ 'disableInlineColumnBreakpoint',
450
+ "Disable Inline Breakpoint on Column {0}",
451
+ bp.column
452
+ )) : ( nls.localizeWithPath(
453
+ 'vs/workbench/contrib/debug/browser/breakpointEditorContribution',
454
+ 'disableBreakpointOnLine',
455
+ "Disable Line Breakpoint"
456
+ )))
457
+ : (bp.column ? ( nls.localizeWithPath(
458
+ 'vs/workbench/contrib/debug/browser/breakpointEditorContribution',
459
+ 'enableBreakpoints',
460
+ "Enable Inline Breakpoint on Column {0}",
461
+ bp.column
462
+ )) : ( nls.localizeWithPath(
463
+ 'vs/workbench/contrib/debug/browser/breakpointEditorContribution',
464
+ 'enableBreakpointOnLine',
465
+ "Enable Line Breakpoint"
466
+ ))),
467
+ undefined,
468
+ true,
469
+ () => this.debugService.enableOrDisableBreakpoints(!bp.enabled, bp)
470
+ )))))));
471
+ }
472
+ else {
473
+ actions.push(( new Action('addBreakpoint', ( nls.localizeWithPath(
474
+ 'vs/workbench/contrib/debug/browser/breakpointEditorContribution',
475
+ 'addBreakpoint',
476
+ "Add Breakpoint"
477
+ )), undefined, true, () => this.debugService.addBreakpoints(uri, [{ lineNumber, column }]))));
478
+ actions.push(( new Action('addConditionalBreakpoint', ( nls.localizeWithPath(
479
+ 'vs/workbench/contrib/debug/browser/breakpointEditorContribution',
480
+ 'addConditionalBreakpoint',
481
+ "Add Conditional Breakpoint..."
482
+ )), undefined, true, () => Promise.resolve(this.showBreakpointWidget(lineNumber, column, 0 )))));
483
+ actions.push(( new Action('addLogPoint', ( nls.localizeWithPath(
484
+ 'vs/workbench/contrib/debug/browser/breakpointEditorContribution',
485
+ 'addLogPoint',
486
+ "Add Logpoint..."
487
+ )), undefined, true, () => Promise.resolve(this.showBreakpointWidget(lineNumber, column, 2 )))));
488
+ }
489
+ if (this.debugService.state === 2 ) {
490
+ actions.push(( new Separator()));
491
+ actions.push(( new Action('runToLine', ( nls.localizeWithPath(
492
+ 'vs/workbench/contrib/debug/browser/breakpointEditorContribution',
493
+ 'runToLine',
494
+ "Run to Line"
495
+ )), undefined, true, () => this.debugService.runTo(uri, lineNumber).catch(onUnexpectedError))));
496
+ }
497
+ return actions;
498
+ }
499
+ marginFreeFromNonDebugDecorations(line) {
500
+ const decorations = this.editor.getLineDecorations(line);
501
+ if (decorations) {
502
+ for (const { options } of decorations) {
503
+ const clz = options.glyphMarginClassName;
504
+ if (clz && (!clz.includes('codicon-') || clz.includes('codicon-testing-') || clz.includes('codicon-merge-') || clz.includes('codicon-arrow-') || clz.includes('codicon-loading') || clz.includes('codicon-fold') || clz.includes('codicon-inline-chat'))) {
505
+ return false;
506
+ }
507
+ }
508
+ }
509
+ return true;
510
+ }
511
+ ensureBreakpointHintDecoration(showBreakpointHintAtLineNumber) {
512
+ this.editor.changeDecorations((accessor) => {
513
+ if (this.breakpointHintDecoration) {
514
+ accessor.removeDecoration(this.breakpointHintDecoration);
515
+ this.breakpointHintDecoration = null;
516
+ }
517
+ if (showBreakpointHintAtLineNumber !== -1) {
518
+ this.breakpointHintDecoration = accessor.addDecoration({
519
+ startLineNumber: showBreakpointHintAtLineNumber,
520
+ startColumn: 1,
521
+ endLineNumber: showBreakpointHintAtLineNumber,
522
+ endColumn: 1
523
+ }, breakpointHelperDecoration);
524
+ }
525
+ });
526
+ }
527
+ async setDecorations() {
528
+ if (!this.editor.hasModel()) {
529
+ return;
530
+ }
531
+ const setCandidateDecorations = (changeAccessor, desiredCandidatePositions) => {
532
+ const desiredCandidateDecorations = createCandidateDecorations(model, this.breakpointDecorations, desiredCandidatePositions);
533
+ const candidateDecorationIds = changeAccessor.deltaDecorations(( this.candidateDecorations.map(c => c.decorationId)), desiredCandidateDecorations);
534
+ this.candidateDecorations.forEach(candidate => {
535
+ candidate.inlineWidget.dispose();
536
+ });
537
+ this.candidateDecorations = ( candidateDecorationIds.map((decorationId, index) => {
538
+ const candidate = desiredCandidateDecorations[index];
539
+ const icon = candidate.breakpoint ? getBreakpointMessageAndIcon(this.debugService.state, this.debugService.getModel().areBreakpointsActivated(), candidate.breakpoint, this.labelService).icon : breakpoint.disabled;
540
+ const contextMenuActions = () => this.getContextMenuActions(candidate.breakpoint ? [candidate.breakpoint] : [], activeCodeEditor.getModel().uri, candidate.range.startLineNumber, candidate.range.startColumn);
541
+ const inlineWidget = ( new InlineBreakpointWidget(
542
+ activeCodeEditor,
543
+ decorationId,
544
+ ThemeIcon.asClassName(icon),
545
+ candidate.breakpoint,
546
+ this.debugService,
547
+ this.contextMenuService,
548
+ contextMenuActions
549
+ ));
550
+ return {
551
+ decorationId,
552
+ inlineWidget
553
+ };
554
+ }));
555
+ };
556
+ const activeCodeEditor = this.editor;
557
+ const model = activeCodeEditor.getModel();
558
+ const breakpoints = this.debugService.getModel().getBreakpoints({ uri: model.uri });
559
+ const debugSettings = this.configurationService.getValue('debug');
560
+ const desiredBreakpointDecorations = this.instantiationService.invokeFunction(accessor => createBreakpointDecorations(accessor, model, breakpoints, this.debugService.state, this.debugService.getModel().areBreakpointsActivated(), debugSettings.showBreakpointsInOverviewRuler));
561
+ const session = this.debugService.getViewModel().focusedSession;
562
+ const desiredCandidatePositions = debugSettings.showInlineBreakpointCandidates && session ? requestBreakpointCandidateLocations(this.editor.getModel(), ( desiredBreakpointDecorations.map(bp => bp.range.startLineNumber)), session) : Promise.resolve([]);
563
+ const desiredCandidatePositionsRaced = await Promise.race([desiredCandidatePositions, timeout(500).then(() => undefined)]);
564
+ if (desiredCandidatePositionsRaced === undefined) {
565
+ desiredCandidatePositions.then(v => activeCodeEditor.changeDecorations(d => setCandidateDecorations(d, v)));
566
+ }
567
+ try {
568
+ this.ignoreDecorationsChangedEvent = true;
569
+ activeCodeEditor.changeDecorations((changeAccessor) => {
570
+ const decorationIds = changeAccessor.deltaDecorations(( this.breakpointDecorations.map(bpd => bpd.decorationId)), desiredBreakpointDecorations);
571
+ this.breakpointDecorations.forEach(bpd => {
572
+ bpd.inlineWidget?.dispose();
573
+ });
574
+ this.breakpointDecorations = ( decorationIds.map((decorationId, index) => {
575
+ let inlineWidget = undefined;
576
+ const breakpoint = breakpoints[index];
577
+ if (desiredBreakpointDecorations[index].options.before) {
578
+ const contextMenuActions = () => this.getContextMenuActions([breakpoint], activeCodeEditor.getModel().uri, breakpoint.lineNumber, breakpoint.column);
579
+ inlineWidget = ( new InlineBreakpointWidget(
580
+ activeCodeEditor,
581
+ decorationId,
582
+ desiredBreakpointDecorations[index].options.glyphMarginClassName,
583
+ breakpoint,
584
+ this.debugService,
585
+ this.contextMenuService,
586
+ contextMenuActions
587
+ ));
588
+ }
589
+ return {
590
+ decorationId,
591
+ breakpoint,
592
+ range: desiredBreakpointDecorations[index].range,
593
+ inlineWidget
594
+ };
595
+ }));
596
+ if (desiredCandidatePositionsRaced) {
597
+ setCandidateDecorations(changeAccessor, desiredCandidatePositionsRaced);
598
+ }
599
+ });
600
+ }
601
+ finally {
602
+ this.ignoreDecorationsChangedEvent = false;
603
+ }
604
+ for (const d of this.breakpointDecorations) {
605
+ if (d.inlineWidget) {
606
+ this.editor.layoutContentWidget(d.inlineWidget);
607
+ }
608
+ }
609
+ }
610
+ async onModelDecorationsChanged() {
611
+ if (this.breakpointDecorations.length === 0 || this.ignoreDecorationsChangedEvent || !this.editor.hasModel()) {
612
+ return;
613
+ }
614
+ let somethingChanged = false;
615
+ const model = this.editor.getModel();
616
+ this.breakpointDecorations.forEach(breakpointDecoration => {
617
+ if (somethingChanged) {
618
+ return;
619
+ }
620
+ const newBreakpointRange = model.getDecorationRange(breakpointDecoration.decorationId);
621
+ if (newBreakpointRange && (!breakpointDecoration.range.equalsRange(newBreakpointRange))) {
622
+ somethingChanged = true;
623
+ breakpointDecoration.range = newBreakpointRange;
624
+ }
625
+ });
626
+ if (!somethingChanged) {
627
+ return;
628
+ }
629
+ const data = ( new Map());
630
+ for (let i = 0, len = this.breakpointDecorations.length; i < len; i++) {
631
+ const breakpointDecoration = this.breakpointDecorations[i];
632
+ const decorationRange = model.getDecorationRange(breakpointDecoration.decorationId);
633
+ if (decorationRange) {
634
+ if (breakpointDecoration.breakpoint) {
635
+ data.set(breakpointDecoration.breakpoint.getId(), {
636
+ lineNumber: decorationRange.startLineNumber,
637
+ column: breakpointDecoration.breakpoint.column ? decorationRange.startColumn : undefined,
638
+ });
639
+ }
640
+ }
641
+ }
642
+ try {
643
+ this.ignoreBreakpointsChangeEvent = true;
644
+ await this.debugService.updateBreakpoints(model.uri, data, true);
645
+ }
646
+ finally {
647
+ this.ignoreBreakpointsChangeEvent = false;
648
+ }
649
+ }
650
+ showBreakpointWidget(lineNumber, column, context) {
651
+ this.breakpointWidget?.dispose();
652
+ this.breakpointWidget = this.instantiationService.createInstance(BreakpointWidget, this.editor, lineNumber, column, context);
653
+ this.breakpointWidget.show({ lineNumber, column: 1 });
654
+ this.breakpointWidgetVisible.set(true);
655
+ }
656
+ closeBreakpointWidget() {
657
+ if (this.breakpointWidget) {
658
+ this.breakpointWidget.dispose();
659
+ this.breakpointWidget = undefined;
660
+ this.breakpointWidgetVisible.reset();
661
+ this.editor.focus();
662
+ }
663
+ }
664
+ dispose() {
665
+ this.breakpointWidget?.dispose();
666
+ this.editor.removeDecorations(( this.breakpointDecorations.map(bpd => bpd.decorationId)));
667
+ dispose(this.toDispose);
668
+ }
669
+ };
670
+ BreakpointEditorContribution = ( __decorate([
671
+ ( __param(1, IDebugService)),
672
+ ( __param(2, IContextMenuService)),
673
+ ( __param(3, IInstantiationService)),
674
+ ( __param(4, IContextKeyService)),
675
+ ( __param(5, IDialogService)),
676
+ ( __param(6, IConfigurationService)),
677
+ ( __param(7, ILabelService))
678
+ ], BreakpointEditorContribution));
679
+ GutterActionsRegistry.registerGutterActionsGenerator(({ lineNumber, editor, accessor }, result) => {
680
+ const model = editor.getModel();
681
+ const debugService = accessor.get(IDebugService);
682
+ if (!model || !debugService.getAdapterManager().hasEnabledDebuggers() || !debugService.canSetBreakpointsIn(model)) {
683
+ return;
684
+ }
685
+ const breakpointEditorContribution = editor.getContribution(BREAKPOINT_EDITOR_CONTRIBUTION_ID);
686
+ if (!breakpointEditorContribution) {
687
+ return;
688
+ }
689
+ const actions = breakpointEditorContribution.getContextMenuActionsAtPosition(lineNumber, model);
690
+ for (const action of actions) {
691
+ result.push(action, '2_debug');
692
+ }
693
+ });
694
+ class InlineBreakpointWidget {
695
+ constructor(editor, decorationId, cssClass, breakpoint, debugService, contextMenuService, getContextMenuActions) {
696
+ this.editor = editor;
697
+ this.decorationId = decorationId;
698
+ this.breakpoint = breakpoint;
699
+ this.debugService = debugService;
700
+ this.contextMenuService = contextMenuService;
701
+ this.getContextMenuActions = getContextMenuActions;
702
+ this.allowEditorOverflow = false;
703
+ this.suppressMouseDown = true;
704
+ this.toDispose = [];
705
+ this.range = this.editor.getModel().getDecorationRange(decorationId);
706
+ this.toDispose.push(this.editor.onDidChangeModelDecorations(() => {
707
+ const model = this.editor.getModel();
708
+ const range = model.getDecorationRange(this.decorationId);
709
+ if (this.range && !this.range.equalsRange(range)) {
710
+ this.range = range;
711
+ this.editor.layoutContentWidget(this);
712
+ }
713
+ }));
714
+ this.create(cssClass);
715
+ this.editor.addContentWidget(this);
716
+ this.editor.layoutContentWidget(this);
717
+ }
718
+ create(cssClass) {
719
+ this.domNode = $('.inline-breakpoint-widget');
720
+ if (cssClass) {
721
+ this.domNode.classList.add(...cssClass.split(' '));
722
+ }
723
+ this.toDispose.push(dom.addDisposableListener(this.domNode, dom.EventType.CLICK, async (e) => {
724
+ switch (this.breakpoint?.enabled) {
725
+ case undefined:
726
+ await this.debugService.addBreakpoints(this.editor.getModel().uri, [{ lineNumber: this.range.startLineNumber, column: this.range.startColumn }]);
727
+ break;
728
+ case true:
729
+ await this.debugService.removeBreakpoints(this.breakpoint.getId());
730
+ break;
731
+ case false:
732
+ this.debugService.enableOrDisableBreakpoints(true, this.breakpoint);
733
+ break;
734
+ }
735
+ }));
736
+ this.toDispose.push(dom.addDisposableListener(this.domNode, dom.EventType.CONTEXT_MENU, e => {
737
+ const event = ( new StandardMouseEvent(dom.getWindow(this.domNode), e));
738
+ const actions = this.getContextMenuActions();
739
+ this.contextMenuService.showContextMenu({
740
+ getAnchor: () => event,
741
+ getActions: () => actions,
742
+ getActionsContext: () => this.breakpoint,
743
+ onHide: () => disposeIfDisposable(actions)
744
+ });
745
+ }));
746
+ const updateSize = () => {
747
+ const lineHeight = this.editor.getOption(66 );
748
+ this.domNode.style.height = `${lineHeight}px`;
749
+ this.domNode.style.width = `${Math.ceil(0.8 * lineHeight)}px`;
750
+ this.domNode.style.marginLeft = `4px`;
751
+ };
752
+ updateSize();
753
+ this.toDispose.push(this.editor.onDidChangeConfiguration(c => {
754
+ if (c.hasChanged(52 ) || c.hasChanged(66 )) {
755
+ updateSize();
756
+ }
757
+ }));
758
+ }
759
+ getId() {
760
+ return generateUuid();
761
+ }
762
+ getDomNode() {
763
+ return this.domNode;
764
+ }
765
+ getPosition() {
766
+ if (!this.range) {
767
+ return null;
768
+ }
769
+ this.domNode.classList.toggle('line-start', this.range.startColumn === 1);
770
+ return {
771
+ position: { lineNumber: this.range.startLineNumber, column: this.range.startColumn - 1 },
772
+ preference: [0 ]
773
+ };
774
+ }
775
+ dispose() {
776
+ this.editor.removeContentWidget(this);
777
+ dispose(this.toDispose);
778
+ }
779
+ }
780
+ InlineBreakpointWidget.__decorator = ( __decorate([
781
+ memoize
782
+ ], InlineBreakpointWidget.prototype, "getId", null));
783
+ registerThemingParticipant((theme, collector) => {
784
+ const debugIconBreakpointColor = theme.getColor(debugIconBreakpointForeground);
785
+ if (debugIconBreakpointColor) {
786
+ collector.addRule(`
787
+ ${( allBreakpoints.map(b => `.monaco-workbench ${ThemeIcon.asCSSSelector(b.regular)}`)).join(',\n ')},
788
+ .monaco-workbench ${ThemeIcon.asCSSSelector(debugBreakpointUnsupported)},
789
+ .monaco-workbench ${ThemeIcon.asCSSSelector(debugBreakpointHint)}:not([class*='codicon-debug-breakpoint']):not([class*='codicon-debug-stackframe']),
790
+ .monaco-workbench ${ThemeIcon.asCSSSelector(breakpoint.regular)}${ThemeIcon.asCSSSelector(debugStackframeFocused)}::after,
791
+ .monaco-workbench ${ThemeIcon.asCSSSelector(breakpoint.regular)}${ThemeIcon.asCSSSelector(debugStackframe)}::after {
792
+ color: ${debugIconBreakpointColor} !important;
793
+ }
794
+ `);
795
+ }
796
+ const debugIconBreakpointDisabledColor = theme.getColor(debugIconBreakpointDisabledForeground);
797
+ if (debugIconBreakpointDisabledColor) {
798
+ collector.addRule(`
799
+ ${( allBreakpoints.map(b => `.monaco-workbench ${ThemeIcon.asCSSSelector(b.disabled)}`)).join(',\n ')} {
800
+ color: ${debugIconBreakpointDisabledColor};
801
+ }
802
+ `);
803
+ }
804
+ const debugIconBreakpointUnverifiedColor = theme.getColor(debugIconBreakpointUnverifiedForeground);
805
+ if (debugIconBreakpointUnverifiedColor) {
806
+ collector.addRule(`
807
+ ${( allBreakpoints.map(b => `.monaco-workbench ${ThemeIcon.asCSSSelector(b.unverified)}`)).join(',\n ')} {
808
+ color: ${debugIconBreakpointUnverifiedColor};
809
+ }
810
+ `);
811
+ }
812
+ const debugIconBreakpointCurrentStackframeForegroundColor = theme.getColor(debugIconBreakpointCurrentStackframeForeground);
813
+ if (debugIconBreakpointCurrentStackframeForegroundColor) {
814
+ collector.addRule(`
815
+ .monaco-workbench ${ThemeIcon.asCSSSelector(debugStackframe)},
816
+ .monaco-editor .debug-top-stack-frame-column {
817
+ color: ${debugIconBreakpointCurrentStackframeForegroundColor} !important;
818
+ }
819
+ `);
820
+ }
821
+ const debugIconBreakpointStackframeFocusedColor = theme.getColor(debugIconBreakpointStackframeForeground);
822
+ if (debugIconBreakpointStackframeFocusedColor) {
823
+ collector.addRule(`
824
+ .monaco-workbench ${ThemeIcon.asCSSSelector(debugStackframeFocused)} {
825
+ color: ${debugIconBreakpointStackframeFocusedColor} !important;
826
+ }
827
+ `);
828
+ }
829
+ });
830
+ const debugIconBreakpointForeground = registerColor('debugIcon.breakpointForeground', { dark: '#E51400', light: '#E51400', hcDark: '#E51400', hcLight: '#E51400' }, ( nls.localizeWithPath(
831
+ 'vs/workbench/contrib/debug/browser/breakpointEditorContribution',
832
+ 'debugIcon.breakpointForeground',
833
+ 'Icon color for breakpoints.'
834
+ )));
835
+ const debugIconBreakpointDisabledForeground = registerColor('debugIcon.breakpointDisabledForeground', { dark: '#848484', light: '#848484', hcDark: '#848484', hcLight: '#848484' }, ( nls.localizeWithPath(
836
+ 'vs/workbench/contrib/debug/browser/breakpointEditorContribution',
837
+ 'debugIcon.breakpointDisabledForeground',
838
+ 'Icon color for disabled breakpoints.'
839
+ )));
840
+ const debugIconBreakpointUnverifiedForeground = registerColor('debugIcon.breakpointUnverifiedForeground', { dark: '#848484', light: '#848484', hcDark: '#848484', hcLight: '#848484' }, ( nls.localizeWithPath(
841
+ 'vs/workbench/contrib/debug/browser/breakpointEditorContribution',
842
+ 'debugIcon.breakpointUnverifiedForeground',
843
+ 'Icon color for unverified breakpoints.'
844
+ )));
845
+ const debugIconBreakpointCurrentStackframeForeground = registerColor('debugIcon.breakpointCurrentStackframeForeground', { dark: '#FFCC00', light: '#BE8700', hcDark: '#FFCC00', hcLight: '#BE8700' }, ( nls.localizeWithPath(
846
+ 'vs/workbench/contrib/debug/browser/breakpointEditorContribution',
847
+ 'debugIcon.breakpointCurrentStackframeForeground',
848
+ 'Icon color for the current breakpoint stack frame.'
849
+ )));
850
+ const debugIconBreakpointStackframeForeground = registerColor('debugIcon.breakpointStackframeForeground', { dark: '#89D185', light: '#89D185', hcDark: '#89D185', hcLight: '#89D185' }, ( nls.localizeWithPath(
851
+ 'vs/workbench/contrib/debug/browser/breakpointEditorContribution',
852
+ 'debugIcon.breakpointStackframeForeground',
853
+ 'Icon color for all breakpoint stack frames.'
854
+ )));
855
+ export { BreakpointEditorContribution, createBreakpointDecorations, debugIconBreakpointForeground };