@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
@@ -1,639 +0,0 @@
1
- import { __decorate, __param } from '../../../../../../../external/tslib/tslib.es6.js';
2
- import { localizeWithPath } from 'monaco-editor/esm/vs/nls.js';
3
- import { TextFileOperationError, toBufferOrReadable, stringToSnapshot } from '../common/textfiles.js';
4
- import { SaveSourceRegistry } from '../../../common/editor.js';
5
- import { ILifecycleService } from '../../lifecycle/common/lifecycle.js';
6
- import { IFileService } from 'monaco-editor/esm/vs/platform/files/common/files.js';
7
- import { Disposable } from 'monaco-editor/esm/vs/base/common/lifecycle.js';
8
- import { extname } from 'monaco-editor/esm/vs/base/common/path.js';
9
- import { IWorkbenchEnvironmentService } from '../../environment/common/environmentService.js';
10
- import { IUntitledTextEditorService } from '../../untitled/common/untitledTextEditorService.js';
11
- import { UntitledTextEditorModel } from '../../untitled/common/untitledTextEditorModel.js';
12
- import { TextFileEditorModelManager } from '../common/textFileEditorModelManager.js';
13
- import { IInstantiationService } from 'monaco-editor/esm/vs/platform/instantiation/common/instantiation.js';
14
- import { Schemas } from 'monaco-editor/esm/vs/base/common/network.js';
15
- import { createTextBufferFactoryFromStream, createTextBufferFactoryFromSnapshot } from 'monaco-editor/esm/vs/editor/common/model/textModel.js';
16
- import { IModelService } from 'monaco-editor/esm/vs/editor/common/services/model.js';
17
- import { isEqual, toLocalResource, basename, dirname, joinPath, extname as extname$1 } from 'monaco-editor/esm/vs/base/common/resources.js';
18
- import '../../../../../../../override/vs/platform/dialogs/common/dialogs.js';
19
- import { bufferToStream } from 'monaco-editor/esm/vs/base/common/buffer.js';
20
- import { ITextResourceConfigurationService } from 'monaco-editor/esm/vs/editor/common/services/textResourceConfiguration.js';
21
- import { PLAINTEXT_LANGUAGE_ID } from 'monaco-editor/esm/vs/editor/common/languages/modesRegistry.js';
22
- import { IFilesConfigurationService } from '../../filesConfiguration/common/filesConfigurationService.js';
23
- import { BaseTextEditorModel } from '../../../common/editor/textEditorModel.js';
24
- import { ICodeEditorService } from 'monaco-editor/esm/vs/editor/browser/services/codeEditorService.js';
25
- import { IPathService } from '../../path/common/pathService.js';
26
- import { IWorkingCopyFileService } from '../../workingCopy/common/workingCopyFileService.js';
27
- import { IUriIdentityService } from 'monaco-editor/esm/vs/platform/uriIdentity/common/uriIdentity.js';
28
- import { WORKSPACE_EXTENSION, IWorkspaceContextService } from 'monaco-editor/esm/vs/platform/workspace/common/workspace.js';
29
- import { UTF8, toEncodeReadable, toDecodeStream, UTF16be, UTF16le, UTF8_with_bom, encodingExists } from '../common/encoding.js';
30
- import { consumeStream } from 'monaco-editor/esm/vs/base/common/stream.js';
31
- import { ILanguageService } from 'monaco-editor/esm/vs/editor/common/languages/language.js';
32
- import { ILogService } from 'monaco-editor/esm/vs/platform/log/common/log.js';
33
- import { CancellationToken, CancellationTokenSource } from 'monaco-editor/esm/vs/base/common/cancellation.js';
34
- import { IElevatedFileService } from '../../files/common/elevatedFileService.js';
35
- import { IDecorationsService } from '../../decorations/common/decorations.js';
36
- import { Emitter } from 'monaco-editor/esm/vs/base/common/event.js';
37
- import { Codicon } from 'monaco-editor/esm/vs/base/common/codicons.js';
38
- import { listErrorForeground } from 'monaco-editor/esm/vs/platform/theme/common/colorRegistry.js';
39
- import { firstOrDefault } from 'monaco-editor/esm/vs/base/common/arrays.js';
40
- import { IDialogService, IFileDialogService } from '../../../../platform/dialogs/common/dialogs.js';
41
- var AbstractTextFileService_1;
42
- let AbstractTextFileService = class AbstractTextFileService extends Disposable {
43
- static { AbstractTextFileService_1 = this; }
44
- static { this.TEXTFILE_SAVE_CREATE_SOURCE = SaveSourceRegistry.registerSource('textFileCreate.source', ( localizeWithPath(
45
- 'vs/workbench/services/textfile/browser/textFileService',
46
- 'textFileCreate.source',
47
- "File Created"
48
- ))); }
49
- static { this.TEXTFILE_SAVE_REPLACE_SOURCE = SaveSourceRegistry.registerSource('textFileOverwrite.source', ( localizeWithPath(
50
- 'vs/workbench/services/textfile/browser/textFileService',
51
- 'textFileOverwrite.source',
52
- "File Replaced"
53
- ))); }
54
- constructor(fileService, untitledTextEditorService, lifecycleService, instantiationService, modelService, environmentService, dialogService, fileDialogService, textResourceConfigurationService, filesConfigurationService, codeEditorService, pathService, workingCopyFileService, uriIdentityService, languageService, logService, elevatedFileService, decorationsService) {
55
- super();
56
- this.fileService = fileService;
57
- this.untitledTextEditorService = untitledTextEditorService;
58
- this.lifecycleService = lifecycleService;
59
- this.instantiationService = instantiationService;
60
- this.modelService = modelService;
61
- this.environmentService = environmentService;
62
- this.dialogService = dialogService;
63
- this.fileDialogService = fileDialogService;
64
- this.textResourceConfigurationService = textResourceConfigurationService;
65
- this.filesConfigurationService = filesConfigurationService;
66
- this.codeEditorService = codeEditorService;
67
- this.pathService = pathService;
68
- this.workingCopyFileService = workingCopyFileService;
69
- this.uriIdentityService = uriIdentityService;
70
- this.languageService = languageService;
71
- this.logService = logService;
72
- this.elevatedFileService = elevatedFileService;
73
- this.decorationsService = decorationsService;
74
- this.files = this._register(this.instantiationService.createInstance(TextFileEditorModelManager));
75
- this.untitled = this.untitledTextEditorService;
76
- this.provideDecorations();
77
- }
78
- provideDecorations() {
79
- const provider = this._register(new (class extends Disposable {
80
- constructor(files) {
81
- super();
82
- this.files = files;
83
- this.label = ( localizeWithPath(
84
- 'vs/workbench/services/textfile/browser/textFileService',
85
- 'textFileModelDecorations',
86
- "Text File Model Decorations"
87
- ));
88
- this._onDidChange = this._register(( new Emitter()));
89
- this.onDidChange = this._onDidChange.event;
90
- this.registerListeners();
91
- }
92
- registerListeners() {
93
- this._register(this.files.onDidResolve(({ model }) => {
94
- if (model.isReadonly() || model.hasState(4 )) {
95
- this._onDidChange.fire([model.resource]);
96
- }
97
- }));
98
- this._register(this.files.onDidRemove(modelUri => this._onDidChange.fire([modelUri])));
99
- this._register(this.files.onDidChangeReadonly(model => this._onDidChange.fire([model.resource])));
100
- this._register(this.files.onDidChangeOrphaned(model => this._onDidChange.fire([model.resource])));
101
- }
102
- provideDecorations(uri) {
103
- const model = this.files.get(uri);
104
- if (!model || model.isDisposed()) {
105
- return undefined;
106
- }
107
- const isReadonly = model.isReadonly();
108
- const isOrphaned = model.hasState(4 );
109
- if (isReadonly && isOrphaned) {
110
- return {
111
- color: listErrorForeground,
112
- letter: Codicon.lockSmall,
113
- strikethrough: true,
114
- tooltip: ( localizeWithPath(
115
- 'vs/workbench/services/textfile/browser/textFileService',
116
- 'readonlyAndDeleted',
117
- "Deleted, Read-only"
118
- )),
119
- };
120
- }
121
- else if (isReadonly) {
122
- return {
123
- letter: Codicon.lockSmall,
124
- tooltip: ( localizeWithPath(
125
- 'vs/workbench/services/textfile/browser/textFileService',
126
- 'readonly',
127
- "Read-only"
128
- )),
129
- };
130
- }
131
- else if (isOrphaned) {
132
- return {
133
- color: listErrorForeground,
134
- strikethrough: true,
135
- tooltip: ( localizeWithPath(
136
- 'vs/workbench/services/textfile/browser/textFileService',
137
- 'deleted',
138
- "Deleted"
139
- )),
140
- };
141
- }
142
- return undefined;
143
- }
144
- })(this.files));
145
- this._register(this.decorationsService.registerDecorationsProvider(provider));
146
- }
147
- get encoding() {
148
- if (!this._encoding) {
149
- this._encoding = this._register(this.instantiationService.createInstance(EncodingOracle));
150
- }
151
- return this._encoding;
152
- }
153
- async read(resource, options) {
154
- const [bufferStream, decoder] = await this.doRead(resource, {
155
- ...options,
156
- preferUnbuffered: true
157
- });
158
- return {
159
- ...bufferStream,
160
- encoding: decoder.detected.encoding || UTF8,
161
- value: await consumeStream(decoder.stream, strings => strings.join(''))
162
- };
163
- }
164
- async readStream(resource, options) {
165
- const [bufferStream, decoder] = await this.doRead(resource, options);
166
- return {
167
- ...bufferStream,
168
- encoding: decoder.detected.encoding || UTF8,
169
- value: await createTextBufferFactoryFromStream(decoder.stream)
170
- };
171
- }
172
- async doRead(resource, options) {
173
- const cts = ( new CancellationTokenSource());
174
- let bufferStream;
175
- if (options?.preferUnbuffered) {
176
- const content = await this.fileService.readFile(resource, options, cts.token);
177
- bufferStream = {
178
- ...content,
179
- value: bufferToStream(content.value)
180
- };
181
- }
182
- else {
183
- bufferStream = await this.fileService.readFileStream(resource, options, cts.token);
184
- }
185
- try {
186
- const decoder = await this.doGetDecodedStream(resource, bufferStream.value, options);
187
- return [bufferStream, decoder];
188
- }
189
- catch (error) {
190
- cts.dispose(true);
191
- if (error.decodeStreamErrorKind === 1 ) {
192
- throw new TextFileOperationError(localizeWithPath('vs/workbench/services/textfile/browser/textFileService', 'fileBinaryError', "File seems to be binary and cannot be opened as text"), 0 , options);
193
- }
194
- else {
195
- throw error;
196
- }
197
- }
198
- }
199
- async create(operations, undoInfo) {
200
- const operationsWithContents = await Promise.all(( operations.map(async (operation) => {
201
- const contents = await this.getEncodedReadable(operation.resource, operation.value);
202
- return {
203
- resource: operation.resource,
204
- contents,
205
- overwrite: operation.options?.overwrite
206
- };
207
- })));
208
- return this.workingCopyFileService.create(operationsWithContents, CancellationToken.None, undoInfo);
209
- }
210
- async write(resource, value, options) {
211
- const readable = await this.getEncodedReadable(resource, value, options);
212
- if (options?.writeElevated && this.elevatedFileService.isSupported(resource)) {
213
- return this.elevatedFileService.writeFileElevated(resource, readable, options);
214
- }
215
- return this.fileService.writeFile(resource, readable, options);
216
- }
217
- async getEncodedReadable(resource, value, options) {
218
- const { encoding, addBOM } = await this.encoding.getWriteEncoding(resource, options);
219
- if (encoding === UTF8 && !addBOM) {
220
- return typeof value === 'undefined'
221
- ? undefined
222
- : toBufferOrReadable(value);
223
- }
224
- value = value || '';
225
- const snapshot = typeof value === 'string' ? stringToSnapshot(value) : value;
226
- return toEncodeReadable(snapshot, encoding, { addBOM });
227
- }
228
- async getDecodedStream(resource, value, options) {
229
- return (await this.doGetDecodedStream(resource, value, options)).stream;
230
- }
231
- doGetDecodedStream(resource, stream, options) {
232
- return toDecodeStream(stream, {
233
- acceptTextOnly: options?.acceptTextOnly ?? false,
234
- guessEncoding: options?.autoGuessEncoding || this.textResourceConfigurationService.getValue(resource, 'files.autoGuessEncoding'),
235
- overwriteEncoding: async (detectedEncoding) => {
236
- const { encoding } = await this.encoding.getPreferredReadEncoding(resource, options, detectedEncoding ?? undefined);
237
- return encoding;
238
- }
239
- });
240
- }
241
- async save(resource, options) {
242
- if (resource.scheme === Schemas.untitled) {
243
- const model = this.untitled.get(resource);
244
- if (model) {
245
- let targetUri;
246
- if (model.hasAssociatedFilePath) {
247
- targetUri = await this.suggestSavePath(resource);
248
- }
249
- else {
250
- targetUri = await this.fileDialogService.pickFileToSave(await this.suggestSavePath(resource), options?.availableFileSystems);
251
- }
252
- if (targetUri) {
253
- return this.saveAs(resource, targetUri, options);
254
- }
255
- }
256
- }
257
- else {
258
- const model = this.files.get(resource);
259
- if (model) {
260
- return (await model.save(options)) ? resource : undefined;
261
- }
262
- }
263
- return undefined;
264
- }
265
- async saveAs(source, target, options) {
266
- if (!target) {
267
- target = await this.fileDialogService.pickFileToSave(await this.suggestSavePath(options?.suggestedTarget ?? source), options?.availableFileSystems);
268
- }
269
- if (!target) {
270
- return;
271
- }
272
- if (this.filesConfigurationService.isReadonly(target)) {
273
- const confirmed = await this.confirmMakeWriteable(target);
274
- if (!confirmed) {
275
- return;
276
- }
277
- else {
278
- this.filesConfigurationService.updateReadonly(target, false);
279
- }
280
- }
281
- if (isEqual(source, target)) {
282
- return this.save(source, { ...options, force: true });
283
- }
284
- if (this.fileService.hasProvider(source) && this.uriIdentityService.extUri.isEqual(source, target) && (await this.fileService.exists(source))) {
285
- await this.workingCopyFileService.move([{ file: { source, target } }], CancellationToken.None);
286
- const success = await this.save(source, options);
287
- if (!success) {
288
- await this.save(target, options);
289
- }
290
- return target;
291
- }
292
- return this.doSaveAs(source, target, options);
293
- }
294
- async doSaveAs(source, target, options) {
295
- let success = false;
296
- const textFileModel = this.files.get(source);
297
- if (textFileModel?.isResolved()) {
298
- success = await this.doSaveAsTextFile(textFileModel, source, target, options);
299
- }
300
- else if (this.fileService.hasProvider(source)) {
301
- await this.fileService.copy(source, target, true);
302
- success = true;
303
- }
304
- else {
305
- const textModel = this.modelService.getModel(source);
306
- if (textModel) {
307
- success = await this.doSaveAsTextFile(textModel, source, target, options);
308
- }
309
- }
310
- if (!success) {
311
- return undefined;
312
- }
313
- try {
314
- await this.revert(source);
315
- }
316
- catch (error) {
317
- this.logService.error(error);
318
- }
319
- return target;
320
- }
321
- async doSaveAsTextFile(sourceModel, source, target, options) {
322
- let sourceModelEncoding = undefined;
323
- const sourceModelWithEncodingSupport = sourceModel;
324
- if (typeof sourceModelWithEncodingSupport.getEncoding === 'function') {
325
- sourceModelEncoding = sourceModelWithEncodingSupport.getEncoding();
326
- }
327
- let targetExists = false;
328
- let targetModel = this.files.get(target);
329
- if (targetModel?.isResolved()) {
330
- targetExists = true;
331
- }
332
- else {
333
- targetExists = await this.fileService.exists(target);
334
- if (!targetExists) {
335
- await this.create([{ resource: target, value: '' }]);
336
- }
337
- try {
338
- targetModel = await this.files.resolve(target, { encoding: sourceModelEncoding });
339
- }
340
- catch (error) {
341
- if (targetExists) {
342
- if (error.textFileOperationResult === 0 ||
343
- error.fileOperationResult === 7 ) {
344
- await this.fileService.del(target);
345
- return this.doSaveAsTextFile(sourceModel, source, target, options);
346
- }
347
- }
348
- throw error;
349
- }
350
- }
351
- let write;
352
- if (sourceModel instanceof UntitledTextEditorModel && sourceModel.hasAssociatedFilePath && targetExists && this.uriIdentityService.extUri.isEqual(target, toLocalResource(sourceModel.resource, this.environmentService.remoteAuthority, this.pathService.defaultUriScheme))) {
353
- write = await this.confirmOverwrite(target);
354
- }
355
- else {
356
- write = true;
357
- }
358
- if (!write) {
359
- return false;
360
- }
361
- let sourceTextModel = undefined;
362
- if (sourceModel instanceof BaseTextEditorModel) {
363
- if (sourceModel.isResolved()) {
364
- sourceTextModel = sourceModel.textEditorModel ?? undefined;
365
- }
366
- }
367
- else {
368
- sourceTextModel = sourceModel;
369
- }
370
- let targetTextModel = undefined;
371
- if (targetModel.isResolved()) {
372
- targetTextModel = targetModel.textEditorModel;
373
- }
374
- if (sourceTextModel && targetTextModel) {
375
- targetModel.updatePreferredEncoding(sourceModelEncoding);
376
- this.modelService.updateModel(targetTextModel, createTextBufferFactoryFromSnapshot(sourceTextModel.createSnapshot()));
377
- const sourceLanguageId = sourceTextModel.getLanguageId();
378
- const targetLanguageId = targetTextModel.getLanguageId();
379
- if (sourceLanguageId !== PLAINTEXT_LANGUAGE_ID && targetLanguageId === PLAINTEXT_LANGUAGE_ID) {
380
- targetTextModel.setLanguage(sourceLanguageId);
381
- }
382
- const sourceTransientProperties = this.codeEditorService.getTransientModelProperties(sourceTextModel);
383
- if (sourceTransientProperties) {
384
- for (const [key, value] of sourceTransientProperties) {
385
- this.codeEditorService.setTransientModelProperty(targetTextModel, key, value);
386
- }
387
- }
388
- }
389
- if (!options?.source) {
390
- options = {
391
- ...options,
392
- source: targetExists ? AbstractTextFileService_1.TEXTFILE_SAVE_REPLACE_SOURCE : AbstractTextFileService_1.TEXTFILE_SAVE_CREATE_SOURCE
393
- };
394
- }
395
- return targetModel.save(options);
396
- }
397
- async confirmOverwrite(resource) {
398
- const { confirmed } = await this.dialogService.confirm({
399
- type: 'warning',
400
- message: ( localizeWithPath(
401
- 'vs/workbench/services/textfile/browser/textFileService',
402
- 'confirmOverwrite',
403
- "'{0}' already exists. Do you want to replace it?",
404
- basename(resource)
405
- )),
406
- detail: ( localizeWithPath(
407
- 'vs/workbench/services/textfile/browser/textFileService',
408
- 'overwriteIrreversible',
409
- "A file or folder with the name '{0}' already exists in the folder '{1}'. Replacing it will overwrite its current contents.",
410
- basename(resource),
411
- basename(dirname(resource))
412
- )),
413
- primaryButton: ( localizeWithPath(
414
- 'vs/workbench/services/textfile/browser/textFileService',
415
- { key: 'replaceButtonLabel', comment: ['&& denotes a mnemonic'] },
416
- "&&Replace"
417
- )),
418
- });
419
- return confirmed;
420
- }
421
- async confirmMakeWriteable(resource) {
422
- const { confirmed } = await this.dialogService.confirm({
423
- type: 'warning',
424
- message: ( localizeWithPath(
425
- 'vs/workbench/services/textfile/browser/textFileService',
426
- 'confirmMakeWriteable',
427
- "'{0}' is marked as read-only. Do you want to save anyway?",
428
- basename(resource)
429
- )),
430
- detail: ( localizeWithPath(
431
- 'vs/workbench/services/textfile/browser/textFileService',
432
- 'confirmMakeWriteableDetail',
433
- "Paths can be configured as read-only via settings."
434
- )),
435
- primaryButton: ( localizeWithPath(
436
- 'vs/workbench/services/textfile/browser/textFileService',
437
- { key: 'makeWriteableButtonLabel', comment: ['&& denotes a mnemonic'] },
438
- "&&Save Anyway"
439
- ))
440
- });
441
- return confirmed;
442
- }
443
- async suggestSavePath(resource) {
444
- if (this.fileService.hasProvider(resource)) {
445
- return resource;
446
- }
447
- const remoteAuthority = this.environmentService.remoteAuthority;
448
- const defaultFilePath = await this.fileDialogService.defaultFilePath();
449
- let suggestedFilename = undefined;
450
- if (resource.scheme === Schemas.untitled) {
451
- const model = this.untitled.get(resource);
452
- if (model) {
453
- if (model.hasAssociatedFilePath) {
454
- return toLocalResource(resource, remoteAuthority, this.pathService.defaultUriScheme);
455
- }
456
- let nameCandidate;
457
- if (await this.pathService.hasValidBasename(joinPath(defaultFilePath, model.name), model.name)) {
458
- nameCandidate = model.name;
459
- }
460
- else {
461
- nameCandidate = basename(resource);
462
- }
463
- const languageId = model.getLanguageId();
464
- if (languageId && languageId !== PLAINTEXT_LANGUAGE_ID) {
465
- suggestedFilename = this.suggestFilename(languageId, nameCandidate);
466
- }
467
- else {
468
- suggestedFilename = nameCandidate;
469
- }
470
- }
471
- }
472
- if (!suggestedFilename) {
473
- suggestedFilename = basename(resource);
474
- }
475
- return joinPath(defaultFilePath, suggestedFilename);
476
- }
477
- suggestFilename(languageId, untitledName) {
478
- const languageName = this.languageService.getLanguageName(languageId);
479
- if (!languageName) {
480
- return untitledName;
481
- }
482
- const untitledExtension = extname(untitledName);
483
- const extensions = this.languageService.getExtensions(languageId);
484
- if (extensions.includes(untitledExtension)) {
485
- return untitledName;
486
- }
487
- const primaryExtension = firstOrDefault(extensions);
488
- if (primaryExtension) {
489
- if (untitledExtension) {
490
- return `${untitledName.substring(0, untitledName.indexOf(untitledExtension))}${primaryExtension}`;
491
- }
492
- return `${untitledName}${primaryExtension}`;
493
- }
494
- const filenames = this.languageService.getFilenames(languageId);
495
- if (filenames.includes(untitledName)) {
496
- return untitledName;
497
- }
498
- return firstOrDefault(filenames) ?? untitledName;
499
- }
500
- async revert(resource, options) {
501
- if (resource.scheme === Schemas.untitled) {
502
- const model = this.untitled.get(resource);
503
- if (model) {
504
- return model.revert(options);
505
- }
506
- }
507
- else {
508
- const model = this.files.get(resource);
509
- if (model && (model.isDirty() || options?.force)) {
510
- return model.revert(options);
511
- }
512
- }
513
- }
514
- isDirty(resource) {
515
- const model = resource.scheme === Schemas.untitled ? this.untitled.get(resource) : this.files.get(resource);
516
- if (model) {
517
- return model.isDirty();
518
- }
519
- return false;
520
- }
521
- };
522
- AbstractTextFileService = AbstractTextFileService_1 = ( __decorate([
523
- ( __param(0, IFileService)),
524
- ( __param(1, IUntitledTextEditorService)),
525
- ( __param(2, ILifecycleService)),
526
- ( __param(3, IInstantiationService)),
527
- ( __param(4, IModelService)),
528
- ( __param(5, IWorkbenchEnvironmentService)),
529
- ( __param(6, IDialogService)),
530
- ( __param(7, IFileDialogService)),
531
- ( __param(8, ITextResourceConfigurationService)),
532
- ( __param(9, IFilesConfigurationService)),
533
- ( __param(10, ICodeEditorService)),
534
- ( __param(11, IPathService)),
535
- ( __param(12, IWorkingCopyFileService)),
536
- ( __param(13, IUriIdentityService)),
537
- ( __param(14, ILanguageService)),
538
- ( __param(15, ILogService)),
539
- ( __param(16, IElevatedFileService)),
540
- ( __param(17, IDecorationsService))
541
- ], AbstractTextFileService));
542
- let EncodingOracle = class EncodingOracle extends Disposable {
543
- get encodingOverrides() { return this._encodingOverrides; }
544
- set encodingOverrides(value) { this._encodingOverrides = value; }
545
- constructor(textResourceConfigurationService, environmentService, contextService, uriIdentityService) {
546
- super();
547
- this.textResourceConfigurationService = textResourceConfigurationService;
548
- this.environmentService = environmentService;
549
- this.contextService = contextService;
550
- this.uriIdentityService = uriIdentityService;
551
- this._encodingOverrides = this.getDefaultEncodingOverrides();
552
- this.registerListeners();
553
- }
554
- registerListeners() {
555
- this._register(this.contextService.onDidChangeWorkspaceFolders(() => this.encodingOverrides = this.getDefaultEncodingOverrides()));
556
- }
557
- getDefaultEncodingOverrides() {
558
- const defaultEncodingOverrides = [];
559
- defaultEncodingOverrides.push({ parent: this.environmentService.userRoamingDataHome, encoding: UTF8 });
560
- defaultEncodingOverrides.push({ extension: WORKSPACE_EXTENSION, encoding: UTF8 });
561
- defaultEncodingOverrides.push({ parent: this.environmentService.untitledWorkspacesHome, encoding: UTF8 });
562
- this.contextService.getWorkspace().folders.forEach(folder => {
563
- defaultEncodingOverrides.push({ parent: joinPath(folder.uri, '.vscode'), encoding: UTF8 });
564
- });
565
- return defaultEncodingOverrides;
566
- }
567
- async getWriteEncoding(resource, options) {
568
- const { encoding, hasBOM } = await this.getPreferredWriteEncoding(resource, options ? options.encoding : undefined);
569
- return { encoding, addBOM: hasBOM };
570
- }
571
- async getPreferredWriteEncoding(resource, preferredEncoding) {
572
- const resourceEncoding = await this.getEncodingForResource(resource, preferredEncoding);
573
- return {
574
- encoding: resourceEncoding,
575
- hasBOM: resourceEncoding === UTF16be || resourceEncoding === UTF16le || resourceEncoding === UTF8_with_bom
576
- };
577
- }
578
- async getPreferredReadEncoding(resource, options, detectedEncoding) {
579
- let preferredEncoding;
580
- if (options?.encoding) {
581
- if (detectedEncoding === UTF8_with_bom && options.encoding === UTF8) {
582
- preferredEncoding = UTF8_with_bom;
583
- }
584
- else {
585
- preferredEncoding = options.encoding;
586
- }
587
- }
588
- else if (typeof detectedEncoding === 'string') {
589
- preferredEncoding = detectedEncoding;
590
- }
591
- else if (this.textResourceConfigurationService.getValue(resource, 'files.encoding') === UTF8_with_bom) {
592
- preferredEncoding = UTF8;
593
- }
594
- const encoding = await this.getEncodingForResource(resource, preferredEncoding);
595
- return {
596
- encoding,
597
- hasBOM: encoding === UTF16be || encoding === UTF16le || encoding === UTF8_with_bom
598
- };
599
- }
600
- async getEncodingForResource(resource, preferredEncoding) {
601
- let fileEncoding;
602
- const override = this.getEncodingOverride(resource);
603
- if (override) {
604
- fileEncoding = override;
605
- }
606
- else if (preferredEncoding) {
607
- fileEncoding = preferredEncoding;
608
- }
609
- else {
610
- fileEncoding = this.textResourceConfigurationService.getValue(resource, 'files.encoding');
611
- }
612
- if (fileEncoding !== UTF8) {
613
- if (!fileEncoding || !(await encodingExists(fileEncoding))) {
614
- fileEncoding = UTF8;
615
- }
616
- }
617
- return fileEncoding;
618
- }
619
- getEncodingOverride(resource) {
620
- if (this.encodingOverrides?.length) {
621
- for (const override of this.encodingOverrides) {
622
- if (override.parent && this.uriIdentityService.extUri.isEqualOrParent(resource, override.parent)) {
623
- return override.encoding;
624
- }
625
- if (override.extension && extname$1(resource) === `.${override.extension}`) {
626
- return override.encoding;
627
- }
628
- }
629
- }
630
- return undefined;
631
- }
632
- };
633
- EncodingOracle = ( __decorate([
634
- ( __param(0, ITextResourceConfigurationService)),
635
- ( __param(1, IWorkbenchEnvironmentService)),
636
- ( __param(2, IWorkspaceContextService)),
637
- ( __param(3, IUriIdentityService))
638
- ], EncodingOracle));
639
- export { AbstractTextFileService, EncodingOracle };