@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,539 @@
1
+ import { Mimes } from 'monaco-editor/esm/vs/base/common/mime.js';
2
+ import { URI } from 'monaco-editor/esm/vs/base/common/uri.js';
3
+ import { EditorContextKeys } from 'monaco-editor/esm/vs/editor/common/editorContextKeys.js';
4
+ import { getIconClasses } from 'monaco-editor/esm/vs/editor/common/services/getIconClasses.js';
5
+ import { IModelService } from 'monaco-editor/esm/vs/editor/common/services/model.js';
6
+ import { ILanguageService } from 'monaco-editor/esm/vs/editor/common/languages/language.js';
7
+ import { localizeWithPath } from 'monaco-editor/esm/vs/nls.js';
8
+ import { registerAction2, MenuId } from 'monaco-editor/esm/vs/platform/actions/common/actions.js';
9
+ import { ContextKeyExpr } from 'monaco-editor/esm/vs/platform/contextkey/common/contextkey.js';
10
+ import { InputFocusedContextKey, InputFocusedContext } from 'monaco-editor/esm/vs/platform/contextkey/common/contextkeys.js';
11
+ import { IQuickInputService } from 'monaco-editor/esm/vs/platform/quickinput/common/quickInput.js';
12
+ import { runDeleteAction, changeCellToKind } from './cellOperations.js';
13
+ import { NotebookCellAction, CELL_TITLE_CELL_GROUP_ID, findTargetCellEditor, NOTEBOOK_EDITOR_WIDGET_ACTION_WEIGHT, executeNotebookCondition, CELL_TITLE_OUTPUT_GROUP_ID, NotebookAction } from './coreActions.js';
14
+ import { NOTEBOOK_CELL_LIST_FOCUSED, NOTEBOOK_EDITOR_EDITABLE, NOTEBOOK_CELL_TYPE, NOTEBOOK_CELL_MARKDOWN_EDIT_MODE, NOTEBOOK_CELL_EDITABLE, NOTEBOOK_EDITOR_FOCUSED, NOTEBOOK_OUTPUT_FOCUSED, NOTEBOOK_CELL_HAS_OUTPUTS, NOTEBOOK_USE_CONSOLIDATED_OUTPUT_BUTTON, NOTEBOOK_HAS_OUTPUTS, NOTEBOOK_IS_ACTIVE_EDITOR } from '../../common/notebookContextKeys.js';
15
+ import { QUIT_EDIT_CELL_COMMAND_ID, CellEditState, CHANGE_CELL_LANGUAGE, DETECT_CELL_LANGUAGE } from '../notebookBrowser.js';
16
+ import { editIcon, stopEditIcon, deleteCellIcon, clearIcon } from '../notebookIcons.js';
17
+ import { CellKind, NotebookCellExecutionState, NotebookSetting } from '../../common/notebookCommon.js';
18
+ import { ILanguageDetectionService } from '../../../../services/languageDetection/common/languageDetectionWorkerService.js';
19
+ import { INotebookExecutionStateService } from '../../common/notebookExecutionStateService.js';
20
+ import { INotificationService } from 'monaco-editor/esm/vs/platform/notification/common/notification.js';
21
+ import { INotebookKernelService } from '../../common/notebookKernelService.js';
22
+ import '../../../../../../../../override/vs/platform/dialogs/common/dialogs.js';
23
+ import { IConfigurationService } from 'monaco-editor/esm/vs/platform/configuration/common/configuration.js';
24
+ import { InlineChatController } from '../../../inlineChat/browser/inlineChatController.js';
25
+ import { IDialogService } from '../../../../../platform/dialogs/common/dialogs.js';
26
+ const CLEAR_ALL_CELLS_OUTPUTS_COMMAND_ID = 'notebook.clearAllCellsOutputs';
27
+ const EDIT_CELL_COMMAND_ID = 'notebook.cell.edit';
28
+ const DELETE_CELL_COMMAND_ID = 'notebook.cell.delete';
29
+ const CLEAR_CELL_OUTPUTS_COMMAND_ID = 'notebook.cell.clearOutputs';
30
+ registerAction2(class EditCellAction extends NotebookCellAction {
31
+ constructor() {
32
+ super({
33
+ id: EDIT_CELL_COMMAND_ID,
34
+ title: ( localizeWithPath(
35
+ 'vs/workbench/contrib/notebook/browser/controller/editActions',
36
+ 'notebookActions.editCell',
37
+ "Edit Cell"
38
+ )),
39
+ keybinding: {
40
+ when: ( ContextKeyExpr.and(
41
+ NOTEBOOK_CELL_LIST_FOCUSED,
42
+ ContextKeyExpr.not(InputFocusedContextKey),
43
+ ( NOTEBOOK_EDITOR_EDITABLE.isEqualTo(true)),
44
+ ( EditorContextKeys.hoverFocused.toNegated())
45
+ )),
46
+ primary: 3 ,
47
+ weight: 200
48
+ },
49
+ menu: {
50
+ id: MenuId.NotebookCellTitle,
51
+ when: ( ContextKeyExpr.and(( NOTEBOOK_EDITOR_EDITABLE.isEqualTo(true)), ( NOTEBOOK_CELL_TYPE.isEqualTo('markup')), ( NOTEBOOK_CELL_MARKDOWN_EDIT_MODE.toNegated()), NOTEBOOK_CELL_EDITABLE)),
52
+ order: 0 ,
53
+ group: CELL_TITLE_CELL_GROUP_ID
54
+ },
55
+ icon: editIcon,
56
+ });
57
+ }
58
+ async runWithContext(accessor, context) {
59
+ if (!context.notebookEditor.hasModel() || context.notebookEditor.isReadOnly) {
60
+ return;
61
+ }
62
+ await context.notebookEditor.focusNotebookCell(context.cell, 'editor');
63
+ const foundEditor = context.cell ? findTargetCellEditor(context, context.cell) : undefined;
64
+ if (foundEditor && foundEditor.hasTextFocus() && InlineChatController.get(foundEditor)?.getWidgetPosition()?.lineNumber === foundEditor.getPosition()?.lineNumber) {
65
+ InlineChatController.get(foundEditor)?.focus();
66
+ }
67
+ }
68
+ });
69
+ const quitEditCondition = ( ContextKeyExpr.and(NOTEBOOK_EDITOR_FOCUSED, InputFocusedContext));
70
+ registerAction2(class QuitEditCellAction extends NotebookCellAction {
71
+ constructor() {
72
+ super({
73
+ id: QUIT_EDIT_CELL_COMMAND_ID,
74
+ title: ( localizeWithPath(
75
+ 'vs/workbench/contrib/notebook/browser/controller/editActions',
76
+ 'notebookActions.quitEdit',
77
+ "Stop Editing Cell"
78
+ )),
79
+ menu: {
80
+ id: MenuId.NotebookCellTitle,
81
+ when: ( ContextKeyExpr.and(( NOTEBOOK_CELL_TYPE.isEqualTo('markup')), NOTEBOOK_CELL_MARKDOWN_EDIT_MODE, NOTEBOOK_CELL_EDITABLE)),
82
+ order: 3 ,
83
+ group: CELL_TITLE_CELL_GROUP_ID
84
+ },
85
+ icon: stopEditIcon,
86
+ keybinding: [
87
+ {
88
+ when: ( ContextKeyExpr.and(quitEditCondition, ( EditorContextKeys.hoverVisible.toNegated()), ( EditorContextKeys.hasNonEmptySelection.toNegated()), ( EditorContextKeys.hasMultipleSelections.toNegated()))),
89
+ primary: 9 ,
90
+ weight: NOTEBOOK_EDITOR_WIDGET_ACTION_WEIGHT - 5
91
+ },
92
+ {
93
+ when: ( ContextKeyExpr.and(NOTEBOOK_EDITOR_FOCUSED, NOTEBOOK_OUTPUT_FOCUSED)),
94
+ primary: 9 ,
95
+ weight: 200 + 5
96
+ },
97
+ {
98
+ when: ( ContextKeyExpr.and(quitEditCondition, ( NOTEBOOK_CELL_TYPE.isEqualTo('markup')))),
99
+ primary: 256 | 3 ,
100
+ win: {
101
+ primary: 2048 | 512 | 3
102
+ },
103
+ weight: NOTEBOOK_EDITOR_WIDGET_ACTION_WEIGHT - 5
104
+ },
105
+ ]
106
+ });
107
+ }
108
+ async runWithContext(accessor, context) {
109
+ if (context.cell.cellKind === CellKind.Markup) {
110
+ context.cell.updateEditState(CellEditState.Preview, QUIT_EDIT_CELL_COMMAND_ID);
111
+ }
112
+ await context.notebookEditor.focusNotebookCell(context.cell, 'container', { skipReveal: true });
113
+ }
114
+ });
115
+ registerAction2(class DeleteCellAction extends NotebookCellAction {
116
+ constructor() {
117
+ super({
118
+ id: DELETE_CELL_COMMAND_ID,
119
+ title: ( localizeWithPath(
120
+ 'vs/workbench/contrib/notebook/browser/controller/editActions',
121
+ 'notebookActions.deleteCell',
122
+ "Delete Cell"
123
+ )),
124
+ keybinding: {
125
+ primary: 20 ,
126
+ mac: {
127
+ primary: 2048 | 1
128
+ },
129
+ when: ( ContextKeyExpr.and(NOTEBOOK_EDITOR_FOCUSED, ContextKeyExpr.not(InputFocusedContextKey))),
130
+ weight: 200
131
+ },
132
+ menu: [
133
+ {
134
+ id: MenuId.NotebookCellDelete,
135
+ when: NOTEBOOK_EDITOR_EDITABLE,
136
+ group: CELL_TITLE_CELL_GROUP_ID
137
+ },
138
+ {
139
+ id: MenuId.InteractiveCellDelete,
140
+ group: CELL_TITLE_CELL_GROUP_ID
141
+ }
142
+ ],
143
+ icon: deleteCellIcon
144
+ });
145
+ }
146
+ async runWithContext(accessor, context) {
147
+ if (!context.notebookEditor.hasModel()) {
148
+ return;
149
+ }
150
+ let confirmation;
151
+ const notebookExecutionStateService = accessor.get(INotebookExecutionStateService);
152
+ const runState = notebookExecutionStateService.getCellExecution(context.cell.uri)?.state;
153
+ const configService = accessor.get(IConfigurationService);
154
+ if (runState === NotebookCellExecutionState.Executing && configService.getValue(NotebookSetting.confirmDeleteRunningCell)) {
155
+ const dialogService = accessor.get(IDialogService);
156
+ const primaryButton = ( localizeWithPath(
157
+ 'vs/workbench/contrib/notebook/browser/controller/editActions',
158
+ 'confirmDeleteButton',
159
+ "Delete"
160
+ ));
161
+ confirmation = await dialogService.confirm({
162
+ type: 'question',
163
+ message: ( localizeWithPath(
164
+ 'vs/workbench/contrib/notebook/browser/controller/editActions',
165
+ 'confirmDeleteButtonMessage',
166
+ "This cell is running, are you sure you want to delete it?"
167
+ )),
168
+ primaryButton: primaryButton,
169
+ checkbox: {
170
+ label: ( localizeWithPath(
171
+ 'vs/workbench/contrib/notebook/browser/controller/editActions',
172
+ 'doNotAskAgain',
173
+ "Do not ask me again"
174
+ ))
175
+ }
176
+ });
177
+ }
178
+ else {
179
+ confirmation = { confirmed: true };
180
+ }
181
+ if (!confirmation.confirmed) {
182
+ return;
183
+ }
184
+ if (confirmation.checkboxChecked === true) {
185
+ await configService.updateValue(NotebookSetting.confirmDeleteRunningCell, false);
186
+ }
187
+ runDeleteAction(context.notebookEditor, context.cell);
188
+ }
189
+ });
190
+ registerAction2(class ClearCellOutputsAction extends NotebookCellAction {
191
+ constructor() {
192
+ super({
193
+ id: CLEAR_CELL_OUTPUTS_COMMAND_ID,
194
+ title: ( localizeWithPath(
195
+ 'vs/workbench/contrib/notebook/browser/controller/editActions',
196
+ 'clearCellOutputs',
197
+ 'Clear Cell Outputs'
198
+ )),
199
+ menu: [
200
+ {
201
+ id: MenuId.NotebookCellTitle,
202
+ when: ( ContextKeyExpr.and(( NOTEBOOK_CELL_TYPE.isEqualTo('code')), executeNotebookCondition, NOTEBOOK_CELL_HAS_OUTPUTS, NOTEBOOK_EDITOR_EDITABLE, NOTEBOOK_CELL_EDITABLE, ( NOTEBOOK_USE_CONSOLIDATED_OUTPUT_BUTTON.toNegated()))),
203
+ order: 5 ,
204
+ group: CELL_TITLE_OUTPUT_GROUP_ID
205
+ },
206
+ {
207
+ id: MenuId.NotebookOutputToolbar,
208
+ when: ( ContextKeyExpr.and(
209
+ NOTEBOOK_CELL_HAS_OUTPUTS,
210
+ NOTEBOOK_EDITOR_EDITABLE,
211
+ NOTEBOOK_CELL_EDITABLE
212
+ ))
213
+ },
214
+ ],
215
+ keybinding: {
216
+ when: ( ContextKeyExpr.and(
217
+ NOTEBOOK_EDITOR_FOCUSED,
218
+ ContextKeyExpr.not(InputFocusedContextKey),
219
+ NOTEBOOK_CELL_HAS_OUTPUTS,
220
+ NOTEBOOK_EDITOR_EDITABLE,
221
+ NOTEBOOK_CELL_EDITABLE
222
+ )),
223
+ primary: 512 | 20 ,
224
+ weight: 200
225
+ },
226
+ icon: clearIcon
227
+ });
228
+ }
229
+ async runWithContext(accessor, context) {
230
+ const notebookExecutionStateService = accessor.get(INotebookExecutionStateService);
231
+ const editor = context.notebookEditor;
232
+ if (!editor.hasModel() || !editor.textModel.length) {
233
+ return;
234
+ }
235
+ const cell = context.cell;
236
+ const index = editor.textModel.cells.indexOf(cell.model);
237
+ if (index < 0) {
238
+ return;
239
+ }
240
+ const computeUndoRedo = !editor.isReadOnly;
241
+ editor.textModel.applyEdits([{ editType: 2 , index, outputs: [] }], true, undefined, () => undefined, undefined, computeUndoRedo);
242
+ const runState = notebookExecutionStateService.getCellExecution(context.cell.uri)?.state;
243
+ if (runState !== NotebookCellExecutionState.Executing) {
244
+ context.notebookEditor.textModel.applyEdits([{
245
+ editType: 9 , index, internalMetadata: {
246
+ runStartTime: null,
247
+ runStartTimeAdjustment: null,
248
+ runEndTime: null,
249
+ executionOrder: null,
250
+ lastRunSuccess: null
251
+ }
252
+ }], true, undefined, () => undefined, undefined, computeUndoRedo);
253
+ }
254
+ }
255
+ });
256
+ registerAction2(class ClearAllCellOutputsAction extends NotebookAction {
257
+ constructor() {
258
+ super({
259
+ id: CLEAR_ALL_CELLS_OUTPUTS_COMMAND_ID,
260
+ title: ( localizeWithPath(
261
+ 'vs/workbench/contrib/notebook/browser/controller/editActions',
262
+ 'clearAllCellsOutputs',
263
+ 'Clear All Outputs'
264
+ )),
265
+ precondition: NOTEBOOK_HAS_OUTPUTS,
266
+ menu: [
267
+ {
268
+ id: MenuId.EditorTitle,
269
+ when: ( ContextKeyExpr.and(NOTEBOOK_IS_ACTIVE_EDITOR, ( ContextKeyExpr.notEquals('config.notebook.globalToolbar', true)))),
270
+ group: 'navigation',
271
+ order: 0
272
+ },
273
+ {
274
+ id: MenuId.NotebookToolbar,
275
+ when: ( ContextKeyExpr.and(executeNotebookCondition, ( ContextKeyExpr.equals('config.notebook.globalToolbar', true)))),
276
+ group: 'navigation/execute',
277
+ order: 10
278
+ }
279
+ ],
280
+ icon: clearIcon
281
+ });
282
+ }
283
+ async runWithContext(accessor, context) {
284
+ const notebookExecutionStateService = accessor.get(INotebookExecutionStateService);
285
+ const editor = context.notebookEditor;
286
+ if (!editor.hasModel() || !editor.textModel.length) {
287
+ return;
288
+ }
289
+ const computeUndoRedo = !editor.isReadOnly;
290
+ editor.textModel.applyEdits(( editor.textModel.cells.map((cell, index) => ({
291
+ editType: 2 , index, outputs: []
292
+ }))), true, undefined, () => undefined, undefined, computeUndoRedo);
293
+ const clearExecutionMetadataEdits = ( editor.textModel.cells.map((cell, index) => {
294
+ const runState = notebookExecutionStateService.getCellExecution(cell.uri)?.state;
295
+ if (runState !== NotebookCellExecutionState.Executing) {
296
+ return {
297
+ editType: 9 , index, internalMetadata: {
298
+ runStartTime: null,
299
+ runStartTimeAdjustment: null,
300
+ runEndTime: null,
301
+ executionOrder: null,
302
+ lastRunSuccess: null
303
+ }
304
+ };
305
+ }
306
+ else {
307
+ return undefined;
308
+ }
309
+ })).filter(edit => !!edit);
310
+ if (clearExecutionMetadataEdits.length) {
311
+ context.notebookEditor.textModel.applyEdits(clearExecutionMetadataEdits, true, undefined, () => undefined, undefined, computeUndoRedo);
312
+ }
313
+ }
314
+ });
315
+ registerAction2(class ChangeCellLanguageAction extends NotebookCellAction {
316
+ constructor() {
317
+ super({
318
+ id: CHANGE_CELL_LANGUAGE,
319
+ title: ( localizeWithPath(
320
+ 'vs/workbench/contrib/notebook/browser/controller/editActions',
321
+ 'changeLanguage',
322
+ 'Change Cell Language'
323
+ )),
324
+ metadata: {
325
+ description: ( localizeWithPath(
326
+ 'vs/workbench/contrib/notebook/browser/controller/editActions',
327
+ 'changeLanguage',
328
+ 'Change Cell Language'
329
+ )),
330
+ args: [
331
+ {
332
+ name: 'range',
333
+ description: 'The cell range',
334
+ schema: {
335
+ 'type': 'object',
336
+ 'required': ['start', 'end'],
337
+ 'properties': {
338
+ 'start': {
339
+ 'type': 'number'
340
+ },
341
+ 'end': {
342
+ 'type': 'number'
343
+ }
344
+ }
345
+ }
346
+ },
347
+ {
348
+ name: 'language',
349
+ description: 'The target cell language',
350
+ schema: {
351
+ 'type': 'string'
352
+ }
353
+ }
354
+ ]
355
+ }
356
+ });
357
+ }
358
+ getCellContextFromArgs(accessor, context, ...additionalArgs) {
359
+ if (!context || typeof context.start !== 'number' || typeof context.end !== 'number' || context.start >= context.end) {
360
+ return;
361
+ }
362
+ const language = additionalArgs.length && typeof additionalArgs[0] === 'string' ? additionalArgs[0] : undefined;
363
+ const activeEditorContext = this.getEditorContextFromArgsOrActive(accessor);
364
+ if (!activeEditorContext || !activeEditorContext.notebookEditor.hasModel() || context.start >= activeEditorContext.notebookEditor.getLength()) {
365
+ return;
366
+ }
367
+ return {
368
+ notebookEditor: activeEditorContext.notebookEditor,
369
+ cell: activeEditorContext.notebookEditor.cellAt(context.start),
370
+ language
371
+ };
372
+ }
373
+ async runWithContext(accessor, context) {
374
+ if (context.language) {
375
+ await this.setLanguage(context, context.language);
376
+ }
377
+ else {
378
+ await this.showLanguagePicker(accessor, context);
379
+ }
380
+ }
381
+ async showLanguagePicker(accessor, context) {
382
+ const topItems = [];
383
+ const mainItems = [];
384
+ const languageService = accessor.get(ILanguageService);
385
+ const modelService = accessor.get(IModelService);
386
+ const quickInputService = accessor.get(IQuickInputService);
387
+ const languageDetectionService = accessor.get(ILanguageDetectionService);
388
+ const kernelService = accessor.get(INotebookKernelService);
389
+ let languages = context.notebookEditor.activeKernel?.supportedLanguages;
390
+ if (!languages) {
391
+ const matchResult = kernelService.getMatchingKernel(context.notebookEditor.textModel);
392
+ const allSupportedLanguages = matchResult.all.flatMap(kernel => kernel.supportedLanguages);
393
+ languages = allSupportedLanguages.length > 0 ? allSupportedLanguages : languageService.getRegisteredLanguageIds();
394
+ }
395
+ const providerLanguages = ( new Set([
396
+ ...languages,
397
+ 'markdown'
398
+ ]));
399
+ providerLanguages.forEach(languageId => {
400
+ let description;
401
+ if (context.cell.cellKind === CellKind.Markup ? (languageId === 'markdown') : (languageId === context.cell.language)) {
402
+ description = ( localizeWithPath(
403
+ 'vs/workbench/contrib/notebook/browser/controller/editActions',
404
+ 'languageDescription',
405
+ "({0}) - Current Language",
406
+ languageId
407
+ ));
408
+ }
409
+ else {
410
+ description = ( localizeWithPath(
411
+ 'vs/workbench/contrib/notebook/browser/controller/editActions',
412
+ 'languageDescriptionConfigured',
413
+ "({0})",
414
+ languageId
415
+ ));
416
+ }
417
+ const languageName = languageService.getLanguageName(languageId);
418
+ if (!languageName) {
419
+ return;
420
+ }
421
+ const item = {
422
+ label: languageName,
423
+ iconClasses: getIconClasses(modelService, languageService, this.getFakeResource(languageName, languageService)),
424
+ description,
425
+ languageId
426
+ };
427
+ if (languageId === 'markdown' || languageId === context.cell.language) {
428
+ topItems.push(item);
429
+ }
430
+ else {
431
+ mainItems.push(item);
432
+ }
433
+ });
434
+ mainItems.sort((a, b) => {
435
+ return a.description.localeCompare(b.description);
436
+ });
437
+ const autoDetectMode = {
438
+ label: ( localizeWithPath(
439
+ 'vs/workbench/contrib/notebook/browser/controller/editActions',
440
+ 'autoDetect',
441
+ "Auto Detect"
442
+ ))
443
+ };
444
+ const picks = [
445
+ autoDetectMode,
446
+ { type: 'separator', label: ( localizeWithPath(
447
+ 'vs/workbench/contrib/notebook/browser/controller/editActions',
448
+ 'languagesPicks',
449
+ "languages (identifier)"
450
+ )) },
451
+ ...topItems,
452
+ { type: 'separator' },
453
+ ...mainItems
454
+ ];
455
+ const selection = await quickInputService.pick(picks, { placeHolder: ( localizeWithPath(
456
+ 'vs/workbench/contrib/notebook/browser/controller/editActions',
457
+ 'pickLanguageToConfigure',
458
+ "Select Language Mode"
459
+ )) });
460
+ const languageId = selection === autoDetectMode
461
+ ? await languageDetectionService.detectLanguage(context.cell.uri)
462
+ : selection?.languageId;
463
+ if (languageId) {
464
+ await this.setLanguage(context, languageId);
465
+ }
466
+ }
467
+ async setLanguage(context, languageId) {
468
+ await setCellToLanguage(languageId, context);
469
+ }
470
+ getFakeResource(lang, languageService) {
471
+ let fakeResource;
472
+ const languageId = languageService.getLanguageIdByLanguageName(lang);
473
+ if (languageId) {
474
+ const extensions = languageService.getExtensions(languageId);
475
+ if (extensions.length) {
476
+ fakeResource = URI.file(extensions[0]);
477
+ }
478
+ else {
479
+ const filenames = languageService.getFilenames(languageId);
480
+ if (filenames.length) {
481
+ fakeResource = URI.file(filenames[0]);
482
+ }
483
+ }
484
+ }
485
+ return fakeResource;
486
+ }
487
+ });
488
+ registerAction2(class DetectCellLanguageAction extends NotebookCellAction {
489
+ constructor() {
490
+ super({
491
+ id: DETECT_CELL_LANGUAGE,
492
+ title: { value: ( localizeWithPath(
493
+ 'vs/workbench/contrib/notebook/browser/controller/editActions',
494
+ 'detectLanguage',
495
+ 'Accept Detected Language for Cell'
496
+ )), original: 'Accept Detected Language for Cell' },
497
+ f1: true,
498
+ precondition: ( ContextKeyExpr.and(NOTEBOOK_EDITOR_EDITABLE, NOTEBOOK_CELL_EDITABLE)),
499
+ keybinding: { primary: 34 | 512 | 1024 , weight: 200 }
500
+ });
501
+ }
502
+ async runWithContext(accessor, context) {
503
+ const languageDetectionService = accessor.get(ILanguageDetectionService);
504
+ const notificationService = accessor.get(INotificationService);
505
+ const kernelService = accessor.get(INotebookKernelService);
506
+ const kernel = kernelService.getSelectedOrSuggestedKernel(context.notebookEditor.textModel);
507
+ const providerLanguages = [...(kernel?.supportedLanguages ?? [])];
508
+ providerLanguages.push('markdown');
509
+ const detection = await languageDetectionService.detectLanguage(context.cell.uri, providerLanguages);
510
+ if (detection) {
511
+ setCellToLanguage(detection, context);
512
+ }
513
+ else {
514
+ notificationService.warn(( localizeWithPath(
515
+ 'vs/workbench/contrib/notebook/browser/controller/editActions',
516
+ 'noDetection',
517
+ "Unable to detect cell language"
518
+ )));
519
+ }
520
+ }
521
+ });
522
+ async function setCellToLanguage(languageId, context) {
523
+ if (languageId === 'markdown' && context.cell?.language !== 'markdown') {
524
+ const idx = context.notebookEditor.getCellIndex(context.cell);
525
+ await changeCellToKind(CellKind.Markup, { cell: context.cell, notebookEditor: context.notebookEditor, ui: true }, 'markdown', Mimes.markdown);
526
+ const newCell = context.notebookEditor.cellAt(idx);
527
+ if (newCell) {
528
+ await context.notebookEditor.focusNotebookCell(newCell, 'editor');
529
+ }
530
+ }
531
+ else if (languageId !== 'markdown' && context.cell?.cellKind === CellKind.Markup) {
532
+ await changeCellToKind(CellKind.Code, { cell: context.cell, notebookEditor: context.notebookEditor, ui: true }, languageId);
533
+ }
534
+ else {
535
+ const index = context.notebookEditor.textModel.cells.indexOf(context.cell.model);
536
+ context.notebookEditor.textModel.applyEdits([{ editType: 4 , index, language: languageId }], true, undefined, () => undefined, undefined, !context.notebookEditor.isReadOnly);
537
+ }
538
+ }
539
+ export { CLEAR_CELL_OUTPUTS_COMMAND_ID };