@codingame/monaco-vscode-api 4.1.0 → 4.1.1

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 (902) hide show
  1. package/missing-services.js +11 -2
  2. package/package.json +8 -8
  3. package/vscode/src/vs/base/common/objects.js +1 -1
  4. package/vscode/src/vs/editor/browser/coreCommands.js +1 -1
  5. package/vscode/src/vs/platform/telemetry/common/telemetry.js +1 -2
  6. package/vscode/src/vs/platform/telemetry/common/telemetryUtils.js +3 -7
  7. package/vscode/src/vs/workbench/common/editor.js +1 -5
  8. package/vscode/src/vs/workbench/contrib/chat/common/chatService.js +1 -2
  9. package/vscode/src/vs/workbench/contrib/logs/common/logsActions.js +6 -12
  10. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/utils.js +1 -1
  11. package/vscode/src/vs/workbench/services/issue/browser/issueTroubleshoot.js +418 -0
  12. package/vscode/src/vs/workbench/services/userDataProfile/common/userDataProfile.js +2 -7
  13. package/override/vs/platform/userDataSync/common/extensionsSync.js +0 -4
  14. package/override/vs/platform/userDataSync/common/globalStateSync.js +0 -5
  15. package/vscode/src/vs/base/browser/hash.js +0 -15
  16. package/vscode/src/vs/base/browser/ui/icons/iconSelectBox.css.js +0 -4
  17. package/vscode/src/vs/base/browser/ui/icons/iconSelectBox.js +0 -246
  18. package/vscode/src/vs/base/common/amd.js +0 -101
  19. package/vscode/src/vs/base/common/console.js +0 -60
  20. package/vscode/src/vs/base/common/paging.js +0 -116
  21. package/vscode/src/vs/base/common/parsers.js +0 -43
  22. package/vscode/src/vs/base/common/processes.js +0 -25
  23. package/vscode/src/vs/base/parts/request/browser/request.js +0 -60
  24. package/vscode/src/vs/editor/common/services/modelUndoRedoParticipant.js +0 -56
  25. package/vscode/src/vs/editor/common/services/textResourceConfigurationService.js +0 -116
  26. package/vscode/src/vs/editor/contrib/quickAccess/browser/commandsQuickAccess.js +0 -23
  27. package/vscode/src/vs/platform/debug/common/extensionHostDebugIpc.js +0 -71
  28. package/vscode/src/vs/platform/download/common/downloadIpc.js +0 -16
  29. package/vscode/src/vs/platform/download/common/downloadService.js +0 -31
  30. package/vscode/src/vs/platform/extensionManagement/common/abstractExtensionManagementService.js +0 -748
  31. package/vscode/src/vs/platform/extensionManagement/common/extensionGalleryService.js +0 -852
  32. package/vscode/src/vs/platform/extensionManagement/common/extensionManagementCLI.js +0 -495
  33. package/vscode/src/vs/platform/extensionManagement/common/extensionManagementIpc.js +0 -120
  34. package/vscode/src/vs/platform/extensionManagement/common/extensionTipsService.js +0 -65
  35. package/vscode/src/vs/platform/extensionManagement/common/unsupportedExtensionsMigration.js +0 -56
  36. package/vscode/src/vs/platform/extensionResourceLoader/browser/extensionResourceLoaderService.js +0 -42
  37. package/vscode/src/vs/platform/externalServices/common/marketplace.js +0 -15
  38. package/vscode/src/vs/platform/externalTerminal/common/externalTerminal.js +0 -3
  39. package/vscode/src/vs/platform/files/browser/indexedDBFileSystemProvider.js +0 -404
  40. package/vscode/src/vs/platform/files/common/fileService.js +0 -986
  41. package/vscode/src/vs/platform/files/common/io.js +0 -75
  42. package/vscode/src/vs/platform/issue/common/issueReporterUtil.js +0 -15
  43. package/vscode/src/vs/platform/keyboardLayout/common/keyboardConfig.js +0 -48
  44. package/vscode/src/vs/platform/keyboardLayout/common/keyboardMapper.js +0 -23
  45. package/vscode/src/vs/platform/lifecycle/common/lifecycle.js +0 -25
  46. package/vscode/src/vs/platform/log/common/fileLog.js +0 -105
  47. package/vscode/src/vs/platform/log/common/logIpc.js +0 -26
  48. package/vscode/src/vs/platform/quickinput/browser/commandsQuickAccess.js +0 -355
  49. package/vscode/src/vs/platform/quickinput/browser/helpQuickAccess.js +0 -65
  50. package/vscode/src/vs/platform/remote/browser/remoteAuthorityResolverService.js +0 -108
  51. package/vscode/src/vs/platform/remote/common/managedSocket.js +0 -96
  52. package/vscode/src/vs/platform/request/browser/requestService.js +0 -28
  53. package/vscode/src/vs/platform/request/common/requestIpc.js +0 -18
  54. package/vscode/src/vs/platform/telemetry/common/commonProperties.js +0 -11
  55. package/vscode/src/vs/platform/terminal/common/capabilities/naiveCwdDetectionCapability.js +0 -22
  56. package/vscode/src/vs/platform/terminal/common/environmentVariable.js +0 -7
  57. package/vscode/src/vs/platform/terminal/common/environmentVariableCollection.js +0 -196
  58. package/vscode/src/vs/platform/terminal/common/terminalLogService.js +0 -49
  59. package/vscode/src/vs/platform/terminal/common/terminalPlatformConfiguration.js +0 -518
  60. package/vscode/src/vs/platform/terminal/common/terminalProfiles.js +0 -111
  61. package/vscode/src/vs/platform/terminal/common/terminalRecorder.js +0 -66
  62. package/vscode/src/vs/platform/update/common/update.config.contribution.js +0 -98
  63. package/vscode/src/vs/platform/url/common/urlService.js +0 -20
  64. package/vscode/src/vs/platform/userDataProfile/browser/userDataProfile.js +0 -93
  65. package/vscode/src/vs/platform/userDataProfile/common/userDataProfileStorageService.js +0 -8
  66. package/vscode/src/vs/platform/userDataSync/common/extensionsSync.js +0 -256
  67. package/vscode/src/vs/platform/userDataSync/common/globalStateSync.js +0 -120
  68. package/vscode/src/vs/platform/userDataSync/common/keybindingsMerge.js +0 -275
  69. package/vscode/src/vs/platform/userDataSync/common/keybindingsSync.js +0 -316
  70. package/vscode/src/vs/platform/userDataSync/common/settingsSync.js +0 -314
  71. package/vscode/src/vs/platform/userDataSync/common/snippetsMerge.js +0 -125
  72. package/vscode/src/vs/platform/userDataSync/common/snippetsSync.js +0 -474
  73. package/vscode/src/vs/platform/userDataSync/common/tasksSync.js +0 -242
  74. package/vscode/src/vs/platform/userDataSync/common/userDataAutoSyncService.js +0 -464
  75. package/vscode/src/vs/platform/userDataSync/common/userDataProfilesManifestMerge.js +0 -90
  76. package/vscode/src/vs/platform/userDataSync/common/userDataProfilesManifestSync.js +0 -257
  77. package/vscode/src/vs/platform/userDataSync/common/userDataSyncEnablementService.js +0 -75
  78. package/vscode/src/vs/platform/userDataSync/common/userDataSyncLocalStoreService.js +0 -148
  79. package/vscode/src/vs/platform/userDataSync/common/userDataSyncLog.js +0 -39
  80. package/vscode/src/vs/platform/userDataSync/common/userDataSyncResourceProvider.js +0 -447
  81. package/vscode/src/vs/platform/userDataSync/common/userDataSyncService.js +0 -781
  82. package/vscode/src/vs/workbench/api/browser/extensionHost.contribution.js +0 -103
  83. package/vscode/src/vs/workbench/api/browser/mainThreadAiEmbeddingVector.js +0 -29
  84. package/vscode/src/vs/workbench/api/browser/mainThreadAiRelatedInformation.js +0 -33
  85. package/vscode/src/vs/workbench/api/browser/mainThreadAuthentication.js +0 -252
  86. package/vscode/src/vs/workbench/api/browser/mainThreadBulkEdits.js +0 -66
  87. package/vscode/src/vs/workbench/api/browser/mainThreadCLICommands.js +0 -102
  88. package/vscode/src/vs/workbench/api/browser/mainThreadChat.js +0 -68
  89. package/vscode/src/vs/workbench/api/browser/mainThreadChatAgents2.js +0 -205
  90. package/vscode/src/vs/workbench/api/browser/mainThreadChatVariables.js +0 -39
  91. package/vscode/src/vs/workbench/api/browser/mainThreadClipboard.js +0 -22
  92. package/vscode/src/vs/workbench/api/browser/mainThreadCodeInsets.js +0 -106
  93. package/vscode/src/vs/workbench/api/browser/mainThreadCommands.js +0 -96
  94. package/vscode/src/vs/workbench/api/browser/mainThreadComments.js +0 -558
  95. package/vscode/src/vs/workbench/api/browser/mainThreadConfiguration.js +0 -78
  96. package/vscode/src/vs/workbench/api/browser/mainThreadConsole.js +0 -33
  97. package/vscode/src/vs/workbench/api/browser/mainThreadCustomEditors.js +0 -577
  98. package/vscode/src/vs/workbench/api/browser/mainThreadDebugService.js +0 -433
  99. package/vscode/src/vs/workbench/api/browser/mainThreadDecorations.js +0 -100
  100. package/vscode/src/vs/workbench/api/browser/mainThreadDiagnostics.js +0 -67
  101. package/vscode/src/vs/workbench/api/browser/mainThreadDialogs.js +0 -66
  102. package/vscode/src/vs/workbench/api/browser/mainThreadDocumentContentProviders.js +0 -77
  103. package/vscode/src/vs/workbench/api/browser/mainThreadDocuments.js +0 -251
  104. package/vscode/src/vs/workbench/api/browser/mainThreadDocumentsAndEditors.js +0 -368
  105. package/vscode/src/vs/workbench/api/browser/mainThreadDownloadService.js +0 -20
  106. package/vscode/src/vs/workbench/api/browser/mainThreadEditSessionIdentityParticipant.js +0 -39
  107. package/vscode/src/vs/workbench/api/browser/mainThreadEditor.js +0 -412
  108. package/vscode/src/vs/workbench/api/browser/mainThreadEditorTabs.js +0 -499
  109. package/vscode/src/vs/workbench/api/browser/mainThreadEditors.js +0 -225
  110. package/vscode/src/vs/workbench/api/browser/mainThreadErrors.js +0 -22
  111. package/vscode/src/vs/workbench/api/browser/mainThreadExtensionService.js +0 -315
  112. package/vscode/src/vs/workbench/api/browser/mainThreadFileSystem.js +0 -206
  113. package/vscode/src/vs/workbench/api/browser/mainThreadFileSystemEventService.js +0 -367
  114. package/vscode/src/vs/workbench/api/browser/mainThreadInlineChat.js +0 -70
  115. package/vscode/src/vs/workbench/api/browser/mainThreadInteractive.js +0 -26
  116. package/vscode/src/vs/workbench/api/browser/mainThreadIssueReporter.js +0 -48
  117. package/vscode/src/vs/workbench/api/browser/mainThreadLabelService.js +0 -25
  118. package/vscode/src/vs/workbench/api/browser/mainThreadLanguageFeatures.js +0 -1014
  119. package/vscode/src/vs/workbench/api/browser/mainThreadLanguageModels.js +0 -183
  120. package/vscode/src/vs/workbench/api/browser/mainThreadLanguages.js +0 -76
  121. package/vscode/src/vs/workbench/api/browser/mainThreadLocalization.js +0 -33
  122. package/vscode/src/vs/workbench/api/browser/mainThreadLogService.js +0 -76
  123. package/vscode/src/vs/workbench/api/browser/mainThreadManagedSockets.js +0 -91
  124. package/vscode/src/vs/workbench/api/browser/mainThreadMessageService.js +0 -135
  125. package/vscode/src/vs/workbench/api/browser/mainThreadNotebook.js +0 -192
  126. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookDocuments.js +0 -121
  127. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookDocumentsAndEditors.js +0 -186
  128. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookDto.js +0 -127
  129. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookEditors.js +0 -129
  130. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookKernels.js +0 -372
  131. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookRenderers.js +0 -23
  132. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookSaveParticipant.js +0 -46
  133. package/vscode/src/vs/workbench/api/browser/mainThreadOutputService.js +0 -74
  134. package/vscode/src/vs/workbench/api/browser/mainThreadProfileContentHandlers.js +0 -36
  135. package/vscode/src/vs/workbench/api/browser/mainThreadProgress.js +0 -66
  136. package/vscode/src/vs/workbench/api/browser/mainThreadQuickDiff.js +0 -40
  137. package/vscode/src/vs/workbench/api/browser/mainThreadQuickOpen.js +0 -183
  138. package/vscode/src/vs/workbench/api/browser/mainThreadRemoteConnectionData.js +0 -28
  139. package/vscode/src/vs/workbench/api/browser/mainThreadSCM.js +0 -491
  140. package/vscode/src/vs/workbench/api/browser/mainThreadSaveParticipant.js +0 -47
  141. package/vscode/src/vs/workbench/api/browser/mainThreadSearch.js +0 -166
  142. package/vscode/src/vs/workbench/api/browser/mainThreadSecretState.js +0 -68
  143. package/vscode/src/vs/workbench/api/browser/mainThreadShare.js +0 -48
  144. package/vscode/src/vs/workbench/api/browser/mainThreadSpeech.js +0 -97
  145. package/vscode/src/vs/workbench/api/browser/mainThreadStatusBar.js +0 -51
  146. package/vscode/src/vs/workbench/api/browser/mainThreadStorage.js +0 -70
  147. package/vscode/src/vs/workbench/api/browser/mainThreadTask.js +0 -729
  148. package/vscode/src/vs/workbench/api/browser/mainThreadTelemetry.js +0 -51
  149. package/vscode/src/vs/workbench/api/browser/mainThreadTerminalService.js +0 -407
  150. package/vscode/src/vs/workbench/api/browser/mainThreadTerminalShellIntegration.js +0 -49
  151. package/vscode/src/vs/workbench/api/browser/mainThreadTesting.js +0 -217
  152. package/vscode/src/vs/workbench/api/browser/mainThreadTheming.js +0 -22
  153. package/vscode/src/vs/workbench/api/browser/mainThreadTimeline.js +0 -53
  154. package/vscode/src/vs/workbench/api/browser/mainThreadTreeViews.js +0 -310
  155. package/vscode/src/vs/workbench/api/browser/mainThreadTunnelService.js +0 -221
  156. package/vscode/src/vs/workbench/api/browser/mainThreadUriOpeners.js +0 -108
  157. package/vscode/src/vs/workbench/api/browser/mainThreadUrls.js +0 -59
  158. package/vscode/src/vs/workbench/api/browser/mainThreadWebviewManager.js +0 -27
  159. package/vscode/src/vs/workbench/api/browser/mainThreadWebviewPanels.js +0 -281
  160. package/vscode/src/vs/workbench/api/browser/mainThreadWebviewViews.js +0 -98
  161. package/vscode/src/vs/workbench/api/browser/mainThreadWebviews.js +0 -133
  162. package/vscode/src/vs/workbench/api/browser/mainThreadWindow.js +0 -55
  163. package/vscode/src/vs/workbench/api/browser/mainThreadWorkspace.js +0 -266
  164. package/vscode/src/vs/workbench/api/common/configurationExtensionPoint.js +0 -594
  165. package/vscode/src/vs/workbench/api/common/shared/dataTransferCache.js +0 -33
  166. package/vscode/src/vs/workbench/browser/actions/quickAccessActions.js +0 -227
  167. package/vscode/src/vs/workbench/browser/layout.js +0 -2059
  168. package/vscode/src/vs/workbench/browser/parts/banner/bannerPart.js +0 -233
  169. package/vscode/src/vs/workbench/browser/parts/banner/media/bannerpart.css.js +0 -4
  170. package/vscode/src/vs/workbench/browser/parts/dialogs/dialog.web.contribution.js +0 -74
  171. package/vscode/src/vs/workbench/browser/parts/dialogs/dialogHandler.js +0 -132
  172. package/vscode/src/vs/workbench/browser/parts/statusbar/media/statusbarpart.css.js +0 -4
  173. package/vscode/src/vs/workbench/browser/parts/statusbar/statusbarActions.js +0 -119
  174. package/vscode/src/vs/workbench/browser/parts/statusbar/statusbarItem.js +0 -250
  175. package/vscode/src/vs/workbench/browser/parts/statusbar/statusbarModel.js +0 -249
  176. package/vscode/src/vs/workbench/browser/parts/statusbar/statusbarPart.js +0 -610
  177. package/vscode/src/vs/workbench/browser/parts/titlebar/commandCenterControl.js +0 -220
  178. package/vscode/src/vs/workbench/browser/parts/titlebar/media/titlebarpart.css.js +0 -4
  179. package/vscode/src/vs/workbench/browser/parts/titlebar/titlebarActions.js +0 -259
  180. package/vscode/src/vs/workbench/browser/parts/titlebar/titlebarPart.js +0 -582
  181. package/vscode/src/vs/workbench/common/dialogs.js +0 -36
  182. package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibility.contribution.js +0 -23
  183. package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibilityStatus.js +0 -112
  184. package/vscode/src/vs/workbench/contrib/accessibility/browser/openDiffEditorAnnouncement.js +0 -50
  185. package/vscode/src/vs/workbench/contrib/accessibility/browser/saveAccessibilitySignal.js +0 -18
  186. package/vscode/src/vs/workbench/contrib/accessibility/browser/unfocusedViewDimmingContribution.js +0 -66
  187. package/vscode/src/vs/workbench/contrib/bulkEdit/browser/bulkEditService.js +0 -358
  188. package/vscode/src/vs/workbench/contrib/bulkEdit/browser/bulkFileEdits.js +0 -362
  189. package/vscode/src/vs/workbench/contrib/bulkEdit/browser/bulkTextEdits.js +0 -265
  190. package/vscode/src/vs/workbench/contrib/bulkEdit/browser/conflicts.js +0 -78
  191. package/vscode/src/vs/workbench/contrib/bulkEdit/browser/preview/bulkEdit.contribution.js +0 -364
  192. package/vscode/src/vs/workbench/contrib/bulkEdit/browser/preview/bulkEdit.css.js +0 -4
  193. package/vscode/src/vs/workbench/contrib/bulkEdit/browser/preview/bulkEditPane.js +0 -340
  194. package/vscode/src/vs/workbench/contrib/bulkEdit/browser/preview/bulkEditPreview.js +0 -361
  195. package/vscode/src/vs/workbench/contrib/bulkEdit/browser/preview/bulkEditTree.js +0 -655
  196. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatClear.js +0 -15
  197. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatClearActions.js +0 -113
  198. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +0 -501
  199. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +0 -80
  200. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +0 -75
  201. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +0 -108
  202. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +0 -169
  203. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTitleActions.js +0 -269
  204. package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +0 -316
  205. package/vscode/src/vs/workbench/contrib/chat/browser/chatAccessibilityService.js +0 -58
  206. package/vscode/src/vs/workbench/contrib/chat/browser/chatContributionServiceImpl.js +0 -421
  207. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditor.js +0 -96
  208. package/vscode/src/vs/workbench/contrib/chat/browser/chatQuick.js +0 -283
  209. package/vscode/src/vs/workbench/contrib/chat/browser/chatVariables.js +0 -88
  210. package/vscode/src/vs/workbench/contrib/chat/browser/chatViewPane.js +0 -183
  211. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatHistoryVariables.js +0 -25
  212. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorContrib.js +0 -617
  213. package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.js +0 -598
  214. package/vscode/src/vs/workbench/contrib/chat/common/voiceChat.js +0 -139
  215. package/vscode/src/vs/workbench/contrib/codeEditor/browser/accessibility/accessibility.css.js +0 -4
  216. package/vscode/src/vs/workbench/contrib/codeEditor/browser/accessibility/accessibility.js +0 -39
  217. package/vscode/src/vs/workbench/contrib/codeEditor/browser/emptyTextEditorHint/emptyTextEditorHint.css.js +0 -4
  218. package/vscode/src/vs/workbench/contrib/codeEditor/browser/emptyTextEditorHint/emptyTextEditorHint.js +0 -389
  219. package/vscode/src/vs/workbench/contrib/codeEditor/browser/outline/documentSymbolsOutline.js +0 -370
  220. package/vscode/src/vs/workbench/contrib/codeEditor/browser/outline/documentSymbolsTree.css.js +0 -4
  221. package/vscode/src/vs/workbench/contrib/codeEditor/browser/outline/documentSymbolsTree.js +0 -290
  222. package/vscode/src/vs/workbench/contrib/codeEditor/browser/quickaccess/gotoLineQuickAccess.js +0 -86
  223. package/vscode/src/vs/workbench/contrib/commands/common/commands.contribution.js +0 -145
  224. package/vscode/src/vs/workbench/contrib/comments/browser/comments.contribution.js +0 -231
  225. package/vscode/src/vs/workbench/contrib/comments/browser/commentsEditorContribution.js +0 -282
  226. package/vscode/src/vs/workbench/contrib/customEditor/common/customTextEditorModel.js +0 -74
  227. package/vscode/src/vs/workbench/contrib/debug/browser/callStackView.js +0 -1024
  228. package/vscode/src/vs/workbench/contrib/debug/browser/debug.contribution.js +0 -1003
  229. package/vscode/src/vs/workbench/contrib/debug/browser/debugANSIHandling.js +0 -345
  230. package/vscode/src/vs/workbench/contrib/debug/browser/debugActionViewItems.js +0 -335
  231. package/vscode/src/vs/workbench/contrib/debug/browser/debugAdapterManager.js +0 -430
  232. package/vscode/src/vs/workbench/contrib/debug/browser/debugCommands.js +0 -1037
  233. package/vscode/src/vs/workbench/contrib/debug/browser/debugConfigurationManager.js +0 -647
  234. package/vscode/src/vs/workbench/contrib/debug/browser/debugConsoleQuickAccess.js +0 -62
  235. package/vscode/src/vs/workbench/contrib/debug/browser/debugEditorActions.js +0 -634
  236. package/vscode/src/vs/workbench/contrib/debug/browser/debugEditorContribution.js +0 -738
  237. package/vscode/src/vs/workbench/contrib/debug/browser/debugHover.js +0 -406
  238. package/vscode/src/vs/workbench/contrib/debug/browser/debugMemory.js +0 -204
  239. package/vscode/src/vs/workbench/contrib/debug/browser/debugProgress.js +0 -78
  240. package/vscode/src/vs/workbench/contrib/debug/browser/debugQuickAccess.js +0 -167
  241. package/vscode/src/vs/workbench/contrib/debug/browser/debugService.js +0 -1269
  242. package/vscode/src/vs/workbench/contrib/debug/browser/debugSession.js +0 -1328
  243. package/vscode/src/vs/workbench/contrib/debug/browser/debugSessionPicker.js +0 -113
  244. package/vscode/src/vs/workbench/contrib/debug/browser/debugStatus.js +0 -75
  245. package/vscode/src/vs/workbench/contrib/debug/browser/debugTaskRunner.js +0 -305
  246. package/vscode/src/vs/workbench/contrib/debug/browser/debugTitle.js +0 -29
  247. package/vscode/src/vs/workbench/contrib/debug/browser/debugToolBar.js +0 -385
  248. package/vscode/src/vs/workbench/contrib/debug/browser/debugViewlet.js +0 -265
  249. package/vscode/src/vs/workbench/contrib/debug/browser/disassemblyView.js +0 -815
  250. package/vscode/src/vs/workbench/contrib/debug/browser/exceptionWidget.js +0 -129
  251. package/vscode/src/vs/workbench/contrib/debug/browser/extensionHostDebugService.js +0 -140
  252. package/vscode/src/vs/workbench/contrib/debug/browser/linkDetector.js +0 -260
  253. package/vscode/src/vs/workbench/contrib/debug/browser/loadedScriptsView.js +0 -667
  254. package/vscode/src/vs/workbench/contrib/debug/browser/media/debug.contribution.css.js +0 -4
  255. package/vscode/src/vs/workbench/contrib/debug/browser/media/debugHover.css.js +0 -4
  256. package/vscode/src/vs/workbench/contrib/debug/browser/media/debugToolBar.css.js +0 -4
  257. package/vscode/src/vs/workbench/contrib/debug/browser/media/debugViewlet.css.js +0 -4
  258. package/vscode/src/vs/workbench/contrib/debug/browser/media/exceptionWidget.css.js +0 -4
  259. package/vscode/src/vs/workbench/contrib/debug/browser/media/repl.css.js +0 -4
  260. package/vscode/src/vs/workbench/contrib/debug/browser/rawDebugSession.js +0 -707
  261. package/vscode/src/vs/workbench/contrib/debug/browser/repl.js +0 -1000
  262. package/vscode/src/vs/workbench/contrib/debug/browser/replFilter.js +0 -46
  263. package/vscode/src/vs/workbench/contrib/debug/browser/replViewer.js +0 -350
  264. package/vscode/src/vs/workbench/contrib/debug/browser/statusbarColorProvider.js +0 -127
  265. package/vscode/src/vs/workbench/contrib/debug/browser/variablesView.js +0 -732
  266. package/vscode/src/vs/workbench/contrib/debug/browser/watchExpressionsView.js +0 -499
  267. package/vscode/src/vs/workbench/contrib/debug/browser/welcomeView.js +0 -160
  268. package/vscode/src/vs/workbench/contrib/debug/common/breakpoints.js +0 -19
  269. package/vscode/src/vs/workbench/contrib/debug/common/debugCompoundRoot.js +0 -15
  270. package/vscode/src/vs/workbench/contrib/debug/common/debugContentProvider.js +0 -108
  271. package/vscode/src/vs/workbench/contrib/debug/common/debugLifecycle.js +0 -60
  272. package/vscode/src/vs/workbench/contrib/debug/common/debugSchemas.js +0 -458
  273. package/vscode/src/vs/workbench/contrib/debug/common/debugStorage.js +0 -164
  274. package/vscode/src/vs/workbench/contrib/debug/common/debugTelemetry.js +0 -34
  275. package/vscode/src/vs/workbench/contrib/debug/common/debugViewModel.js +0 -148
  276. package/vscode/src/vs/workbench/contrib/debug/common/debugger.js +0 -287
  277. package/vscode/src/vs/workbench/contrib/debug/common/loadedScriptsPicker.js +0 -85
  278. package/vscode/src/vs/workbench/contrib/editSessions/browser/editSessions.contribution.js +0 -1197
  279. package/vscode/src/vs/workbench/contrib/editSessions/browser/editSessionsFileSystemProvider.js +0 -55
  280. package/vscode/src/vs/workbench/contrib/editSessions/browser/editSessionsStorageService.js +0 -455
  281. package/vscode/src/vs/workbench/contrib/editSessions/browser/editSessionsViews.js +0 -337
  282. package/vscode/src/vs/workbench/contrib/editSessions/common/editSessionsLogService.js +0 -39
  283. package/vscode/src/vs/workbench/contrib/editSessions/common/editSessionsStorageClient.js +0 -4
  284. package/vscode/src/vs/workbench/contrib/editSessions/common/workspaceStateSync.js +0 -140
  285. package/vscode/src/vs/workbench/contrib/emmet/browser/actions/expandAbbreviation.js +0 -41
  286. package/vscode/src/vs/workbench/contrib/emmet/browser/emmetActions.js +0 -88
  287. package/vscode/src/vs/workbench/contrib/extensions/browser/abstractRuntimeExtensionsEditor.js +0 -539
  288. package/vscode/src/vs/workbench/contrib/extensions/browser/browserRuntimeExtensionsEditor.js +0 -26
  289. package/vscode/src/vs/workbench/contrib/extensions/browser/configBasedRecommendations.js +0 -76
  290. package/vscode/src/vs/workbench/contrib/extensions/browser/deprecatedExtensionsChecker.js +0 -88
  291. package/vscode/src/vs/workbench/contrib/extensions/browser/exeBasedRecommendations.js +0 -58
  292. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionEditor.js +0 -1171
  293. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionEnablementWorkspaceTrustTransitionParticipant.js +0 -50
  294. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionFeaturesTab.js +0 -543
  295. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionRecommendationNotificationService.js +0 -464
  296. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionRecommendations.js +0 -15
  297. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionRecommendationsService.js +0 -233
  298. package/vscode/src/vs/workbench/contrib/extensions/browser/extensions.contribution.js +0 -2182
  299. package/vscode/src/vs/workbench/contrib/extensions/browser/extensions.web.contribution.js +0 -12
  300. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsActivationProgress.js +0 -44
  301. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsCompletionItemsProvider.js +0 -63
  302. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsDependencyChecker.js +0 -96
  303. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsList.js +0 -219
  304. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsQuickAccess.js +0 -119
  305. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsViewer.js +0 -293
  306. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsViewlet.js +0 -934
  307. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsViews.js +0 -1349
  308. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsWidgets.js +0 -858
  309. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.js +0 -2349
  310. package/vscode/src/vs/workbench/contrib/extensions/browser/fileBasedRecommendations.js +0 -328
  311. package/vscode/src/vs/workbench/contrib/extensions/browser/keymapRecommendations.js +0 -26
  312. package/vscode/src/vs/workbench/contrib/extensions/browser/languageRecommendations.js +0 -26
  313. package/vscode/src/vs/workbench/contrib/extensions/browser/media/extension.css.js +0 -4
  314. package/vscode/src/vs/workbench/contrib/extensions/browser/media/extensionEditor.css.js +0 -4
  315. package/vscode/src/vs/workbench/contrib/extensions/browser/media/extensionsViewlet.css.js +0 -4
  316. package/vscode/src/vs/workbench/contrib/extensions/browser/media/extensionsWidgets.css.js +0 -4
  317. package/vscode/src/vs/workbench/contrib/extensions/browser/media/runtimeExtensionsEditor.css.js +0 -4
  318. package/vscode/src/vs/workbench/contrib/extensions/browser/remoteRecommendations.js +0 -27
  319. package/vscode/src/vs/workbench/contrib/extensions/browser/unsupportedExtensionsMigrationContribution.js +0 -24
  320. package/vscode/src/vs/workbench/contrib/extensions/browser/webRecommendations.js +0 -36
  321. package/vscode/src/vs/workbench/contrib/extensions/browser/workspaceRecommendations.js +0 -160
  322. package/vscode/src/vs/workbench/contrib/extensions/common/extensionQuery.js +0 -56
  323. package/vscode/src/vs/workbench/contrib/extensions/common/reportExtensionIssueAction.js +0 -29
  324. package/vscode/src/vs/workbench/contrib/extensions/common/runtimeExtensionsInput.js +0 -49
  325. package/vscode/src/vs/workbench/contrib/externalTerminal/browser/externalTerminal.contribution.js +0 -152
  326. package/vscode/src/vs/workbench/contrib/externalUriOpener/common/contributedOpeners.js +0 -81
  327. package/vscode/src/vs/workbench/contrib/files/browser/explorerService.js +0 -430
  328. package/vscode/src/vs/workbench/contrib/files/browser/fileActions.contribution.js +0 -786
  329. package/vscode/src/vs/workbench/contrib/files/browser/fileCommands.js +0 -510
  330. package/vscode/src/vs/workbench/contrib/files/browser/files.explorer.contribution.js +0 -460
  331. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +0 -39
  332. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibleView.js +0 -39
  333. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatNotebook.js +0 -70
  334. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSavingServiceImpl.js +0 -234
  335. package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChatServiceImpl.js +0 -31
  336. package/vscode/src/vs/workbench/contrib/interactive/browser/interactive.contribution.js +0 -737
  337. package/vscode/src/vs/workbench/contrib/interactive/browser/interactiveCommon.js +0 -6
  338. package/vscode/src/vs/workbench/contrib/interactive/browser/interactiveEditor.css.js +0 -4
  339. package/vscode/src/vs/workbench/contrib/interactive/browser/interactiveEditor.js +0 -600
  340. package/vscode/src/vs/workbench/contrib/interactive/browser/media/interactive.css.js +0 -4
  341. package/vscode/src/vs/workbench/contrib/issue/browser/issue.contribution.js +0 -27
  342. package/vscode/src/vs/workbench/contrib/issue/common/issue.contribution.js +0 -102
  343. package/vscode/src/vs/workbench/contrib/keybindings/browser/keybindings.contribution.js +0 -28
  344. package/vscode/src/vs/workbench/contrib/languageDetection/browser/languageDetection.contribution.js +0 -156
  345. package/vscode/src/vs/workbench/contrib/localHistory/browser/localHistory.contribution.js +0 -4
  346. package/vscode/src/vs/workbench/contrib/localHistory/browser/localHistory.js +0 -35
  347. package/vscode/src/vs/workbench/contrib/localHistory/browser/localHistoryCommands.js +0 -635
  348. package/vscode/src/vs/workbench/contrib/localHistory/browser/localHistoryFileSystemProvider.js +0 -87
  349. package/vscode/src/vs/workbench/contrib/localHistory/browser/localHistoryTimeline.js +0 -136
  350. package/vscode/src/vs/workbench/contrib/logs/common/logs.contribution.js +0 -225
  351. package/vscode/src/vs/workbench/contrib/markdown/browser/markdownSettingRenderer.js +0 -307
  352. package/vscode/src/vs/workbench/contrib/markers/browser/markers.contribution.js +0 -759
  353. package/vscode/src/vs/workbench/contrib/markers/browser/markersFileDecorations.js +0 -127
  354. package/vscode/src/vs/workbench/contrib/markers/browser/markersFilterOptions.js +0 -75
  355. package/vscode/src/vs/workbench/contrib/markers/browser/markersModel.js +0 -200
  356. package/vscode/src/vs/workbench/contrib/markers/browser/markersTable.js +0 -475
  357. package/vscode/src/vs/workbench/contrib/markers/browser/markersTreeViewer.js +0 -691
  358. package/vscode/src/vs/workbench/contrib/markers/browser/markersView.js +0 -900
  359. package/vscode/src/vs/workbench/contrib/markers/browser/markersViewActions.css.js +0 -4
  360. package/vscode/src/vs/workbench/contrib/markers/browser/markersViewActions.js +0 -132
  361. package/vscode/src/vs/workbench/contrib/markers/browser/media/markers.css.js +0 -4
  362. package/vscode/src/vs/workbench/contrib/markers/browser/messages.js +0 -301
  363. package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/actions.js +0 -108
  364. package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/multiDiffEditor.contribution.js +0 -39
  365. package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/multiDiffEditor.js +0 -117
  366. package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/scmMultiDiffSourceResolver.js +0 -146
  367. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/cellStatusBar/contributedStatusBarItemController.js +0 -107
  368. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/cellStatusBar/statusBarProviders.js +0 -172
  369. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/clipboard/notebookClipboard.js +0 -542
  370. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/debug/notebookBreakpoints.js +0 -105
  371. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/debug/notebookCellPausing.js +0 -66
  372. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/debug/notebookDebugDecorations.js +0 -163
  373. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/editorHint/emptyCellEditorHint.js +0 -65
  374. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/editorStatusBar/editorStatusBar.js +0 -318
  375. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/execute/executionEditorProgress.js +0 -70
  376. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/media/notebookFind.css.js +0 -4
  377. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFind.js +0 -167
  378. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/format/formatting.js +0 -207
  379. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/gettingStarted/notebookGettingStarted.js +0 -82
  380. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/kernelDetection/notebookKernelDetection.js +0 -81
  381. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/layout/layoutActions.js +0 -65
  382. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/marker/markerProvider.js +0 -100
  383. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/navigation/arrow.js +0 -391
  384. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/notebookVariables/notebookVariableCommands.js +0 -62
  385. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/notebookVariables/notebookVariableContextKeys.js +0 -3
  386. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/notebookVariables/notebookVariables.js +0 -95
  387. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/notebookVariables/notebookVariablesDataSource.js +0 -118
  388. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/notebookVariables/notebookVariablesTree.js +0 -58
  389. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/notebookVariables/notebookVariablesView.js +0 -148
  390. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/outline/notebookOutline.js +0 -654
  391. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/profile/notebookProfile.js +0 -75
  392. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/saveParticipants/saveParticipants.js +0 -515
  393. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/troubleshoot/layout.js +0 -157
  394. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/undoRedo/notebookUndoRedo.js +0 -55
  395. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/viewportWarmup/viewportWarmup.js +0 -93
  396. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/apiActions.js +0 -50
  397. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/cellChatActions.js +0 -651
  398. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/executeActions.js +0 -719
  399. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/insertCellActions.js +0 -349
  400. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/layoutActions.js +0 -314
  401. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/sectionActions.js +0 -197
  402. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffCellEditorOptions.js +0 -46
  403. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffComponents.js +0 -1295
  404. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffElementOutputs.js +0 -282
  405. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffElementViewModel.js +0 -561
  406. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffNestedCellViewModel.js +0 -113
  407. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/eventDispatcher.js +0 -37
  408. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiff.css.js +0 -4
  409. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffActions.js +0 -312
  410. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditor.js +0 -909
  411. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditorBrowser.js +0 -11
  412. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffList.js +0 -393
  413. package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffOverviewRuler.js +0 -183
  414. package/vscode/src/vs/workbench/contrib/notebook/browser/notebook.contribution.js +0 -1185
  415. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookAccessibility.js +0 -157
  416. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookExtensionPoint.js +0 -449
  417. package/vscode/src/vs/workbench/contrib/notebook/browser/services/notebookEditorServiceImpl.js +0 -190
  418. package/vscode/src/vs/workbench/contrib/notebook/browser/services/notebookExecutionServiceImpl.js +0 -104
  419. package/vscode/src/vs/workbench/contrib/notebook/browser/services/notebookExecutionStateServiceImpl.js +0 -508
  420. package/vscode/src/vs/workbench/contrib/notebook/browser/services/notebookKernelHistoryServiceImpl.js +0 -128
  421. package/vscode/src/vs/workbench/contrib/notebook/browser/services/notebookKernelServiceImpl.js +0 -339
  422. package/vscode/src/vs/workbench/contrib/notebook/browser/services/notebookKeymapServiceImpl.js +0 -109
  423. package/vscode/src/vs/workbench/contrib/notebook/browser/services/notebookLoggingServiceImpl.js +0 -26
  424. package/vscode/src/vs/workbench/contrib/notebook/browser/services/notebookRendererMessagingServiceImpl.js +0 -63
  425. package/vscode/src/vs/workbench/contrib/notebook/browser/services/notebookServiceImpl.js +0 -639
  426. package/vscode/src/vs/workbench/contrib/notebook/browser/services/notebookWorkerServiceImpl.js +0 -198
  427. package/vscode/src/vs/workbench/contrib/notebook/common/model/cellEdit.js +0 -89
  428. package/vscode/src/vs/workbench/contrib/notebook/common/model/notebookTextModel.js +0 -1000
  429. package/vscode/src/vs/workbench/contrib/notebook/common/notebookDiffEditorInput.js +0 -101
  430. package/vscode/src/vs/workbench/contrib/notebook/common/notebookEditorModelResolverServiceImpl.js +0 -201
  431. package/vscode/src/vs/workbench/contrib/notebook/common/notebookOutputRenderer.js +0 -78
  432. package/vscode/src/vs/workbench/contrib/notebook/common/notebookProvider.js +0 -96
  433. package/vscode/src/vs/workbench/contrib/outline/browser/outline.contribution.js +0 -367
  434. package/vscode/src/vs/workbench/contrib/outline/browser/outlineActions.js +0 -172
  435. package/vscode/src/vs/workbench/contrib/outline/browser/outlinePane.css.js +0 -4
  436. package/vscode/src/vs/workbench/contrib/outline/browser/outlinePane.js +0 -316
  437. package/vscode/src/vs/workbench/contrib/outline/browser/outlineViewState.js +0 -66
  438. package/vscode/src/vs/workbench/contrib/output/browser/output.contribution.js +0 -613
  439. package/vscode/src/vs/workbench/contrib/output/browser/output.css.js +0 -4
  440. package/vscode/src/vs/workbench/contrib/output/browser/outputLinkProvider.js +0 -76
  441. package/vscode/src/vs/workbench/contrib/output/browser/outputServices.js +0 -200
  442. package/vscode/src/vs/workbench/contrib/output/browser/outputView.js +0 -224
  443. package/vscode/src/vs/workbench/contrib/performance/browser/inputLatencyContrib.js +0 -43
  444. package/vscode/src/vs/workbench/contrib/performance/browser/performance.contribution.js +0 -116
  445. package/vscode/src/vs/workbench/contrib/performance/browser/performance.web.contribution.js +0 -5
  446. package/vscode/src/vs/workbench/contrib/performance/browser/perfviewEditor.js +0 -340
  447. package/vscode/src/vs/workbench/contrib/performance/browser/startupTimings.js +0 -114
  448. package/vscode/src/vs/workbench/contrib/preferences/browser/keybindingsEditor.js +0 -1237
  449. package/vscode/src/vs/workbench/contrib/preferences/browser/keybindingsEditorContribution.js +0 -248
  450. package/vscode/src/vs/workbench/contrib/preferences/browser/media/keybindingsEditor.css.js +0 -4
  451. package/vscode/src/vs/workbench/contrib/preferences/browser/media/preferences.css.js +0 -4
  452. package/vscode/src/vs/workbench/contrib/preferences/browser/media/settingsEditor2.css.js +0 -4
  453. package/vscode/src/vs/workbench/contrib/preferences/browser/media/settingsWidgets.css.js +0 -4
  454. package/vscode/src/vs/workbench/contrib/preferences/browser/preferences.contribution.js +0 -1374
  455. package/vscode/src/vs/workbench/contrib/preferences/browser/preferencesActions.js +0 -104
  456. package/vscode/src/vs/workbench/contrib/preferences/browser/preferencesEditor.js +0 -47
  457. package/vscode/src/vs/workbench/contrib/preferences/browser/preferencesRenderers.js +0 -784
  458. package/vscode/src/vs/workbench/contrib/preferences/browser/preferencesSearch.js +0 -461
  459. package/vscode/src/vs/workbench/contrib/preferences/browser/settingsEditor2.js +0 -1578
  460. package/vscode/src/vs/workbench/contrib/preferences/browser/settingsEditorSettingIndicators.js +0 -624
  461. package/vscode/src/vs/workbench/contrib/preferences/browser/settingsSearchMenu.js +0 -135
  462. package/vscode/src/vs/workbench/contrib/preferences/browser/settingsTree.js +0 -2122
  463. package/vscode/src/vs/workbench/contrib/preferences/browser/settingsWidgets.js +0 -1158
  464. package/vscode/src/vs/workbench/contrib/preferences/browser/tocTree.js +0 -217
  465. package/vscode/src/vs/workbench/contrib/preferences/common/preferencesContribution.js +0 -160
  466. package/vscode/src/vs/workbench/contrib/preferences/common/smartSnippetInserter.js +0 -124
  467. package/vscode/src/vs/workbench/contrib/quickaccess/browser/commandsQuickAccess.js +0 -293
  468. package/vscode/src/vs/workbench/contrib/quickaccess/browser/quickAccess.contribution.js +0 -167
  469. package/vscode/src/vs/workbench/contrib/quickaccess/browser/viewQuickAccess.js +0 -264
  470. package/vscode/src/vs/workbench/contrib/relauncher/browser/relauncher.contribution.js +0 -206
  471. package/vscode/src/vs/workbench/contrib/remote/browser/explorerViewItems.js +0 -133
  472. package/vscode/src/vs/workbench/contrib/remote/browser/media/remoteViewlet.css.js +0 -4
  473. package/vscode/src/vs/workbench/contrib/remote/browser/remote.contribution.js +0 -18
  474. package/vscode/src/vs/workbench/contrib/remote/browser/remote.js +0 -829
  475. package/vscode/src/vs/workbench/contrib/remote/browser/remoteConnectionHealth.js +0 -164
  476. package/vscode/src/vs/workbench/contrib/remote/browser/remoteIndicator.js +0 -800
  477. package/vscode/src/vs/workbench/contrib/remote/browser/remoteStartEntry.contribution.js +0 -5
  478. package/vscode/src/vs/workbench/contrib/remote/browser/remoteStartEntry.js +0 -95
  479. package/vscode/src/vs/workbench/contrib/remote/browser/showCandidate.js +0 -33
  480. package/vscode/src/vs/workbench/contrib/remote/browser/tunnelFactory.js +0 -108
  481. package/vscode/src/vs/workbench/contrib/remote/common/remote.contribution.js +0 -513
  482. package/vscode/src/vs/workbench/contrib/scm/browser/activity.js +0 -306
  483. package/vscode/src/vs/workbench/contrib/scm/browser/media/scm.css.js +0 -4
  484. package/vscode/src/vs/workbench/contrib/scm/browser/menus.js +0 -278
  485. package/vscode/src/vs/workbench/contrib/scm/browser/scm.contribution.js +0 -701
  486. package/vscode/src/vs/workbench/contrib/scm/browser/scmRepositoriesViewPane.js +0 -172
  487. package/vscode/src/vs/workbench/contrib/scm/browser/scmRepositoryRenderer.js +0 -134
  488. package/vscode/src/vs/workbench/contrib/scm/browser/scmViewPane.js +0 -3365
  489. package/vscode/src/vs/workbench/contrib/scm/browser/scmViewPaneContainer.js +0 -52
  490. package/vscode/src/vs/workbench/contrib/scm/browser/scmViewService.js +0 -303
  491. package/vscode/src/vs/workbench/contrib/scm/browser/util.js +0 -119
  492. package/vscode/src/vs/workbench/contrib/scm/common/quickDiffService.js +0 -74
  493. package/vscode/src/vs/workbench/contrib/scm/common/scmService.js +0 -310
  494. package/vscode/src/vs/workbench/contrib/search/browser/anythingQuickAccess.js +0 -794
  495. package/vscode/src/vs/workbench/contrib/search/browser/media/anythingQuickAccess.css.js +0 -4
  496. package/vscode/src/vs/workbench/contrib/search/browser/media/searchview.css.js +0 -4
  497. package/vscode/src/vs/workbench/contrib/search/browser/patternInputWidget.js +0 -232
  498. package/vscode/src/vs/workbench/contrib/search/browser/quickTextSearch/textSearchQuickAccess.js +0 -339
  499. package/vscode/src/vs/workbench/contrib/search/browser/replaceContributions.js +0 -7
  500. package/vscode/src/vs/workbench/contrib/search/browser/replaceService.js +0 -230
  501. package/vscode/src/vs/workbench/contrib/search/browser/search.contribution.js +0 -646
  502. package/vscode/src/vs/workbench/contrib/search/browser/searchActionsCopy.js +0 -207
  503. package/vscode/src/vs/workbench/contrib/search/browser/searchActionsNav.js +0 -510
  504. package/vscode/src/vs/workbench/contrib/search/browser/searchActionsRemoveReplace.js +0 -372
  505. package/vscode/src/vs/workbench/contrib/search/browser/searchActionsSymbol.js +0 -42
  506. package/vscode/src/vs/workbench/contrib/search/browser/searchActionsTextQuickAccess.js +0 -43
  507. package/vscode/src/vs/workbench/contrib/search/browser/searchActionsTopBar.js +0 -322
  508. package/vscode/src/vs/workbench/contrib/search/browser/searchFindInput.js +0 -101
  509. package/vscode/src/vs/workbench/contrib/search/browser/searchIcons.js +0 -104
  510. package/vscode/src/vs/workbench/contrib/search/browser/searchMessage.js +0 -64
  511. package/vscode/src/vs/workbench/contrib/search/browser/searchResultsView.js +0 -435
  512. package/vscode/src/vs/workbench/contrib/search/browser/searchView.js +0 -2175
  513. package/vscode/src/vs/workbench/contrib/search/browser/searchWidget.js +0 -672
  514. package/vscode/src/vs/workbench/contrib/search/browser/symbolsQuickAccess.js +0 -232
  515. package/vscode/src/vs/workbench/contrib/search/common/cacheState.js +0 -85
  516. package/vscode/src/vs/workbench/contrib/searchEditor/browser/media/searchEditor.css.js +0 -4
  517. package/vscode/src/vs/workbench/contrib/searchEditor/browser/searchEditor.contribution.js +0 -585
  518. package/vscode/src/vs/workbench/contrib/searchEditor/browser/searchEditor.js +0 -758
  519. package/vscode/src/vs/workbench/contrib/searchEditor/browser/searchEditorActions.js +0 -187
  520. package/vscode/src/vs/workbench/contrib/searchEditor/browser/searchEditorInput.js +0 -318
  521. package/vscode/src/vs/workbench/contrib/searchEditor/browser/searchEditorModel.js +0 -136
  522. package/vscode/src/vs/workbench/contrib/searchEditor/browser/searchEditorSerialization.js +0 -291
  523. package/vscode/src/vs/workbench/contrib/share/browser/share.contribution.js +0 -167
  524. package/vscode/src/vs/workbench/contrib/share/browser/share.css.js +0 -4
  525. package/vscode/src/vs/workbench/contrib/share/browser/shareService.js +0 -70
  526. package/vscode/src/vs/workbench/contrib/snippets/browser/commands/configureSnippets.js +0 -331
  527. package/vscode/src/vs/workbench/contrib/snippets/browser/commands/insertSnippet.js +0 -127
  528. package/vscode/src/vs/workbench/contrib/snippets/browser/commands/surroundWithSnippet.js +0 -57
  529. package/vscode/src/vs/workbench/contrib/snippets/browser/snippetCodeActionProvider.js +0 -154
  530. package/vscode/src/vs/workbench/contrib/snippets/browser/snippetPicker.js +0 -111
  531. package/vscode/src/vs/workbench/contrib/snippets/browser/snippets.contribution.js +0 -141
  532. package/vscode/src/vs/workbench/contrib/speech/browser/speechService.js +0 -271
  533. package/vscode/src/vs/workbench/contrib/surveys/browser/ces.contribution.js +0 -137
  534. package/vscode/src/vs/workbench/contrib/surveys/browser/languageSurveys.contribution.js +0 -50
  535. package/vscode/src/vs/workbench/contrib/surveys/browser/nps.contribution.js +0 -92
  536. package/vscode/src/vs/workbench/contrib/tasks/browser/abstractTaskService.js +0 -3857
  537. package/vscode/src/vs/workbench/contrib/tasks/browser/runAutomaticTasks.js +0 -183
  538. package/vscode/src/vs/workbench/contrib/tasks/browser/task.contribution.js +0 -682
  539. package/vscode/src/vs/workbench/contrib/tasks/browser/taskQuickPick.js +0 -450
  540. package/vscode/src/vs/workbench/contrib/tasks/browser/taskService.js +0 -36
  541. package/vscode/src/vs/workbench/contrib/tasks/browser/taskTerminalStatus.js +0 -189
  542. package/vscode/src/vs/workbench/contrib/tasks/browser/tasksQuickAccess.js +0 -119
  543. package/vscode/src/vs/workbench/contrib/tasks/browser/terminalTaskSystem.js +0 -1711
  544. package/vscode/src/vs/workbench/contrib/tasks/common/jsonSchemaCommon.js +0 -437
  545. package/vscode/src/vs/workbench/contrib/tasks/common/jsonSchema_v1.js +0 -123
  546. package/vscode/src/vs/workbench/contrib/tasks/common/jsonSchema_v2.js +0 -899
  547. package/vscode/src/vs/workbench/contrib/tasks/common/problemCollectors.js +0 -463
  548. package/vscode/src/vs/workbench/contrib/tasks/common/problemMatcher.js +0 -1794
  549. package/vscode/src/vs/workbench/contrib/tasks/common/taskConfiguration.js +0 -1579
  550. package/vscode/src/vs/workbench/contrib/tasks/common/taskSystem.js +0 -14
  551. package/vscode/src/vs/workbench/contrib/tasks/common/taskTemplates.js +0 -143
  552. package/vscode/src/vs/workbench/contrib/terminal/browser/baseTerminalBackend.js +0 -114
  553. package/vscode/src/vs/workbench/contrib/terminal/browser/environmentVariableInfo.js +0 -133
  554. package/vscode/src/vs/workbench/contrib/terminal/browser/media/scrollbar.css.js +0 -4
  555. package/vscode/src/vs/workbench/contrib/terminal/browser/media/terminal.css.js +0 -4
  556. package/vscode/src/vs/workbench/contrib/terminal/browser/media/terminalVoice.css.js +0 -4
  557. package/vscode/src/vs/workbench/contrib/terminal/browser/media/widgets.css.js +0 -4
  558. package/vscode/src/vs/workbench/contrib/terminal/browser/media/xterm.css.js +0 -4
  559. package/vscode/src/vs/workbench/contrib/terminal/browser/remotePty.js +0 -91
  560. package/vscode/src/vs/workbench/contrib/terminal/browser/remoteTerminalBackend.js +0 -312
  561. package/vscode/src/vs/workbench/contrib/terminal/browser/terminal.contribution.js +0 -267
  562. package/vscode/src/vs/workbench/contrib/terminal/browser/terminal.web.contribution.js +0 -11
  563. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalActions.js +0 -2070
  564. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalCommands.js +0 -22
  565. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalConfigHelper.js +0 -221
  566. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalContextMenu.js +0 -40
  567. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalEditor.js +0 -193
  568. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalEditorSerializer.js +0 -40
  569. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalEditorService.js +0 -239
  570. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalEscapeSequences.js +0 -12
  571. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalGroup.js +0 -501
  572. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalGroupService.js +0 -368
  573. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalInstance.js +0 -2180
  574. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalInstanceService.js +0 -81
  575. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalMainContribution.js +0 -94
  576. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalMenus.js +0 -840
  577. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalProcessManager.js +0 -619
  578. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalProfileQuickpick.js +0 -312
  579. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalProfileResolverService.js +0 -285
  580. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalProfileService.js +0 -225
  581. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalQuickAccess.js +0 -155
  582. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalRunRecentQuickPick.js +0 -335
  583. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalService.js +0 -1156
  584. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalStatusList.js +0 -121
  585. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalTabbedView.js +0 -439
  586. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalTabsList.js +0 -690
  587. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalTooltip.js +0 -84
  588. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalUri.js +0 -39
  589. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalView.js +0 -628
  590. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalVoice.js +0 -199
  591. package/vscode/src/vs/workbench/contrib/terminal/browser/widgets/terminalHoverWidget.js +0 -91
  592. package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/lineDataEventAddon.js +0 -56
  593. package/vscode/src/vs/workbench/contrib/terminal/common/basePty.js +0 -91
  594. package/vscode/src/vs/workbench/contrib/terminal/common/environmentVariableService.js +0 -96
  595. package/vscode/src/vs/workbench/contrib/terminal/common/history.js +0 -375
  596. package/vscode/src/vs/workbench/contrib/terminal/common/remote/remoteTerminalChannel.js +0 -253
  597. package/vscode/src/vs/workbench/contrib/terminal/common/terminalClipboard.js +0 -98
  598. package/vscode/src/vs/workbench/contrib/terminal/common/terminalConfiguration.js +0 -1351
  599. package/vscode/src/vs/workbench/contrib/terminal/common/terminalEnvironment.js +0 -282
  600. package/vscode/src/vs/workbench/contrib/terminal/common/terminalStrings.js +0 -145
  601. package/vscode/src/vs/workbench/contrib/terminalContrib/accessibility/browser/bufferContentTracker.js +0 -112
  602. package/vscode/src/vs/workbench/contrib/terminalContrib/accessibility/browser/terminal.accessibility.contribution.js +0 -389
  603. package/vscode/src/vs/workbench/contrib/terminalContrib/accessibility/browser/terminalAccessibilityHelp.js +0 -190
  604. package/vscode/src/vs/workbench/contrib/terminalContrib/accessibility/browser/terminalAccessibleBufferProvider.js +0 -102
  605. package/vscode/src/vs/workbench/contrib/terminalContrib/accessibility/browser/textAreaSyncAddon.js +0 -106
  606. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/media/terminalChatWidget.css.js +0 -4
  607. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminal.chat.contribution.js +0 -9
  608. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChat.js +0 -84
  609. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +0 -125
  610. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibleView.js +0 -31
  611. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +0 -344
  612. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatController.js +0 -335
  613. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +0 -154
  614. package/vscode/src/vs/workbench/contrib/terminalContrib/developer/browser/media/developer.css.js +0 -4
  615. package/vscode/src/vs/workbench/contrib/terminalContrib/developer/browser/terminal.developer.contribution.js +0 -237
  616. package/vscode/src/vs/workbench/contrib/terminalContrib/environmentChanges/browser/terminal.environmentChanges.contribution.js +0 -114
  617. package/vscode/src/vs/workbench/contrib/terminalContrib/find/browser/terminal.find.contribution.js +0 -264
  618. package/vscode/src/vs/workbench/contrib/terminalContrib/find/browser/terminalFindWidget.js +0 -165
  619. package/vscode/src/vs/workbench/contrib/terminalContrib/find/browser/textInputContextMenu.js +0 -61
  620. package/vscode/src/vs/workbench/contrib/terminalContrib/highlight/browser/terminal.highlight.contribution.js +0 -36
  621. package/vscode/src/vs/workbench/contrib/terminalContrib/links/browser/terminal.links.contribution.js +0 -132
  622. package/vscode/src/vs/workbench/contrib/terminalContrib/links/browser/terminalExternalLinkDetector.js +0 -38
  623. package/vscode/src/vs/workbench/contrib/terminalContrib/links/browser/terminalLink.js +0 -120
  624. package/vscode/src/vs/workbench/contrib/terminalContrib/links/browser/terminalLinkDetectorAdapter.js +0 -108
  625. package/vscode/src/vs/workbench/contrib/terminalContrib/links/browser/terminalLinkHelpers.js +0 -175
  626. package/vscode/src/vs/workbench/contrib/terminalContrib/links/browser/terminalLinkManager.js +0 -394
  627. package/vscode/src/vs/workbench/contrib/terminalContrib/links/browser/terminalLinkOpeners.js +0 -240
  628. package/vscode/src/vs/workbench/contrib/terminalContrib/links/browser/terminalLinkParsing.js +0 -206
  629. package/vscode/src/vs/workbench/contrib/terminalContrib/links/browser/terminalLinkQuickpick.js +0 -264
  630. package/vscode/src/vs/workbench/contrib/terminalContrib/links/browser/terminalLinkResolver.js +0 -141
  631. package/vscode/src/vs/workbench/contrib/terminalContrib/links/browser/terminalLocalLinkDetector.js +0 -220
  632. package/vscode/src/vs/workbench/contrib/terminalContrib/links/browser/terminalMultiLineLinkDetector.js +0 -182
  633. package/vscode/src/vs/workbench/contrib/terminalContrib/links/browser/terminalUriLinkDetector.js +0 -119
  634. package/vscode/src/vs/workbench/contrib/terminalContrib/links/browser/terminalWordLinkDetector.js +0 -94
  635. package/vscode/src/vs/workbench/contrib/terminalContrib/quickFix/browser/media/terminalQuickFix.css.js +0 -4
  636. package/vscode/src/vs/workbench/contrib/terminalContrib/quickFix/browser/quickFixAddon.js +0 -451
  637. package/vscode/src/vs/workbench/contrib/terminalContrib/quickFix/browser/terminal.quickFix.contribution.js +0 -61
  638. package/vscode/src/vs/workbench/contrib/terminalContrib/quickFix/browser/terminalQuickFixBuiltinActions.js +0 -323
  639. package/vscode/src/vs/workbench/contrib/terminalContrib/quickFix/browser/terminalQuickFixService.js +0 -168
  640. package/vscode/src/vs/workbench/contrib/terminalContrib/stickyScroll/browser/media/stickyScroll.css.js +0 -4
  641. package/vscode/src/vs/workbench/contrib/terminalContrib/stickyScroll/browser/terminal.stickyScroll.contribution.js +0 -5
  642. package/vscode/src/vs/workbench/contrib/terminalContrib/stickyScroll/browser/terminalStickyScrollColorRegistry.js +0 -35
  643. package/vscode/src/vs/workbench/contrib/terminalContrib/stickyScroll/browser/terminalStickyScrollContribution.js +0 -91
  644. package/vscode/src/vs/workbench/contrib/terminalContrib/stickyScroll/browser/terminalStickyScrollOverlay.js +0 -379
  645. package/vscode/src/vs/workbench/contrib/terminalContrib/suggest/browser/terminal.suggest.contribution.js +0 -181
  646. package/vscode/src/vs/workbench/contrib/terminalContrib/suggest/browser/terminalSuggestAddon.js +0 -406
  647. package/vscode/src/vs/workbench/contrib/terminalContrib/typeAhead/browser/terminal.typeAhead.contribution.js +0 -54
  648. package/vscode/src/vs/workbench/contrib/terminalContrib/typeAhead/browser/terminalTypeAheadAddon.js +0 -1047
  649. package/vscode/src/vs/workbench/contrib/terminalContrib/zoom/browser/terminal.zoom.contribution.js +0 -130
  650. package/vscode/src/vs/workbench/contrib/testing/browser/codeCoverageDecorations.js +0 -589
  651. package/vscode/src/vs/workbench/contrib/testing/browser/explorerProjections/display.js +0 -2
  652. package/vscode/src/vs/workbench/contrib/testing/browser/explorerProjections/index.js +0 -81
  653. package/vscode/src/vs/workbench/contrib/testing/browser/explorerProjections/listProjection.js +0 -184
  654. package/vscode/src/vs/workbench/contrib/testing/browser/explorerProjections/testItemContextOverlay.js +0 -16
  655. package/vscode/src/vs/workbench/contrib/testing/browser/explorerProjections/testingObjectTree.js +0 -44
  656. package/vscode/src/vs/workbench/contrib/testing/browser/explorerProjections/testingViewState.js +0 -15
  657. package/vscode/src/vs/workbench/contrib/testing/browser/explorerProjections/treeProjection.js +0 -222
  658. package/vscode/src/vs/workbench/contrib/testing/browser/icons.js +0 -182
  659. package/vscode/src/vs/workbench/contrib/testing/browser/media/testMessageColorizer.css.js +0 -4
  660. package/vscode/src/vs/workbench/contrib/testing/browser/media/testing.css.js +0 -4
  661. package/vscode/src/vs/workbench/contrib/testing/browser/testCoverageBars.js +0 -238
  662. package/vscode/src/vs/workbench/contrib/testing/browser/testCoverageView.js +0 -562
  663. package/vscode/src/vs/workbench/contrib/testing/browser/testExplorerActions.js +0 -1671
  664. package/vscode/src/vs/workbench/contrib/testing/browser/testMessageColorizer.js +0 -71
  665. package/vscode/src/vs/workbench/contrib/testing/browser/testing.contribution.js +0 -224
  666. package/vscode/src/vs/workbench/contrib/testing/browser/testingConfigurationUi.js +0 -119
  667. package/vscode/src/vs/workbench/contrib/testing/browser/testingDecorations.js +0 -968
  668. package/vscode/src/vs/workbench/contrib/testing/browser/testingExplorerFilter.js +0 -234
  669. package/vscode/src/vs/workbench/contrib/testing/browser/testingExplorerView.js +0 -1239
  670. package/vscode/src/vs/workbench/contrib/testing/browser/testingOutputPeek.css.js +0 -4
  671. package/vscode/src/vs/workbench/contrib/testing/browser/testingOutputPeek.js +0 -2108
  672. package/vscode/src/vs/workbench/contrib/testing/browser/testingProgressUiService.js +0 -140
  673. package/vscode/src/vs/workbench/contrib/testing/browser/testingViewPaneContainer.js +0 -45
  674. package/vscode/src/vs/workbench/contrib/testing/browser/theme.js +0 -335
  675. package/vscode/src/vs/workbench/contrib/testing/common/configuration.js +0 -274
  676. package/vscode/src/vs/workbench/contrib/testing/common/constants.js +0 -57
  677. package/vscode/src/vs/workbench/contrib/testing/common/mainThreadTestCollection.js +0 -127
  678. package/vscode/src/vs/workbench/contrib/testing/common/observableUtils.js +0 -19
  679. package/vscode/src/vs/workbench/contrib/testing/common/testExclusions.js +0 -46
  680. package/vscode/src/vs/workbench/contrib/testing/common/testServiceImpl.js +0 -294
  681. package/vscode/src/vs/workbench/contrib/testing/common/testingContentProvider.js +0 -123
  682. package/vscode/src/vs/workbench/contrib/testing/common/testingUri.js +0 -65
  683. package/vscode/src/vs/workbench/contrib/themes/browser/themes.contribution.js +0 -955
  684. package/vscode/src/vs/workbench/contrib/timeline/browser/media/timelinePane.css.js +0 -4
  685. package/vscode/src/vs/workbench/contrib/timeline/browser/timeline.contribution.js +0 -118
  686. package/vscode/src/vs/workbench/contrib/timeline/browser/timelinePane.js +0 -1161
  687. package/vscode/src/vs/workbench/contrib/timeline/common/timelineService.js +0 -106
  688. package/vscode/src/vs/workbench/contrib/update/browser/media/releasenoteseditor.css.js +0 -4
  689. package/vscode/src/vs/workbench/contrib/update/browser/releaseNotesEditor.js +0 -411
  690. package/vscode/src/vs/workbench/contrib/update/browser/update.contribution.js +0 -252
  691. package/vscode/src/vs/workbench/contrib/update/browser/update.js +0 -676
  692. package/vscode/src/vs/workbench/contrib/url/browser/externalUriResolver.js +0 -26
  693. package/vscode/src/vs/workbench/contrib/url/browser/trustedDomains.js +0 -198
  694. package/vscode/src/vs/workbench/contrib/url/browser/trustedDomainsFileSystemProvider.js +0 -135
  695. package/vscode/src/vs/workbench/contrib/url/browser/trustedDomainsValidator.js +0 -203
  696. package/vscode/src/vs/workbench/contrib/url/browser/url.contribution.js +0 -66
  697. package/vscode/src/vs/workbench/contrib/userDataSync/browser/userDataSync.contribution.js +0 -110
  698. package/vscode/src/vs/workbench/contrib/userDataSync/browser/userDataSync.js +0 -1466
  699. package/vscode/src/vs/workbench/contrib/userDataSync/browser/userDataSyncConflictsView.js +0 -223
  700. package/vscode/src/vs/workbench/contrib/userDataSync/browser/userDataSyncTrigger.js +0 -59
  701. package/vscode/src/vs/workbench/contrib/userDataSync/browser/userDataSyncViews.js +0 -858
  702. package/vscode/src/vs/workbench/contrib/welcomeBanner/browser/welcomeBanner.contribution.js +0 -45
  703. package/vscode/src/vs/workbench/contrib/welcomeDialog/browser/media/welcomeWidget.css.js +0 -4
  704. package/vscode/src/vs/workbench/contrib/welcomeDialog/browser/welcomeDialog.contribution.js +0 -102
  705. package/vscode/src/vs/workbench/contrib/welcomeDialog/browser/welcomeWidget.js +0 -187
  706. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.contribution.js +0 -380
  707. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.js +0 -1526
  708. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedColors.js +0 -47
  709. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedDetailsRenderer.js +0 -261
  710. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedIcons.js +0 -14
  711. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedInput.js +0 -51
  712. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedList.js +0 -95
  713. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/media/gettingStarted.css.js +0 -4
  714. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/startupPage.js +0 -216
  715. package/vscode/src/vs/workbench/contrib/welcomeViews/common/newFile.contribution.js +0 -237
  716. package/vscode/src/vs/workbench/contrib/welcomeViews/common/viewsWelcome.contribution.js +0 -18
  717. package/vscode/src/vs/workbench/contrib/welcomeViews/common/viewsWelcomeContribution.js +0 -73
  718. package/vscode/src/vs/workbench/contrib/welcomeViews/common/viewsWelcomeExtensionPoint.js +0 -97
  719. package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/editor/editorWalkThrough.js +0 -61
  720. package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/media/walkThroughPart.css.js +0 -4
  721. package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/walkThrough.contribution.js +0 -38
  722. package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/walkThroughActions.js +0 -57
  723. package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/walkThroughInput.js +0 -113
  724. package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/walkThroughPart.js +0 -429
  725. package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/common/walkThroughContentProvider.js +0 -74
  726. package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/common/walkThroughUtils.js +0 -18
  727. package/vscode/src/vs/workbench/contrib/workspace/browser/media/workspaceTrustEditor.css.js +0 -4
  728. package/vscode/src/vs/workbench/contrib/workspace/browser/workspace.contribution.js +0 -976
  729. package/vscode/src/vs/workbench/contrib/workspace/browser/workspaceTrustEditor.js +0 -1243
  730. package/vscode/src/vs/workbench/contrib/workspaces/browser/workspaces.contribution.js +0 -132
  731. package/vscode/src/vs/workbench/services/actions/common/menusExtensionPoint.js +0 -1595
  732. package/vscode/src/vs/workbench/services/aiRelatedInformation/common/aiRelatedInformationService.js +0 -82
  733. package/vscode/src/vs/workbench/services/authentication/browser/authenticationExtensionsService.js +0 -369
  734. package/vscode/src/vs/workbench/services/commands/common/commandService.js +0 -77
  735. package/vscode/src/vs/workbench/services/configuration/browser/configuration.js +0 -850
  736. package/vscode/src/vs/workbench/services/configuration/browser/configurationService.js +0 -1199
  737. package/vscode/src/vs/workbench/services/configuration/common/configurationEditing.js +0 -666
  738. package/vscode/src/vs/workbench/services/configuration/common/configurationModels.js +0 -119
  739. package/vscode/src/vs/workbench/services/configuration/common/jsonEditingService.js +0 -120
  740. package/vscode/src/vs/workbench/services/configurationResolver/browser/baseConfigurationResolverService.js +0 -309
  741. package/vscode/src/vs/workbench/services/configurationResolver/browser/configurationResolverService.js +0 -27
  742. package/vscode/src/vs/workbench/services/decorations/browser/decorationsService.js +0 -330
  743. package/vscode/src/vs/workbench/services/dialogs/browser/abstractFileDialogService.js +0 -377
  744. package/vscode/src/vs/workbench/services/dialogs/browser/simpleFileDialog.js +0 -1037
  745. package/vscode/src/vs/workbench/services/dialogs/common/dialogService.js +0 -70
  746. package/vscode/src/vs/workbench/services/extensionManagement/browser/extensionEnablementService.js +0 -638
  747. package/vscode/src/vs/workbench/services/extensionManagement/browser/extensionsProfileScannerService.js +0 -22
  748. package/vscode/src/vs/workbench/services/extensionManagement/browser/webExtensionsScannerService.js +0 -892
  749. package/vscode/src/vs/workbench/services/extensionManagement/common/extensionFeaturesManagemetService.js +0 -232
  750. package/vscode/src/vs/workbench/services/extensionManagement/common/extensionManagementChannelClient.js +0 -107
  751. package/vscode/src/vs/workbench/services/extensionManagement/common/extensionManagementServerService.js +0 -61
  752. package/vscode/src/vs/workbench/services/extensionManagement/common/extensionManagementService.js +0 -1043
  753. package/vscode/src/vs/workbench/services/extensionManagement/common/remoteExtensionManagementService.js +0 -56
  754. package/vscode/src/vs/workbench/services/extensionManagement/common/webExtensionManagementService.js +0 -279
  755. package/vscode/src/vs/workbench/services/extensionRecommendations/common/extensionIgnoredRecommendationsService.js +0 -82
  756. package/vscode/src/vs/workbench/services/extensions/browser/extensionService.js +0 -283
  757. package/vscode/src/vs/workbench/services/extensions/browser/extensionsScannerService.js +0 -31
  758. package/vscode/src/vs/workbench/services/extensions/browser/webWorkerExtensionHost.js +0 -274
  759. package/vscode/src/vs/workbench/services/extensions/browser/webWorkerFileSystemProvider.js +0 -50
  760. package/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.js +0 -1147
  761. package/vscode/src/vs/workbench/services/extensions/common/extHostCustomers.js +0 -40
  762. package/vscode/src/vs/workbench/services/extensions/common/extensionDevOptions.js +0 -23
  763. package/vscode/src/vs/workbench/services/extensions/common/extensionHostManager.js +0 -510
  764. package/vscode/src/vs/workbench/services/extensions/common/extensionRunningLocationTracker.js +0 -272
  765. package/vscode/src/vs/workbench/services/extensions/common/extensionStorageMigration.js +0 -56
  766. package/vscode/src/vs/workbench/services/extensions/common/extensionsProposedApi.js +0 -78
  767. package/vscode/src/vs/workbench/services/extensions/common/extensionsUtil.js +0 -62
  768. package/vscode/src/vs/workbench/services/extensions/common/lazyCreateExtensionHostManager.js +0 -159
  769. package/vscode/src/vs/workbench/services/extensions/common/remoteConsoleUtil.js +0 -47
  770. package/vscode/src/vs/workbench/services/extensions/common/remoteExtensionHost.js +0 -220
  771. package/vscode/src/vs/workbench/services/host/browser/browserHostService.js +0 -428
  772. package/vscode/src/vs/workbench/services/issue/browser/issueService.js +0 -97
  773. package/vscode/src/vs/workbench/services/keybinding/browser/keybindingService.js +0 -945
  774. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayoutService.js +0 -500
  775. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/_.contribution.js +0 -13
  776. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/cz.win.js +0 -162
  777. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/de-swiss.win.js +0 -162
  778. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/de.darwin.js +0 -125
  779. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/de.linux.js +0 -180
  780. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/de.win.js +0 -162
  781. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/dk.win.js +0 -162
  782. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/dvorak.darwin.js +0 -125
  783. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/en-belgian.win.js +0 -162
  784. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/en-ext.darwin.js +0 -125
  785. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/en-in.win.js +0 -162
  786. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/en-intl.darwin.js +0 -125
  787. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/en-intl.win.js +0 -162
  788. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/en-uk.darwin.js +0 -125
  789. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/en-uk.win.js +0 -162
  790. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/en.darwin.js +0 -133
  791. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/en.linux.js +0 -182
  792. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/en.win.js +0 -167
  793. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/es-latin.win.js +0 -162
  794. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/es.darwin.js +0 -125
  795. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/es.linux.js +0 -180
  796. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/es.win.js +0 -162
  797. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/fr.darwin.js +0 -125
  798. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/fr.linux.js +0 -180
  799. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/fr.win.js +0 -162
  800. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/hu.win.js +0 -162
  801. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/it.darwin.js +0 -125
  802. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/it.win.js +0 -162
  803. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/jp-roman.darwin.js +0 -125
  804. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/jp.darwin.js +0 -125
  805. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/ko.darwin.js +0 -125
  806. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/layout.contribution.darwin.js +0 -17
  807. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/layout.contribution.linux.js +0 -6
  808. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/layout.contribution.win.js +0 -23
  809. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/no.win.js +0 -162
  810. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/pl.darwin.js +0 -125
  811. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/pl.win.js +0 -162
  812. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/pt-br.win.js +0 -162
  813. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/pt.darwin.js +0 -125
  814. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/pt.win.js +0 -162
  815. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/ru.darwin.js +0 -125
  816. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/ru.linux.js +0 -180
  817. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/ru.win.js +0 -162
  818. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/sv.win.js +0 -164
  819. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/thai.win.js +0 -162
  820. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/tr.win.js +0 -162
  821. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/zh-hans.darwin.js +0 -125
  822. package/vscode/src/vs/workbench/services/keybinding/common/keybindingIO.js +0 -72
  823. package/vscode/src/vs/workbench/services/keybinding/common/keymapInfo.js +0 -108
  824. package/vscode/src/vs/workbench/services/keybinding/common/macLinuxKeyboardMapper.js +0 -886
  825. package/vscode/src/vs/workbench/services/keybinding/common/windowsKeyboardMapper.js +0 -350
  826. package/vscode/src/vs/workbench/services/label/common/labelService.js +0 -435
  827. package/vscode/src/vs/workbench/services/languageDetection/browser/languageDetectionWorkerServiceImpl.js +0 -259
  828. package/vscode/src/vs/workbench/services/lifecycle/browser/lifecycleService.js +0 -135
  829. package/vscode/src/vs/workbench/services/notification/common/notificationService.js +0 -251
  830. package/vscode/src/vs/workbench/services/preferences/browser/preferencesService.js +0 -551
  831. package/vscode/src/vs/workbench/services/quickinput/browser/quickInputService.js +0 -37
  832. package/vscode/src/vs/workbench/services/remote/browser/browserRemoteResourceHandler.js +0 -47
  833. package/vscode/src/vs/workbench/services/remote/browser/remoteAgentService.js +0 -76
  834. package/vscode/src/vs/workbench/services/remote/common/abstractRemoteAgentService.js +0 -177
  835. package/vscode/src/vs/workbench/services/remote/common/remoteAgentEnvironmentChannel.js +0 -52
  836. package/vscode/src/vs/workbench/services/remote/common/remoteExtensionsScanner.js +0 -71
  837. package/vscode/src/vs/workbench/services/request/browser/requestService.js +0 -48
  838. package/vscode/src/vs/workbench/services/search/common/searchService.js +0 -414
  839. package/vscode/src/vs/workbench/services/storage/browser/storageService.js +0 -290
  840. package/vscode/src/vs/workbench/services/suggest/browser/media/suggest.css.js +0 -4
  841. package/vscode/src/vs/workbench/services/suggest/browser/simpleCompletionItem.js +0 -9
  842. package/vscode/src/vs/workbench/services/suggest/browser/simpleCompletionModel.js +0 -97
  843. package/vscode/src/vs/workbench/services/suggest/browser/simpleSuggestWidget.js +0 -428
  844. package/vscode/src/vs/workbench/services/suggest/browser/simpleSuggestWidgetRenderer.js +0 -83
  845. package/vscode/src/vs/workbench/services/textMate/browser/arrayOperation.js +0 -62
  846. package/vscode/src/vs/workbench/services/textMate/browser/backgroundTokenization/textMateWorkerTokenizerController.js +0 -160
  847. package/vscode/src/vs/workbench/services/textMate/browser/backgroundTokenization/threadedBackgroundTokenizerFactory.js +0 -200
  848. package/vscode/src/vs/workbench/services/textMate/browser/textMateTokenizationFeatureImpl.js +0 -482
  849. package/vscode/src/vs/workbench/services/textMate/browser/tokenizationSupport/textMateTokenizationSupport.js +0 -72
  850. package/vscode/src/vs/workbench/services/textMate/browser/tokenizationSupport/tokenizationSupportWithLineLimit.js +0 -39
  851. package/vscode/src/vs/workbench/services/textMate/common/TMGrammarFactory.js +0 -118
  852. package/vscode/src/vs/workbench/services/textMate/common/TMScopeRegistry.js +0 -15
  853. package/vscode/src/vs/workbench/services/textfile/browser/browserTextFileService.js +0 -57
  854. package/vscode/src/vs/workbench/services/textfile/browser/textFileService.js +0 -652
  855. package/vscode/src/vs/workbench/services/textfile/common/textFileEditorModelManager.js +0 -402
  856. package/vscode/src/vs/workbench/services/textfile/common/textFileSaveParticipant.js +0 -62
  857. package/vscode/src/vs/workbench/services/textmodelResolver/common/textModelResolverService.js +0 -191
  858. package/vscode/src/vs/workbench/services/textresourceProperties/common/textResourcePropertiesService.js +0 -44
  859. package/vscode/src/vs/workbench/services/themes/browser/fileIconThemeData.js +0 -372
  860. package/vscode/src/vs/workbench/services/themes/browser/productIconThemeData.js +0 -305
  861. package/vscode/src/vs/workbench/services/themes/browser/workbenchThemeService.js +0 -768
  862. package/vscode/src/vs/workbench/services/themes/common/colorThemeData.js +0 -886
  863. package/vscode/src/vs/workbench/services/themes/common/colorThemeSchema.js +0 -309
  864. package/vscode/src/vs/workbench/services/themes/common/fileIconThemeSchema.js +0 -432
  865. package/vscode/src/vs/workbench/services/themes/common/plistParser.js +0 -439
  866. package/vscode/src/vs/workbench/services/themes/common/productIconThemeSchema.js +0 -114
  867. package/vscode/src/vs/workbench/services/themes/common/textMateScopeMatcher.js +0 -120
  868. package/vscode/src/vs/workbench/services/themes/common/themeCompatibility.js +0 -76
  869. package/vscode/src/vs/workbench/services/themes/common/themeConfiguration.js +0 -469
  870. package/vscode/src/vs/workbench/services/themes/common/themeExtensionPoints.js +0 -340
  871. package/vscode/src/vs/workbench/services/tunnel/browser/tunnelService.js +0 -34
  872. package/vscode/src/vs/workbench/services/url/browser/urlService.js +0 -48
  873. package/vscode/src/vs/workbench/services/userDataProfile/browser/extensionsResource.js +0 -340
  874. package/vscode/src/vs/workbench/services/userDataProfile/browser/globalStateResource.js +0 -145
  875. package/vscode/src/vs/workbench/services/userDataProfile/browser/iconSelectBox.js +0 -96
  876. package/vscode/src/vs/workbench/services/userDataProfile/browser/keybindingsResource.js +0 -117
  877. package/vscode/src/vs/workbench/services/userDataProfile/browser/media/userDataProfileView.css.js +0 -4
  878. package/vscode/src/vs/workbench/services/userDataProfile/browser/settingsResource.js +0 -138
  879. package/vscode/src/vs/workbench/services/userDataProfile/browser/snippetsResource.js +0 -153
  880. package/vscode/src/vs/workbench/services/userDataProfile/browser/tasksResource.js +0 -116
  881. package/vscode/src/vs/workbench/services/userDataProfile/browser/userDataProfileImportExportService.js +0 -1752
  882. package/vscode/src/vs/workbench/services/userDataProfile/browser/userDataProfileInit.js +0 -148
  883. package/vscode/src/vs/workbench/services/userDataProfile/browser/userDataProfileManagement.js +0 -188
  884. package/vscode/src/vs/workbench/services/userDataSync/browser/userDataSyncInit.js +0 -445
  885. package/vscode/src/vs/workbench/services/userDataSync/browser/userDataSyncWorkbenchService.js +0 -786
  886. package/vscode/src/vs/workbench/services/userDataSync/common/userDataSyncUtil.js +0 -46
  887. package/vscode/src/vs/workbench/services/workingCopy/browser/workingCopyBackupService.js +0 -23
  888. package/vscode/src/vs/workbench/services/workingCopy/browser/workingCopyBackupTracker.js +0 -43
  889. package/vscode/src/vs/workbench/services/workingCopy/browser/workingCopyHistoryService.js +0 -28
  890. package/vscode/src/vs/workbench/services/workingCopy/common/abstractFileWorkingCopyManager.js +0 -87
  891. package/vscode/src/vs/workbench/services/workingCopy/common/fileWorkingCopyManager.js +0 -384
  892. package/vscode/src/vs/workbench/services/workingCopy/common/storedFileWorkingCopyManager.js +0 -406
  893. package/vscode/src/vs/workbench/services/workingCopy/common/untitledFileWorkingCopy.js +0 -142
  894. package/vscode/src/vs/workbench/services/workingCopy/common/untitledFileWorkingCopyManager.js +0 -127
  895. package/vscode/src/vs/workbench/services/workingCopy/common/workingCopyBackupService.js +0 -452
  896. package/vscode/src/vs/workbench/services/workingCopy/common/workingCopyBackupTracker.js +0 -253
  897. package/vscode/src/vs/workbench/services/workingCopy/common/workingCopyHistoryService.js +0 -616
  898. package/vscode/src/vs/workbench/services/workingCopy/common/workingCopyHistoryTracker.js +0 -162
  899. package/vscode/src/vs/workbench/services/workspaces/browser/abstractWorkspaceEditingService.js +0 -335
  900. package/vscode/src/vs/workbench/services/workspaces/browser/workspaceTrustEditorInput.js +0 -41
  901. package/vscode/src/vs/workbench/services/workspaces/browser/workspacesService.js +0 -151
  902. package/vscode/src/vs/workbench/services/workspaces/common/editSessionIdentityService.js +0 -60
@@ -1,3857 +0,0 @@
1
- import { __decorate, __param } from '../../../../../../../external/tslib/tslib.es6.js';
2
- import { Action } from '../../../../base/common/actions.js';
3
- import { Emitter, Event } from '../../../../base/common/event.js';
4
- import { match } from '../../../../base/common/glob.js';
5
- import { parse as parse$1 } from '../../../../base/common/json.js';
6
- import { Disposable, dispose } from '../../../../base/common/lifecycle.js';
7
- import { LRUCache } from '../../../../base/common/map.js';
8
- import { deepClone } from '../../../../base/common/objects.js';
9
- import { ValidationStatus } from '../../../../base/common/parsers.js';
10
- import { isWeb, platform } from '../../../../base/common/platform.js';
11
- import { basename, joinPath, dirname, relativePath } from '../../../../base/common/resources.js';
12
- import Severity$1 from '../../../../base/common/severity.js';
13
- import { isString, isBoolean, isStringArray } from '../../../../base/common/types.js';
14
- import { URI } from '../../../../base/common/uri.js';
15
- import { generateUuid } from '../../../../base/common/uuid.js';
16
- import { localizeWithPath, localize2WithPath } from '../../../../nls.js';
17
- import { CommandsRegistry, ICommandService } from '../../../../platform/commands/common/commands.js';
18
- import { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';
19
- import { IFileService } from '../../../../platform/files/common/files.js';
20
- import { IMarkerService } from '../../../../platform/markers/common/markers.js';
21
- import { IProgressService } from '../../../../platform/progress/common/progress.js';
22
- import { IStorageService } from '../../../../platform/storage/common/storage.js';
23
- import { ITelemetryService } from '../../../../platform/telemetry/common/telemetry.js';
24
- import { ProblemMatcherRegistry } from '../common/problemMatcher.js';
25
- import { IExtensionService } from '../../../services/extensions/common/extensions.js';
26
- import '../../../../../../../override/vs/platform/dialogs/common/dialogs.js';
27
- import { INotificationService } from '../../../../platform/notification/common/notification.js';
28
- import { IOpenerService } from '../../../../platform/opener/common/opener.js';
29
- import { IModelService } from '../../../../editor/common/services/model.js';
30
- import { WorkspaceFolder, IWorkspaceContextService } from '../../../../platform/workspace/common/workspace.js';
31
- import { Markers } from '../../markers/common/markers.js';
32
- import { IConfigurationResolverService } from '../../../services/configurationResolver/common/configurationResolver.js';
33
- import { IEditorService } from '../../../services/editor/common/editorService.js';
34
- import { IOutputService } from '../../../services/output/common/output.js';
35
- import { ITextFileService } from '../../../services/textfile/common/textfiles.js';
36
- import { ITerminalService, ITerminalGroupService } from '../../terminal/browser/terminal.js';
37
- import { ITerminalProfileResolverService } from '../../terminal/common/terminal.js';
38
- import { TASK_RUNNING_STATE, TaskGroup, ConfiguringTask, TaskSourceKind, TaskDefinition, USER_TASKS_GROUP_KEY, ContributedTask, CustomTask, TaskSorter, InMemoryTask, KeyedTaskIdentifier, ExecutionEngine, RuntimeType } from '../common/tasks.js';
39
- import { TaskCommandsRegistered, ServerlessWebContext, CustomExecutionSupportedContext, ShellExecutionSupportedContext, ProcessExecutionSupportedContext, TaskExecutionSupportedContext } from '../common/taskService.js';
40
- import { TaskError } from '../common/taskSystem.js';
41
- import { getTemplates } from '../common/taskTemplates.js';
42
- import { createCustomTask, TaskConfigSource, GroupKind, parse, ExecutionEngine as ExecutionEngine$1, JsonSchemaVersion } from '../common/taskConfiguration.js';
43
- import { TerminalTaskSystem } from './terminalTaskSystem.js';
44
- import { IQuickInputService } from '../../../../platform/quickinput/common/quickInput.js';
45
- import { IContextKeyService } from '../../../../platform/contextkey/common/contextkey.js';
46
- import { TaskDefinitionRegistry } from '../common/taskDefinitionRegistry.js';
47
- import { raceTimeout } from '../../../../base/common/async.js';
48
- import { CancellationTokenSource } from '../../../../base/common/cancellation.js';
49
- import { toFormattedString } from '../../../../base/common/jsonFormatter.js';
50
- import { Schemas } from '../../../../base/common/network.js';
51
- import { ThemeIcon } from '../../../../base/common/themables.js';
52
- import { ITextModelService } from '../../../../editor/common/services/resolverService.js';
53
- import { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';
54
- import { ILogService } from '../../../../platform/log/common/log.js';
55
- import { TerminalExitReason } from '../../../../platform/terminal/common/terminal.js';
56
- import { IThemeService } from '../../../../platform/theme/common/themeService.js';
57
- import { IWorkspaceTrustRequestService, IWorkspaceTrustManagementService } from '../../../../platform/workspace/common/workspaceTrust.js';
58
- import { VirtualWorkspaceContext } from '../../../common/contextkeys.js';
59
- import { EditorResourceAccessor } from '../../../common/editor.js';
60
- import { IViewDescriptorService } from '../../../common/views.js';
61
- import { IViewsService } from '../../../services/views/common/viewsService.js';
62
- import { isWorkspaceFolder, QUICKOPEN_DETAIL_CONFIG, TaskQuickPick, QUICKOPEN_SKIP_CONFIG, configureTaskIcon } from './taskQuickPick.js';
63
- import { IWorkbenchEnvironmentService } from '../../../services/environment/common/environmentService.js';
64
- import { ILifecycleService } from '../../../services/lifecycle/common/lifecycle.js';
65
- import { IPaneCompositePartService } from '../../../services/panecomposite/browser/panecomposite.js';
66
- import { IPathService } from '../../../services/path/common/pathService.js';
67
- import { IPreferencesService } from '../../../services/preferences/common/preferences.js';
68
- import { IRemoteAgentService } from '../../../services/remote/common/remoteAgentService.js';
69
- import { IDialogService } from '../../../../platform/dialogs/common/dialogs.js';
70
- var AbstractTaskService_1;
71
- const QUICKOPEN_HISTORY_LIMIT_CONFIG = 'task.quickOpen.history';
72
- const PROBLEM_MATCHER_NEVER_CONFIG = 'task.problemMatchers.neverPrompt';
73
- const USE_SLOW_PICKER = 'task.quickOpen.showAll';
74
- var ConfigureTaskAction;
75
- ( (function(ConfigureTaskAction) {
76
- ConfigureTaskAction.ID = 'workbench.action.tasks.configureTaskRunner';
77
- ConfigureTaskAction.TEXT = ( localize2WithPath(
78
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
79
- 'ConfigureTaskRunnerAction.label',
80
- "Configure Task"
81
- ));
82
- })(ConfigureTaskAction || (ConfigureTaskAction = {})));
83
- class ProblemReporter {
84
- constructor(_outputChannel) {
85
- this._outputChannel = _outputChannel;
86
- this._validationStatus = ( new ValidationStatus());
87
- }
88
- info(message) {
89
- this._validationStatus.state = 1 ;
90
- this._outputChannel.append(message + '\n');
91
- }
92
- warn(message) {
93
- this._validationStatus.state = 2 ;
94
- this._outputChannel.append(message + '\n');
95
- }
96
- error(message) {
97
- this._validationStatus.state = 3 ;
98
- this._outputChannel.append(message + '\n');
99
- }
100
- fatal(message) {
101
- this._validationStatus.state = 4 ;
102
- this._outputChannel.append(message + '\n');
103
- }
104
- get status() {
105
- return this._validationStatus;
106
- }
107
- }
108
- class TaskMap {
109
- constructor() {
110
- this._store = ( new Map());
111
- }
112
- forEach(callback) {
113
- this._store.forEach(callback);
114
- }
115
- static getKey(workspaceFolder) {
116
- let key;
117
- if (isString(workspaceFolder)) {
118
- key = workspaceFolder;
119
- }
120
- else {
121
- const uri = isWorkspaceFolder(workspaceFolder) ? workspaceFolder.uri : workspaceFolder.configuration;
122
- key = uri ? ( uri.toString()) : '';
123
- }
124
- return key;
125
- }
126
- get(workspaceFolder) {
127
- const key = TaskMap.getKey(workspaceFolder);
128
- let result = this._store.get(key);
129
- if (!result) {
130
- result = [];
131
- this._store.set(key, result);
132
- }
133
- return result;
134
- }
135
- add(workspaceFolder, ...task) {
136
- const key = TaskMap.getKey(workspaceFolder);
137
- let values = this._store.get(key);
138
- if (!values) {
139
- values = [];
140
- this._store.set(key, values);
141
- }
142
- values.push(...task);
143
- }
144
- all() {
145
- const result = [];
146
- this._store.forEach((values) => result.push(...values));
147
- return result;
148
- }
149
- }
150
- let AbstractTaskService = class AbstractTaskService extends Disposable {
151
- static { AbstractTaskService_1 = this; }
152
- static { this.RecentlyUsedTasks_Key = 'workbench.tasks.recentlyUsedTasks'; }
153
- static { this.RecentlyUsedTasks_KeyV2 = 'workbench.tasks.recentlyUsedTasks2'; }
154
- static { this.PersistentTasks_Key = 'workbench.tasks.persistentTasks'; }
155
- static { this.IgnoreTask010DonotShowAgain_key = 'workbench.tasks.ignoreTask010Shown'; }
156
- static { this.OutputChannelId = 'tasks'; }
157
- static { this.OutputChannelLabel = ( localizeWithPath('vs/workbench/contrib/tasks/browser/abstractTaskService', 'tasks', "Tasks")); }
158
- static { this._nextHandle = 0; }
159
- get isReconnected() { return this._tasksReconnected; }
160
- constructor(_configurationService, _markerService, _outputService, _paneCompositeService, _viewsService, _commandService, _editorService, _fileService, _contextService, _telemetryService, _textFileService, _modelService, _extensionService, _quickInputService, _configurationResolverService, _terminalService, _terminalGroupService, _storageService, _progressService, _openerService, _dialogService, _notificationService, _contextKeyService, _environmentService, _terminalProfileResolverService, _pathService, _textModelResolverService, _preferencesService, _viewDescriptorService, _workspaceTrustRequestService, _workspaceTrustManagementService, _logService, _themeService, _lifecycleService, remoteAgentService, _instantiationService) {
161
- super();
162
- this._configurationService = _configurationService;
163
- this._markerService = _markerService;
164
- this._outputService = _outputService;
165
- this._paneCompositeService = _paneCompositeService;
166
- this._viewsService = _viewsService;
167
- this._commandService = _commandService;
168
- this._editorService = _editorService;
169
- this._fileService = _fileService;
170
- this._contextService = _contextService;
171
- this._telemetryService = _telemetryService;
172
- this._textFileService = _textFileService;
173
- this._modelService = _modelService;
174
- this._extensionService = _extensionService;
175
- this._quickInputService = _quickInputService;
176
- this._configurationResolverService = _configurationResolverService;
177
- this._terminalService = _terminalService;
178
- this._terminalGroupService = _terminalGroupService;
179
- this._storageService = _storageService;
180
- this._progressService = _progressService;
181
- this._openerService = _openerService;
182
- this._dialogService = _dialogService;
183
- this._notificationService = _notificationService;
184
- this._contextKeyService = _contextKeyService;
185
- this._environmentService = _environmentService;
186
- this._terminalProfileResolverService = _terminalProfileResolverService;
187
- this._pathService = _pathService;
188
- this._textModelResolverService = _textModelResolverService;
189
- this._preferencesService = _preferencesService;
190
- this._viewDescriptorService = _viewDescriptorService;
191
- this._workspaceTrustRequestService = _workspaceTrustRequestService;
192
- this._workspaceTrustManagementService = _workspaceTrustManagementService;
193
- this._logService = _logService;
194
- this._themeService = _themeService;
195
- this._lifecycleService = _lifecycleService;
196
- this._instantiationService = _instantiationService;
197
- this._tasksReconnected = false;
198
- this._taskSystemListeners = [];
199
- this._onDidRegisterSupportedExecutions = ( new Emitter());
200
- this._onDidRegisterAllSupportedExecutions = ( new Emitter());
201
- this._onDidChangeTaskSystemInfo = ( new Emitter());
202
- this._willRestart = false;
203
- this.onDidChangeTaskSystemInfo = this._onDidChangeTaskSystemInfo.event;
204
- this._onDidReconnectToTasks = ( new Emitter());
205
- this.onDidReconnectToTasks = this._onDidReconnectToTasks.event;
206
- this._onDidChangeTaskConfig = ( new Emitter());
207
- this.onDidChangeTaskConfig = this._onDidChangeTaskConfig.event;
208
- this._whenTaskSystemReady = Event.toPromise(this.onDidChangeTaskSystemInfo);
209
- this._workspaceTasksPromise = undefined;
210
- this._taskSystem = undefined;
211
- this._taskSystemListeners = undefined;
212
- this._outputChannel = this._outputService.getChannel(AbstractTaskService_1.OutputChannelId);
213
- this._providers = ( new Map());
214
- this._providerTypes = ( new Map());
215
- this._taskSystemInfos = ( new Map());
216
- this._register(this._contextService.onDidChangeWorkspaceFolders(() => {
217
- const folderSetup = this._computeWorkspaceFolderSetup();
218
- if (this.executionEngine !== folderSetup[2]) {
219
- this._disposeTaskSystemListeners();
220
- this._taskSystem = undefined;
221
- }
222
- this._updateSetup(folderSetup);
223
- return this._updateWorkspaceTasks(2 );
224
- }));
225
- this._register(this._configurationService.onDidChangeConfiguration(async (e) => {
226
- if (!e.affectsConfiguration('tasks') || (!this._taskSystem && !this._workspaceTasksPromise)) {
227
- return;
228
- }
229
- if (!this._taskSystem || this._taskSystem instanceof TerminalTaskSystem) {
230
- this._outputChannel.clear();
231
- }
232
- if (e.affectsConfiguration("task.reconnection" )) {
233
- if (!this._configurationService.getValue("task.reconnection" )) {
234
- this._persistentTasks?.clear();
235
- this._storageService.remove(AbstractTaskService_1.PersistentTasks_Key, 1 );
236
- }
237
- }
238
- this._setTaskLRUCacheLimit();
239
- await this._updateWorkspaceTasks(3 );
240
- this._onDidChangeTaskConfig.fire();
241
- }));
242
- this._taskRunningState = TASK_RUNNING_STATE.bindTo(_contextKeyService);
243
- this._onDidStateChange = this._register(( new Emitter()));
244
- this._registerCommands().then(() => TaskCommandsRegistered.bindTo(this._contextKeyService).set(true));
245
- ServerlessWebContext.bindTo(this._contextKeyService).set(isWeb && !remoteAgentService.getConnection()?.remoteAuthority);
246
- this._configurationResolverService.contributeVariable('defaultBuildTask', async () => {
247
- let tasks = await this._getTasksForGroup(TaskGroup.Build);
248
- if (tasks.length > 0) {
249
- const defaults = this._getDefaultTasks(tasks);
250
- if (defaults.length === 1) {
251
- return defaults[0]._label;
252
- }
253
- else if (defaults.length) {
254
- tasks = defaults;
255
- }
256
- }
257
- let entry;
258
- if (tasks && tasks.length > 0) {
259
- entry = await this._showQuickPick(tasks, ( localizeWithPath(
260
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
261
- 'TaskService.pickBuildTaskForLabel',
262
- 'Select the build task (there is no default build task defined)'
263
- )));
264
- }
265
- const task = entry ? entry.task : undefined;
266
- if (!task) {
267
- return undefined;
268
- }
269
- return task._label;
270
- });
271
- this._lifecycleService.onBeforeShutdown(e => {
272
- this._willRestart = e.reason !== 3 ;
273
- });
274
- this._register(this.onDidStateChange(e => {
275
- this._log(( localizeWithPath(
276
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
277
- 'taskEvent',
278
- 'Task Event kind: {0}',
279
- e.kind
280
- )), true);
281
- if (e.kind === "changed" ) ;
282
- else if ((this._willRestart || (e.kind === "terminated" && e.exitReason === TerminalExitReason.User)) && e.taskId) {
283
- const key = e.__task.getKey();
284
- if (key) {
285
- this.removePersistentTask(key);
286
- }
287
- }
288
- else if (e.kind === "start" && e.__task && e.__task.getWorkspaceFolder()) {
289
- this._setPersistentTask(e.__task);
290
- }
291
- }));
292
- this._waitForAllSupportedExecutions = ( new Promise(resolve => {
293
- Event.once(this._onDidRegisterAllSupportedExecutions.event)(() => resolve());
294
- }));
295
- if (this._terminalService.getReconnectedTerminals('Task')?.length) {
296
- this._attemptTaskReconnection();
297
- }
298
- else {
299
- this._terminalService.whenConnected.then(() => {
300
- if (this._terminalService.getReconnectedTerminals('Task')?.length) {
301
- this._attemptTaskReconnection();
302
- }
303
- else {
304
- this._tasksReconnected = true;
305
- this._onDidReconnectToTasks.fire();
306
- }
307
- });
308
- }
309
- this._upgrade();
310
- }
311
- registerSupportedExecutions(custom, shell, process) {
312
- if (custom !== undefined) {
313
- const customContext = CustomExecutionSupportedContext.bindTo(this._contextKeyService);
314
- customContext.set(custom);
315
- }
316
- const isVirtual = !!VirtualWorkspaceContext.getValue(this._contextKeyService);
317
- if (shell !== undefined) {
318
- const shellContext = ShellExecutionSupportedContext.bindTo(this._contextKeyService);
319
- shellContext.set(shell && !isVirtual);
320
- }
321
- if (process !== undefined) {
322
- const processContext = ProcessExecutionSupportedContext.bindTo(this._contextKeyService);
323
- processContext.set(process && !isVirtual);
324
- }
325
- this._workspaceTasksPromise = undefined;
326
- this._onDidRegisterSupportedExecutions.fire();
327
- if (custom && shell && process) {
328
- this._onDidRegisterAllSupportedExecutions.fire();
329
- }
330
- }
331
- _attemptTaskReconnection() {
332
- if (this._lifecycleService.startupKind !== 3 ) {
333
- this._log(( localizeWithPath(
334
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
335
- 'TaskService.skippingReconnection',
336
- 'Startup kind not window reload, setting connected and removing persistent tasks'
337
- )), true);
338
- this._tasksReconnected = true;
339
- this._storageService.remove(AbstractTaskService_1.PersistentTasks_Key, 1 );
340
- }
341
- if (!this._configurationService.getValue("task.reconnection" ) || this._tasksReconnected) {
342
- this._log(( localizeWithPath(
343
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
344
- 'TaskService.notConnecting',
345
- 'Setting tasks connected configured value {0}, tasks were already reconnected {1}',
346
- this._configurationService.getValue("task.reconnection" ),
347
- this._tasksReconnected
348
- )), true);
349
- this._tasksReconnected = true;
350
- return;
351
- }
352
- this._log(( localizeWithPath(
353
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
354
- 'TaskService.reconnecting',
355
- 'Reconnecting to running tasks...'
356
- )), true);
357
- this.getWorkspaceTasks(4 ).then(async () => {
358
- this._tasksReconnected = await this._reconnectTasks();
359
- this._log(( localizeWithPath(
360
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
361
- 'TaskService.reconnected',
362
- 'Reconnected to running tasks.'
363
- )), true);
364
- this._onDidReconnectToTasks.fire();
365
- });
366
- }
367
- async _reconnectTasks() {
368
- const tasks = await this.getSavedTasks('persistent');
369
- if (!tasks.length) {
370
- this._log(( localizeWithPath(
371
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
372
- 'TaskService.noTasks',
373
- 'No persistent tasks to reconnect.'
374
- )), true);
375
- return true;
376
- }
377
- const taskLabels = ( tasks.map(task => task._label)).join(', ');
378
- this._log(( localizeWithPath(
379
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
380
- 'TaskService.reconnectingTasks',
381
- 'Reconnecting to {0} tasks...',
382
- taskLabels
383
- )), true);
384
- for (const task of tasks) {
385
- if (ConfiguringTask.is(task)) {
386
- const resolved = await this.tryResolveTask(task);
387
- if (resolved) {
388
- this.run(resolved, undefined, 4 );
389
- }
390
- }
391
- else {
392
- this.run(task, undefined, 4 );
393
- }
394
- }
395
- return true;
396
- }
397
- get onDidStateChange() {
398
- return this._onDidStateChange.event;
399
- }
400
- get supportsMultipleTaskExecutions() {
401
- return this.inTerminal();
402
- }
403
- async _registerCommands() {
404
- CommandsRegistry.registerCommand({
405
- id: 'workbench.action.tasks.runTask',
406
- handler: async (accessor, arg) => {
407
- if (await this._trust()) {
408
- await this._runTaskCommand(arg);
409
- }
410
- },
411
- metadata: {
412
- description: 'Run Task',
413
- args: [{
414
- name: 'args',
415
- isOptional: true,
416
- description: ( localizeWithPath(
417
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
418
- 'runTask.arg',
419
- "Filters the tasks shown in the quickpick"
420
- )),
421
- schema: {
422
- anyOf: [
423
- {
424
- type: 'string',
425
- description: ( localizeWithPath(
426
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
427
- 'runTask.label',
428
- "The task's label or a term to filter by"
429
- ))
430
- },
431
- {
432
- type: 'object',
433
- properties: {
434
- type: {
435
- type: 'string',
436
- description: ( localizeWithPath(
437
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
438
- 'runTask.type',
439
- "The contributed task type"
440
- ))
441
- },
442
- task: {
443
- type: 'string',
444
- description: ( localizeWithPath(
445
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
446
- 'runTask.task',
447
- "The task's label or a term to filter by"
448
- ))
449
- }
450
- }
451
- }
452
- ]
453
- }
454
- }]
455
- }
456
- });
457
- CommandsRegistry.registerCommand('workbench.action.tasks.reRunTask', async (accessor, arg) => {
458
- if (await this._trust()) {
459
- this._reRunTaskCommand();
460
- }
461
- });
462
- CommandsRegistry.registerCommand('workbench.action.tasks.restartTask', async (accessor, arg) => {
463
- if (await this._trust()) {
464
- this._runRestartTaskCommand(arg);
465
- }
466
- });
467
- CommandsRegistry.registerCommand('workbench.action.tasks.terminate', async (accessor, arg) => {
468
- if (await this._trust()) {
469
- this._runTerminateCommand(arg);
470
- }
471
- });
472
- CommandsRegistry.registerCommand('workbench.action.tasks.showLog', () => {
473
- this._showOutput(undefined, true);
474
- });
475
- CommandsRegistry.registerCommand('workbench.action.tasks.build', async () => {
476
- if (await this._trust()) {
477
- this._runBuildCommand();
478
- }
479
- });
480
- CommandsRegistry.registerCommand('workbench.action.tasks.test', async () => {
481
- if (await this._trust()) {
482
- this._runTestCommand();
483
- }
484
- });
485
- CommandsRegistry.registerCommand('workbench.action.tasks.configureTaskRunner', async () => {
486
- if (await this._trust()) {
487
- this._runConfigureTasks();
488
- }
489
- });
490
- CommandsRegistry.registerCommand('workbench.action.tasks.configureDefaultBuildTask', async () => {
491
- if (await this._trust()) {
492
- this._runConfigureDefaultBuildTask();
493
- }
494
- });
495
- CommandsRegistry.registerCommand('workbench.action.tasks.configureDefaultTestTask', async () => {
496
- if (await this._trust()) {
497
- this._runConfigureDefaultTestTask();
498
- }
499
- });
500
- CommandsRegistry.registerCommand('workbench.action.tasks.showTasks', async () => {
501
- if (await this._trust()) {
502
- return this.runShowTasks();
503
- }
504
- });
505
- CommandsRegistry.registerCommand('workbench.action.tasks.toggleProblems', () => this._commandService.executeCommand(Markers.TOGGLE_MARKERS_VIEW_ACTION_ID));
506
- CommandsRegistry.registerCommand('workbench.action.tasks.openUserTasks', async () => {
507
- const resource = this._getResourceForKind(TaskSourceKind.User);
508
- if (resource) {
509
- this._openTaskFile(resource, TaskSourceKind.User);
510
- }
511
- });
512
- CommandsRegistry.registerCommand('workbench.action.tasks.openWorkspaceFileTasks', async () => {
513
- const resource = this._getResourceForKind(TaskSourceKind.WorkspaceFile);
514
- if (resource) {
515
- this._openTaskFile(resource, TaskSourceKind.WorkspaceFile);
516
- }
517
- });
518
- }
519
- get workspaceFolders() {
520
- if (!this._workspaceFolders) {
521
- this._updateSetup();
522
- }
523
- return this._workspaceFolders;
524
- }
525
- get ignoredWorkspaceFolders() {
526
- if (!this._ignoredWorkspaceFolders) {
527
- this._updateSetup();
528
- }
529
- return this._ignoredWorkspaceFolders;
530
- }
531
- get executionEngine() {
532
- if (this._executionEngine === undefined) {
533
- this._updateSetup();
534
- }
535
- return this._executionEngine;
536
- }
537
- get schemaVersion() {
538
- if (this._schemaVersion === undefined) {
539
- this._updateSetup();
540
- }
541
- return this._schemaVersion;
542
- }
543
- get showIgnoreMessage() {
544
- if (this._showIgnoreMessage === undefined) {
545
- this._showIgnoreMessage = !this._storageService.getBoolean(AbstractTaskService_1.IgnoreTask010DonotShowAgain_key, 1 , false);
546
- }
547
- return this._showIgnoreMessage;
548
- }
549
- _getActivationEvents(type) {
550
- const result = [];
551
- result.push('onCommand:workbench.action.tasks.runTask');
552
- if (type) {
553
- result.push(`onTaskType:${type}`);
554
- }
555
- else {
556
- for (const definition of TaskDefinitionRegistry.all()) {
557
- result.push(`onTaskType:${definition.taskType}`);
558
- }
559
- }
560
- return result;
561
- }
562
- async _activateTaskProviders(type) {
563
- await this._extensionService.whenInstalledExtensionsRegistered();
564
- await raceTimeout(Promise.all(( this._getActivationEvents(type).map(activationEvent => this._extensionService.activateByEvent(activationEvent)))), 5000, () => console.warn('Timed out activating extensions for task providers'));
565
- }
566
- _updateSetup(setup) {
567
- if (!setup) {
568
- setup = this._computeWorkspaceFolderSetup();
569
- }
570
- this._workspaceFolders = setup[0];
571
- if (this._ignoredWorkspaceFolders) {
572
- if (this._ignoredWorkspaceFolders.length !== setup[1].length) {
573
- this._showIgnoreMessage = undefined;
574
- }
575
- else {
576
- const set = ( new Set());
577
- this._ignoredWorkspaceFolders.forEach(folder => set.add(( folder.uri.toString())));
578
- for (const folder of setup[1]) {
579
- if (!( set.has(( folder.uri.toString())))) {
580
- this._showIgnoreMessage = undefined;
581
- break;
582
- }
583
- }
584
- }
585
- }
586
- this._ignoredWorkspaceFolders = setup[1];
587
- this._executionEngine = setup[2];
588
- this._schemaVersion = setup[3];
589
- this._workspace = setup[4];
590
- }
591
- _showOutput(runSource = 1 , userRequested) {
592
- if (!VirtualWorkspaceContext.getValue(this._contextKeyService) && (((runSource === 1) ) || ((runSource === 3) ))) {
593
- if (userRequested) {
594
- this._outputService.showChannel(this._outputChannel.id, true);
595
- }
596
- else {
597
- this._notificationService.prompt(Severity$1.Warning, ( localizeWithPath(
598
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
599
- 'taskServiceOutputPrompt',
600
- 'There are task errors. See the output for details.'
601
- )), [{
602
- label: ( localizeWithPath(
603
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
604
- 'showOutput',
605
- "Show output"
606
- )),
607
- run: () => {
608
- this._outputService.showChannel(this._outputChannel.id, true);
609
- }
610
- }]);
611
- }
612
- }
613
- }
614
- _disposeTaskSystemListeners() {
615
- if (this._taskSystemListeners) {
616
- dispose(this._taskSystemListeners);
617
- this._taskSystemListeners = undefined;
618
- }
619
- }
620
- registerTaskProvider(provider, type) {
621
- if (!provider) {
622
- return {
623
- dispose: () => { }
624
- };
625
- }
626
- const handle = AbstractTaskService_1._nextHandle++;
627
- this._providers.set(handle, provider);
628
- this._providerTypes.set(handle, type);
629
- return {
630
- dispose: () => {
631
- this._providers.delete(handle);
632
- this._providerTypes.delete(handle);
633
- }
634
- };
635
- }
636
- get hasTaskSystemInfo() {
637
- const infosCount = Array.from(( this._taskSystemInfos.values())).flat().length;
638
- if (this._environmentService.remoteAuthority) {
639
- return infosCount > 1;
640
- }
641
- return infosCount > 0;
642
- }
643
- registerTaskSystem(key, info) {
644
- if (info.platform === 0 ) {
645
- key = this.workspaceFolders.length ? this.workspaceFolders[0].uri.scheme : key;
646
- }
647
- if (!( this._taskSystemInfos.has(key))) {
648
- this._taskSystemInfos.set(key, [info]);
649
- }
650
- else {
651
- const infos = this._taskSystemInfos.get(key);
652
- if (info.platform === 0 ) {
653
- infos.push(info);
654
- }
655
- else {
656
- infos.unshift(info);
657
- }
658
- }
659
- if (this.hasTaskSystemInfo) {
660
- this._onDidChangeTaskSystemInfo.fire();
661
- }
662
- }
663
- _getTaskSystemInfo(key) {
664
- const infos = this._taskSystemInfos.get(key);
665
- return (infos && infos.length) ? infos[0] : undefined;
666
- }
667
- extensionCallbackTaskComplete(task, result) {
668
- if (!this._taskSystem) {
669
- return Promise.resolve();
670
- }
671
- return this._taskSystem.customExecutionComplete(task, result);
672
- }
673
- async _findWorkspaceTasks(predicate) {
674
- const result = [];
675
- const tasks = await this.getWorkspaceTasks();
676
- for (const [, workspaceTasks] of tasks) {
677
- if (workspaceTasks.configurations) {
678
- for (const taskName in workspaceTasks.configurations.byIdentifier) {
679
- const task = workspaceTasks.configurations.byIdentifier[taskName];
680
- if (predicate(task, workspaceTasks.workspaceFolder)) {
681
- result.push(task);
682
- }
683
- }
684
- }
685
- if (workspaceTasks.set) {
686
- for (const task of workspaceTasks.set.tasks) {
687
- if (predicate(task, workspaceTasks.workspaceFolder)) {
688
- result.push(task);
689
- }
690
- }
691
- }
692
- }
693
- return result;
694
- }
695
- async _findWorkspaceTasksInGroup(group, isDefault) {
696
- return this._findWorkspaceTasks((task) => {
697
- const taskGroup = task.configurationProperties.group;
698
- if (taskGroup && typeof taskGroup !== 'string') {
699
- return (taskGroup._id === group._id && (!isDefault || !!taskGroup.isDefault));
700
- }
701
- return false;
702
- });
703
- }
704
- async getTask(folder, identifier, compareId = false, type = undefined) {
705
- if (!(await this._trust())) {
706
- return;
707
- }
708
- const name = isString(folder) ? folder : isWorkspaceFolder(folder) ? folder.name : folder.configuration ? basename(folder.configuration) : undefined;
709
- if (( this.ignoredWorkspaceFolders.some(ignored => ignored.name === name))) {
710
- return Promise.reject(( new Error(( localizeWithPath(
711
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
712
- 'TaskServer.folderIgnored',
713
- 'The folder {0} is ignored since it uses task version 0.1.0',
714
- name
715
- )))));
716
- }
717
- const key = !isString(identifier)
718
- ? TaskDefinition.createTaskIdentifier(identifier, console)
719
- : identifier;
720
- if (key === undefined) {
721
- return Promise.resolve(undefined);
722
- }
723
- const requestedFolder = TaskMap.getKey(folder);
724
- const matchedTasks = await this._findWorkspaceTasks((task, workspaceFolder) => {
725
- const taskFolder = TaskMap.getKey(workspaceFolder);
726
- if (taskFolder !== requestedFolder && taskFolder !== USER_TASKS_GROUP_KEY) {
727
- return false;
728
- }
729
- return task.matches(key, compareId);
730
- });
731
- matchedTasks.sort(task => task._source.kind === TaskSourceKind.Extension ? 1 : -1);
732
- if (matchedTasks.length > 0) {
733
- const task = matchedTasks[0];
734
- if (ConfiguringTask.is(task)) {
735
- return this.tryResolveTask(task);
736
- }
737
- else {
738
- return task;
739
- }
740
- }
741
- const map = await this._getGroupedTasks({ type });
742
- let values = map.get(folder);
743
- values = values.concat(map.get(USER_TASKS_GROUP_KEY));
744
- if (!values) {
745
- return undefined;
746
- }
747
- values = values.filter(task => task.matches(key, compareId)).sort(task => task._source.kind === TaskSourceKind.Extension ? 1 : -1);
748
- return values.length > 0 ? values[0] : undefined;
749
- }
750
- async tryResolveTask(configuringTask) {
751
- if (!(await this._trust())) {
752
- return;
753
- }
754
- await this._activateTaskProviders(configuringTask.type);
755
- let matchingProvider;
756
- let matchingProviderUnavailable = false;
757
- for (const [handle, provider] of this._providers) {
758
- const providerType = this._providerTypes.get(handle);
759
- if (configuringTask.type === providerType) {
760
- if (providerType && !this._isTaskProviderEnabled(providerType)) {
761
- matchingProviderUnavailable = true;
762
- continue;
763
- }
764
- matchingProvider = provider;
765
- break;
766
- }
767
- }
768
- if (!matchingProvider) {
769
- if (matchingProviderUnavailable) {
770
- this._log(( localizeWithPath(
771
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
772
- 'TaskService.providerUnavailable',
773
- 'Warning: {0} tasks are unavailable in the current environment.',
774
- configuringTask.configures.type
775
- )));
776
- }
777
- return;
778
- }
779
- try {
780
- const resolvedTask = await matchingProvider.resolveTask(configuringTask);
781
- if (resolvedTask && (resolvedTask._id === configuringTask._id)) {
782
- return createCustomTask(resolvedTask, configuringTask);
783
- }
784
- }
785
- catch (error) {
786
- }
787
- const tasks = await this.tasks({ type: configuringTask.type });
788
- for (const task of tasks) {
789
- if (task._id === configuringTask._id) {
790
- return createCustomTask(task, configuringTask);
791
- }
792
- }
793
- return;
794
- }
795
- async tasks(filter) {
796
- if (!(await this._trust())) {
797
- return [];
798
- }
799
- if (!this._versionAndEngineCompatible(filter)) {
800
- return Promise.resolve([]);
801
- }
802
- return this._getGroupedTasks(filter).then((map) => {
803
- if (!filter || !filter.type) {
804
- return map.all();
805
- }
806
- const result = [];
807
- map.forEach((tasks) => {
808
- for (const task of tasks) {
809
- if (ContributedTask.is(task) && ((task.defines.type === filter.type) || (task._source.label === filter.type))) {
810
- result.push(task);
811
- }
812
- else if (CustomTask.is(task)) {
813
- if (task.type === filter.type) {
814
- result.push(task);
815
- }
816
- else {
817
- const customizes = task.customizes();
818
- if (customizes && customizes.type === filter.type) {
819
- result.push(task);
820
- }
821
- }
822
- }
823
- }
824
- });
825
- return result;
826
- });
827
- }
828
- taskTypes() {
829
- const types = [];
830
- if (this._isProvideTasksEnabled()) {
831
- for (const definition of TaskDefinitionRegistry.all()) {
832
- if (this._isTaskProviderEnabled(definition.taskType)) {
833
- types.push(definition.taskType);
834
- }
835
- }
836
- }
837
- return types;
838
- }
839
- createSorter() {
840
- return ( new TaskSorter(
841
- this._contextService.getWorkspace() ? this._contextService.getWorkspace().folders : []
842
- ));
843
- }
844
- _isActive() {
845
- if (!this._taskSystem) {
846
- return Promise.resolve(false);
847
- }
848
- return this._taskSystem.isActive();
849
- }
850
- async getActiveTasks() {
851
- if (!this._taskSystem) {
852
- return [];
853
- }
854
- return this._taskSystem.getActiveTasks();
855
- }
856
- async getBusyTasks() {
857
- if (!this._taskSystem) {
858
- return [];
859
- }
860
- return this._taskSystem.getBusyTasks();
861
- }
862
- getRecentlyUsedTasksV1() {
863
- if (this._recentlyUsedTasksV1) {
864
- return this._recentlyUsedTasksV1;
865
- }
866
- const quickOpenHistoryLimit = this._configurationService.getValue(QUICKOPEN_HISTORY_LIMIT_CONFIG);
867
- this._recentlyUsedTasksV1 = ( new LRUCache(quickOpenHistoryLimit));
868
- const storageValue = this._storageService.get(AbstractTaskService_1.RecentlyUsedTasks_Key, 1 );
869
- if (storageValue) {
870
- try {
871
- const values = JSON.parse(storageValue);
872
- if (Array.isArray(values)) {
873
- for (const value of values) {
874
- this._recentlyUsedTasksV1.set(value, value);
875
- }
876
- }
877
- }
878
- catch (error) {
879
- }
880
- }
881
- return this._recentlyUsedTasksV1;
882
- }
883
- _getTasksFromStorage(type) {
884
- return type === 'persistent' ? this._getPersistentTasks() : this._getRecentTasks();
885
- }
886
- _getRecentTasks() {
887
- if (this._recentlyUsedTasks) {
888
- return this._recentlyUsedTasks;
889
- }
890
- const quickOpenHistoryLimit = this._configurationService.getValue(QUICKOPEN_HISTORY_LIMIT_CONFIG);
891
- this._recentlyUsedTasks = ( new LRUCache(quickOpenHistoryLimit));
892
- const storageValue = this._storageService.get(AbstractTaskService_1.RecentlyUsedTasks_KeyV2, 1 );
893
- if (storageValue) {
894
- try {
895
- const values = JSON.parse(storageValue);
896
- if (Array.isArray(values)) {
897
- for (const value of values) {
898
- this._recentlyUsedTasks.set(value[0], value[1]);
899
- }
900
- }
901
- }
902
- catch (error) {
903
- }
904
- }
905
- return this._recentlyUsedTasks;
906
- }
907
- _getPersistentTasks() {
908
- if (this._persistentTasks) {
909
- this._log(( localizeWithPath(
910
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
911
- 'taskService.gettingCachedTasks',
912
- 'Returning cached tasks {0}',
913
- this._persistentTasks.size
914
- )), true);
915
- return this._persistentTasks;
916
- }
917
- this._persistentTasks = ( new LRUCache(10));
918
- const storageValue = this._storageService.get(AbstractTaskService_1.PersistentTasks_Key, 1 );
919
- if (storageValue) {
920
- try {
921
- const values = JSON.parse(storageValue);
922
- if (Array.isArray(values)) {
923
- for (const value of values) {
924
- this._persistentTasks.set(value[0], value[1]);
925
- }
926
- }
927
- }
928
- catch (error) {
929
- }
930
- }
931
- return this._persistentTasks;
932
- }
933
- _getFolderFromTaskKey(key) {
934
- const keyValue = JSON.parse(key);
935
- return {
936
- folder: keyValue.folder, isWorkspaceFile: keyValue.id?.endsWith(TaskSourceKind.WorkspaceFile)
937
- };
938
- }
939
- async getSavedTasks(type) {
940
- const folderMap = Object.create(null);
941
- this.workspaceFolders.forEach(folder => {
942
- folderMap[( folder.uri.toString())] = folder;
943
- });
944
- const folderToTasksMap = ( new Map());
945
- const workspaceToTaskMap = ( new Map());
946
- const storedTasks = this._getTasksFromStorage(type);
947
- const tasks = [];
948
- this._log(( localizeWithPath(
949
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
950
- 'taskService.getSavedTasks',
951
- 'Fetching tasks from task storage.'
952
- )), true);
953
- function addTaskToMap(map, folder, task) {
954
- if (folder && !( map.has(folder))) {
955
- map.set(folder, []);
956
- }
957
- if (folder && (folderMap[folder] || (folder === USER_TASKS_GROUP_KEY)) && task) {
958
- map.get(folder).push(task);
959
- }
960
- }
961
- for (const entry of storedTasks.entries()) {
962
- try {
963
- const key = entry[0];
964
- const task = JSON.parse(entry[1]);
965
- const folderInfo = this._getFolderFromTaskKey(key);
966
- this._log(( localizeWithPath(
967
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
968
- 'taskService.getSavedTasks.reading',
969
- 'Reading tasks from task storage, {0}, {1}, {2}',
970
- key,
971
- task,
972
- folderInfo.folder
973
- )), true);
974
- addTaskToMap(folderInfo.isWorkspaceFile ? workspaceToTaskMap : folderToTasksMap, folderInfo.folder, task);
975
- }
976
- catch (error) {
977
- this._log(( localizeWithPath(
978
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
979
- 'taskService.getSavedTasks.error',
980
- 'Fetching a task from task storage failed: {0}.',
981
- error
982
- )), true);
983
- }
984
- }
985
- const readTasksMap = ( new Map());
986
- async function readTasks(that, map, isWorkspaceFile) {
987
- for (const key of ( map.keys())) {
988
- const custom = [];
989
- const customized = Object.create(null);
990
- const taskConfigSource = (folderMap[key]
991
- ? (isWorkspaceFile
992
- ? TaskConfigSource.WorkspaceFile : TaskConfigSource.TasksJson)
993
- : TaskConfigSource.User);
994
- await that._computeTasksForSingleConfig(folderMap[key] ?? (await that._getAFolder()), {
995
- version: '2.0.0',
996
- tasks: map.get(key)
997
- }, 0 , custom, customized, taskConfigSource, true);
998
- custom.forEach(task => {
999
- const taskKey = task.getKey();
1000
- if (taskKey) {
1001
- readTasksMap.set(taskKey, task);
1002
- }
1003
- });
1004
- for (const configuration in customized) {
1005
- const taskKey = customized[configuration].getKey();
1006
- if (taskKey) {
1007
- readTasksMap.set(taskKey, customized[configuration]);
1008
- }
1009
- }
1010
- }
1011
- }
1012
- await readTasks(this, folderToTasksMap, false);
1013
- await readTasks(this, workspaceToTaskMap, true);
1014
- for (const key of ( storedTasks.keys())) {
1015
- if (( readTasksMap.has(key))) {
1016
- tasks.push(readTasksMap.get(key));
1017
- this._log(( localizeWithPath(
1018
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
1019
- 'taskService.getSavedTasks.resolved',
1020
- 'Resolved task {0}',
1021
- key
1022
- )), true);
1023
- }
1024
- else {
1025
- this._log(( localizeWithPath(
1026
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
1027
- 'taskService.getSavedTasks.unresolved',
1028
- 'Unable to resolve task {0} ',
1029
- key
1030
- )), true);
1031
- }
1032
- }
1033
- return tasks;
1034
- }
1035
- removeRecentlyUsedTask(taskRecentlyUsedKey) {
1036
- if (( this._getTasksFromStorage('historical').has(taskRecentlyUsedKey))) {
1037
- this._getTasksFromStorage('historical').delete(taskRecentlyUsedKey);
1038
- this._saveRecentlyUsedTasks();
1039
- }
1040
- }
1041
- removePersistentTask(key) {
1042
- this._log(( localizeWithPath(
1043
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
1044
- 'taskService.removePersistentTask',
1045
- 'Removing persistent task {0}',
1046
- key
1047
- )), true);
1048
- if (( this._getTasksFromStorage('persistent').has(key))) {
1049
- this._getTasksFromStorage('persistent').delete(key);
1050
- this._savePersistentTasks();
1051
- }
1052
- }
1053
- _setTaskLRUCacheLimit() {
1054
- const quickOpenHistoryLimit = this._configurationService.getValue(QUICKOPEN_HISTORY_LIMIT_CONFIG);
1055
- if (this._recentlyUsedTasks) {
1056
- this._recentlyUsedTasks.limit = quickOpenHistoryLimit;
1057
- }
1058
- }
1059
- async _setRecentlyUsedTask(task) {
1060
- let key = task.getKey();
1061
- if (!InMemoryTask.is(task) && key) {
1062
- const customizations = this._createCustomizableTask(task);
1063
- if (ContributedTask.is(task) && customizations) {
1064
- const custom = [];
1065
- const customized = Object.create(null);
1066
- await this._computeTasksForSingleConfig(task._source.workspaceFolder ?? this.workspaceFolders[0], {
1067
- version: '2.0.0',
1068
- tasks: [customizations]
1069
- }, 0 , custom, customized, TaskConfigSource.TasksJson, true);
1070
- for (const configuration in customized) {
1071
- key = customized[configuration].getKey();
1072
- }
1073
- }
1074
- this._getTasksFromStorage('historical').set(key, JSON.stringify(customizations));
1075
- this._saveRecentlyUsedTasks();
1076
- }
1077
- }
1078
- _saveRecentlyUsedTasks() {
1079
- if (!this._recentlyUsedTasks) {
1080
- return;
1081
- }
1082
- const quickOpenHistoryLimit = this._configurationService.getValue(QUICKOPEN_HISTORY_LIMIT_CONFIG);
1083
- if (quickOpenHistoryLimit === 0) {
1084
- return;
1085
- }
1086
- let keys = [...( this._recentlyUsedTasks.keys())];
1087
- if (keys.length > quickOpenHistoryLimit) {
1088
- keys = keys.slice(0, quickOpenHistoryLimit);
1089
- }
1090
- const keyValues = [];
1091
- for (const key of keys) {
1092
- keyValues.push([key, this._recentlyUsedTasks.get(key, 0 )]);
1093
- }
1094
- this._storageService.store(AbstractTaskService_1.RecentlyUsedTasks_KeyV2, JSON.stringify(keyValues), 1 , 1 );
1095
- }
1096
- async _setPersistentTask(task) {
1097
- if (!this._configurationService.getValue("task.reconnection" )) {
1098
- return;
1099
- }
1100
- let key = task.getKey();
1101
- if (!InMemoryTask.is(task) && key) {
1102
- const customizations = this._createCustomizableTask(task);
1103
- if (ContributedTask.is(task) && customizations) {
1104
- const custom = [];
1105
- const customized = Object.create(null);
1106
- await this._computeTasksForSingleConfig(task._source.workspaceFolder ?? this.workspaceFolders[0], {
1107
- version: '2.0.0',
1108
- tasks: [customizations]
1109
- }, 0 , custom, customized, TaskConfigSource.TasksJson, true);
1110
- for (const configuration in customized) {
1111
- key = customized[configuration].getKey();
1112
- }
1113
- }
1114
- if (!task.configurationProperties.isBackground) {
1115
- return;
1116
- }
1117
- this._log(( localizeWithPath(
1118
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
1119
- 'taskService.setPersistentTask',
1120
- 'Setting persistent task {0}',
1121
- key
1122
- )), true);
1123
- this._getTasksFromStorage('persistent').set(key, JSON.stringify(customizations));
1124
- this._savePersistentTasks();
1125
- }
1126
- }
1127
- _savePersistentTasks() {
1128
- this._persistentTasks = this._getTasksFromStorage('persistent');
1129
- const keys = [...( this._persistentTasks.keys())];
1130
- const keyValues = [];
1131
- for (const key of keys) {
1132
- keyValues.push([key, this._persistentTasks.get(key, 0 )]);
1133
- }
1134
- this._log(( localizeWithPath(
1135
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
1136
- 'savePersistentTask',
1137
- 'Saving persistent tasks: {0}',
1138
- keys.join(', ')
1139
- )), true);
1140
- this._storageService.store(AbstractTaskService_1.PersistentTasks_Key, JSON.stringify(keyValues), 1 , 1 );
1141
- }
1142
- _openDocumentation() {
1143
- this._openerService.open(( URI.parse(
1144
- 'https://code.visualstudio.com/docs/editor/tasks#_defining-a-problem-matcher'
1145
- )));
1146
- }
1147
- async _findSingleWorkspaceTaskOfGroup(group) {
1148
- const tasksOfGroup = await this._findWorkspaceTasksInGroup(group, true);
1149
- if ((tasksOfGroup.length === 1) && (typeof tasksOfGroup[0].configurationProperties.group !== 'string') && tasksOfGroup[0].configurationProperties.group?.isDefault) {
1150
- let resolvedTask;
1151
- if (ConfiguringTask.is(tasksOfGroup[0])) {
1152
- resolvedTask = await this.tryResolveTask(tasksOfGroup[0]);
1153
- }
1154
- else {
1155
- resolvedTask = tasksOfGroup[0];
1156
- }
1157
- if (resolvedTask) {
1158
- return this.run(resolvedTask, undefined, 1 );
1159
- }
1160
- }
1161
- return undefined;
1162
- }
1163
- async _build() {
1164
- const tryBuildShortcut = await this._findSingleWorkspaceTaskOfGroup(TaskGroup.Build);
1165
- if (tryBuildShortcut) {
1166
- return tryBuildShortcut;
1167
- }
1168
- return this._getGroupedTasksAndExecute();
1169
- }
1170
- async _runTest() {
1171
- const tryTestShortcut = await this._findSingleWorkspaceTaskOfGroup(TaskGroup.Test);
1172
- if (tryTestShortcut) {
1173
- return tryTestShortcut;
1174
- }
1175
- return this._getGroupedTasksAndExecute(true);
1176
- }
1177
- async _getGroupedTasksAndExecute(test) {
1178
- const tasks = await this._getGroupedTasks();
1179
- const runnable = this._createRunnableTask(tasks, test ? TaskGroup.Test : TaskGroup.Build);
1180
- if (!runnable || !runnable.task) {
1181
- if (test) {
1182
- if (this.schemaVersion === 1 ) {
1183
- throw new TaskError(Severity$1.Info, localizeWithPath('vs/workbench/contrib/tasks/browser/abstractTaskService', 'TaskService.noTestTask1', 'No test task defined. Mark a task with \'isTestCommand\' in the tasks.json file.'), 3 );
1184
- }
1185
- else {
1186
- throw new TaskError(Severity$1.Info, localizeWithPath('vs/workbench/contrib/tasks/browser/abstractTaskService', 'TaskService.noTestTask2', 'No test task defined. Mark a task with as a \'test\' group in the tasks.json file.'), 3 );
1187
- }
1188
- }
1189
- else {
1190
- if (this.schemaVersion === 1 ) {
1191
- throw new TaskError(Severity$1.Info, localizeWithPath('vs/workbench/contrib/tasks/browser/abstractTaskService', 'TaskService.noBuildTask1', 'No build task defined. Mark a task with \'isBuildCommand\' in the tasks.json file.'), 2 );
1192
- }
1193
- else {
1194
- throw new TaskError(Severity$1.Info, localizeWithPath('vs/workbench/contrib/tasks/browser/abstractTaskService', 'TaskService.noBuildTask2', 'No build task defined. Mark a task with as a \'build\' group in the tasks.json file.'), 2 );
1195
- }
1196
- }
1197
- }
1198
- let executeTaskResult;
1199
- try {
1200
- executeTaskResult = await this._executeTask(runnable.task, runnable.resolver, 1 );
1201
- }
1202
- catch (error) {
1203
- this._handleError(error);
1204
- return Promise.reject(error);
1205
- }
1206
- return executeTaskResult;
1207
- }
1208
- async run(task, options, runSource = 0 ) {
1209
- if (!(await this._trust())) {
1210
- return;
1211
- }
1212
- if (!task) {
1213
- throw new TaskError(Severity$1.Info, localizeWithPath('vs/workbench/contrib/tasks/browser/abstractTaskService', 'TaskServer.noTask', 'Task to execute is undefined'), 5 );
1214
- }
1215
- const resolver = this._createResolver();
1216
- let executeTaskResult;
1217
- try {
1218
- if (options && options.attachProblemMatcher && this._shouldAttachProblemMatcher(task) && !InMemoryTask.is(task)) {
1219
- const taskToExecute = await this._attachProblemMatcher(task);
1220
- if (taskToExecute) {
1221
- executeTaskResult = await this._executeTask(taskToExecute, resolver, runSource);
1222
- }
1223
- }
1224
- else {
1225
- executeTaskResult = await this._executeTask(task, resolver, runSource);
1226
- }
1227
- return executeTaskResult;
1228
- }
1229
- catch (error) {
1230
- this._handleError(error);
1231
- return Promise.reject(error);
1232
- }
1233
- }
1234
- _isProvideTasksEnabled() {
1235
- const settingValue = this._configurationService.getValue("task.autoDetect" );
1236
- return settingValue === 'on';
1237
- }
1238
- _isProblemMatcherPromptEnabled(type) {
1239
- const settingValue = this._configurationService.getValue(PROBLEM_MATCHER_NEVER_CONFIG);
1240
- if (isBoolean(settingValue)) {
1241
- return !settingValue;
1242
- }
1243
- if (type === undefined) {
1244
- return true;
1245
- }
1246
- const settingValueMap = settingValue;
1247
- return !settingValueMap[type];
1248
- }
1249
- _getTypeForTask(task) {
1250
- let type;
1251
- if (CustomTask.is(task)) {
1252
- const configProperties = task._source.config.element;
1253
- type = configProperties.type;
1254
- }
1255
- else {
1256
- type = task.getDefinition().type;
1257
- }
1258
- return type;
1259
- }
1260
- _shouldAttachProblemMatcher(task) {
1261
- const enabled = this._isProblemMatcherPromptEnabled(this._getTypeForTask(task));
1262
- if (enabled === false) {
1263
- return false;
1264
- }
1265
- if (!this._canCustomize(task)) {
1266
- return false;
1267
- }
1268
- if (task.configurationProperties.group !== undefined && task.configurationProperties.group !== TaskGroup.Build) {
1269
- return false;
1270
- }
1271
- if (task.configurationProperties.problemMatchers !== undefined && task.configurationProperties.problemMatchers.length > 0) {
1272
- return false;
1273
- }
1274
- if (ContributedTask.is(task)) {
1275
- return !task.hasDefinedMatchers && !!task.configurationProperties.problemMatchers && (task.configurationProperties.problemMatchers.length === 0);
1276
- }
1277
- if (CustomTask.is(task)) {
1278
- const configProperties = task._source.config.element;
1279
- return configProperties.problemMatcher === undefined && !task.hasDefinedMatchers;
1280
- }
1281
- return false;
1282
- }
1283
- async _updateNeverProblemMatcherSetting(type) {
1284
- const current = this._configurationService.getValue(PROBLEM_MATCHER_NEVER_CONFIG);
1285
- if (current === true) {
1286
- return;
1287
- }
1288
- let newValue;
1289
- if (current !== false) {
1290
- newValue = current;
1291
- }
1292
- else {
1293
- newValue = Object.create(null);
1294
- }
1295
- newValue[type] = true;
1296
- return this._configurationService.updateValue(PROBLEM_MATCHER_NEVER_CONFIG, newValue);
1297
- }
1298
- async _attachProblemMatcher(task) {
1299
- let entries = [];
1300
- for (const key of ( ProblemMatcherRegistry.keys())) {
1301
- const matcher = ProblemMatcherRegistry.get(key);
1302
- if (matcher.deprecated) {
1303
- continue;
1304
- }
1305
- if (matcher.name === matcher.label) {
1306
- entries.push({ label: matcher.name, matcher: matcher });
1307
- }
1308
- else {
1309
- entries.push({
1310
- label: matcher.label,
1311
- description: `$${matcher.name}`,
1312
- matcher: matcher
1313
- });
1314
- }
1315
- }
1316
- if (entries.length === 0) {
1317
- return;
1318
- }
1319
- entries = entries.sort((a, b) => {
1320
- if (a.label && b.label) {
1321
- return a.label.localeCompare(b.label);
1322
- }
1323
- else {
1324
- return 0;
1325
- }
1326
- });
1327
- entries.unshift({ type: 'separator', label: ( localizeWithPath(
1328
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
1329
- 'TaskService.associate',
1330
- 'associate'
1331
- )) });
1332
- let taskType;
1333
- if (CustomTask.is(task)) {
1334
- const configProperties = task._source.config.element;
1335
- taskType = configProperties.type;
1336
- }
1337
- else {
1338
- taskType = task.getDefinition().type;
1339
- }
1340
- entries.unshift({ label: ( localizeWithPath(
1341
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
1342
- 'TaskService.attachProblemMatcher.continueWithout',
1343
- 'Continue without scanning the task output'
1344
- )), matcher: undefined }, { label: ( localizeWithPath(
1345
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
1346
- 'TaskService.attachProblemMatcher.never',
1347
- 'Never scan the task output for this task'
1348
- )), matcher: undefined, never: true }, { label: ( localizeWithPath(
1349
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
1350
- 'TaskService.attachProblemMatcher.neverType',
1351
- 'Never scan the task output for {0} tasks',
1352
- taskType
1353
- )), matcher: undefined, setting: taskType }, { label: ( localizeWithPath(
1354
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
1355
- 'TaskService.attachProblemMatcher.learnMoreAbout',
1356
- 'Learn more about scanning the task output'
1357
- )), matcher: undefined, learnMore: true });
1358
- const problemMatcher = await this._quickInputService.pick(entries, { placeHolder: ( localizeWithPath(
1359
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
1360
- 'selectProblemMatcher',
1361
- 'Select for which kind of errors and warnings to scan the task output'
1362
- )) });
1363
- if (!problemMatcher) {
1364
- return task;
1365
- }
1366
- if (problemMatcher.learnMore) {
1367
- this._openDocumentation();
1368
- return undefined;
1369
- }
1370
- if (problemMatcher.never) {
1371
- this.customize(task, { problemMatcher: [] }, true);
1372
- return task;
1373
- }
1374
- if (problemMatcher.matcher) {
1375
- const newTask = task.clone();
1376
- const matcherReference = `$${problemMatcher.matcher.name}`;
1377
- const properties = { problemMatcher: [matcherReference] };
1378
- newTask.configurationProperties.problemMatchers = [matcherReference];
1379
- const matcher = ProblemMatcherRegistry.get(problemMatcher.matcher.name);
1380
- if (matcher && matcher.watching !== undefined) {
1381
- properties.isBackground = true;
1382
- newTask.configurationProperties.isBackground = true;
1383
- }
1384
- this.customize(task, properties, true);
1385
- return newTask;
1386
- }
1387
- if (problemMatcher.setting) {
1388
- await this._updateNeverProblemMatcherSetting(problemMatcher.setting);
1389
- }
1390
- return task;
1391
- }
1392
- async _getTasksForGroup(group) {
1393
- const groups = await this._getGroupedTasks();
1394
- const result = [];
1395
- groups.forEach(tasks => {
1396
- for (const task of tasks) {
1397
- const configTaskGroup = TaskGroup.from(task.configurationProperties.group);
1398
- if (configTaskGroup?._id === group._id) {
1399
- result.push(task);
1400
- }
1401
- }
1402
- });
1403
- return result;
1404
- }
1405
- needsFolderQualification() {
1406
- return this._contextService.getWorkbenchState() === 3 ;
1407
- }
1408
- _canCustomize(task) {
1409
- if (this.schemaVersion !== 2 ) {
1410
- return false;
1411
- }
1412
- if (CustomTask.is(task)) {
1413
- return true;
1414
- }
1415
- if (ContributedTask.is(task)) {
1416
- return !!task.getWorkspaceFolder();
1417
- }
1418
- return false;
1419
- }
1420
- async _formatTaskForJson(resource, task) {
1421
- let reference;
1422
- let stringValue = '';
1423
- try {
1424
- reference = await this._textModelResolverService.createModelReference(resource);
1425
- const model = reference.object.textEditorModel;
1426
- const { tabSize, insertSpaces } = model.getOptions();
1427
- const eol = model.getEOL();
1428
- let stringified = toFormattedString(task, { eol, tabSize, insertSpaces });
1429
- const regex = ( new RegExp(eol + (insertSpaces ? ' '.repeat(tabSize) : '\\t'), 'g'));
1430
- stringified = stringified.replace(regex, eol + (insertSpaces ? ' '.repeat(tabSize * 3) : '\t\t\t'));
1431
- const twoTabs = insertSpaces ? ' '.repeat(tabSize * 2) : '\t\t';
1432
- stringValue = twoTabs + stringified.slice(0, stringified.length - 1) + twoTabs + stringified.slice(stringified.length - 1);
1433
- }
1434
- finally {
1435
- reference?.dispose();
1436
- }
1437
- return stringValue;
1438
- }
1439
- async _openEditorAtTask(resource, task, configIndex = -1) {
1440
- if (resource === undefined) {
1441
- return Promise.resolve(false);
1442
- }
1443
- const fileContent = await this._fileService.readFile(resource);
1444
- const content = fileContent.value;
1445
- if (!content || !task) {
1446
- return false;
1447
- }
1448
- const contentValue = ( content.toString());
1449
- let stringValue;
1450
- if (configIndex !== -1) {
1451
- const json = this._configurationService.getValue('tasks', { resource });
1452
- if (json.tasks && (json.tasks.length > configIndex)) {
1453
- stringValue = await this._formatTaskForJson(resource, json.tasks[configIndex]);
1454
- }
1455
- }
1456
- if (!stringValue) {
1457
- if (typeof task === 'string') {
1458
- stringValue = task;
1459
- }
1460
- else {
1461
- stringValue = await this._formatTaskForJson(resource, task);
1462
- }
1463
- }
1464
- const index = contentValue.indexOf(stringValue);
1465
- let startLineNumber = 1;
1466
- for (let i = 0; i < index; i++) {
1467
- if (contentValue.charAt(i) === '\n') {
1468
- startLineNumber++;
1469
- }
1470
- }
1471
- let endLineNumber = startLineNumber;
1472
- for (let i = 0; i < stringValue.length; i++) {
1473
- if (stringValue.charAt(i) === '\n') {
1474
- endLineNumber++;
1475
- }
1476
- }
1477
- const selection = startLineNumber > 1 ? { startLineNumber, startColumn: startLineNumber === endLineNumber ? 4 : 3, endLineNumber, endColumn: startLineNumber === endLineNumber ? undefined : 4 } : undefined;
1478
- await this._editorService.openEditor({
1479
- resource,
1480
- options: {
1481
- pinned: false,
1482
- forceReload: true,
1483
- selection,
1484
- selectionRevealType: 1
1485
- }
1486
- });
1487
- return !!selection;
1488
- }
1489
- _createCustomizableTask(task) {
1490
- let toCustomize;
1491
- const taskConfig = CustomTask.is(task) || ConfiguringTask.is(task) ? task._source.config : undefined;
1492
- if (taskConfig && taskConfig.element) {
1493
- toCustomize = { ...(taskConfig.element) };
1494
- }
1495
- else if (ContributedTask.is(task)) {
1496
- toCustomize = {};
1497
- const identifier = Object.assign(Object.create(null), task.defines);
1498
- delete identifier['_key'];
1499
- ( Object.keys(identifier)).forEach(key => toCustomize[key] = identifier[key]);
1500
- if (task.configurationProperties.problemMatchers && task.configurationProperties.problemMatchers.length > 0 && isStringArray(task.configurationProperties.problemMatchers)) {
1501
- toCustomize.problemMatcher = task.configurationProperties.problemMatchers;
1502
- }
1503
- if (task.configurationProperties.group) {
1504
- toCustomize.group = GroupKind.to(task.configurationProperties.group);
1505
- }
1506
- }
1507
- if (!toCustomize) {
1508
- return undefined;
1509
- }
1510
- if (toCustomize.problemMatcher === undefined && task.configurationProperties.problemMatchers === undefined || (task.configurationProperties.problemMatchers && task.configurationProperties.problemMatchers.length === 0)) {
1511
- toCustomize.problemMatcher = [];
1512
- }
1513
- if (task._source.label !== 'Workspace') {
1514
- toCustomize.label = task.configurationProperties.identifier;
1515
- }
1516
- else {
1517
- toCustomize.label = task._label;
1518
- }
1519
- toCustomize.detail = task.configurationProperties.detail;
1520
- return toCustomize;
1521
- }
1522
- async customize(task, properties, openConfig) {
1523
- if (!(await this._trust())) {
1524
- return;
1525
- }
1526
- const workspaceFolder = task.getWorkspaceFolder();
1527
- if (!workspaceFolder) {
1528
- return Promise.resolve(undefined);
1529
- }
1530
- const configuration = this._getConfiguration(workspaceFolder, task._source.kind);
1531
- if (configuration.hasParseErrors) {
1532
- this._notificationService.warn(( localizeWithPath(
1533
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
1534
- 'customizeParseErrors',
1535
- 'The current task configuration has errors. Please fix the errors first before customizing a task.'
1536
- )));
1537
- return Promise.resolve(undefined);
1538
- }
1539
- const fileConfig = configuration.config;
1540
- const toCustomize = this._createCustomizableTask(task);
1541
- if (!toCustomize) {
1542
- return Promise.resolve(undefined);
1543
- }
1544
- const index = CustomTask.is(task) ? task._source.config.index : undefined;
1545
- if (properties) {
1546
- for (const property of Object.getOwnPropertyNames(properties)) {
1547
- const value = properties[property];
1548
- if (value !== undefined && value !== null) {
1549
- toCustomize[property] = value;
1550
- }
1551
- }
1552
- }
1553
- if (!fileConfig) {
1554
- const value = {
1555
- version: '2.0.0',
1556
- tasks: [toCustomize]
1557
- };
1558
- let content = [
1559
- '{',
1560
- ( localizeWithPath(
1561
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
1562
- 'tasksJsonComment',
1563
- '\t// See https://go.microsoft.com/fwlink/?LinkId=733558 \n\t// for the documentation about the tasks.json format'
1564
- )),
1565
- ].join('\n') + JSON.stringify(value, null, '\t').substr(1);
1566
- const editorConfig = this._configurationService.getValue();
1567
- if (editorConfig.editor.insertSpaces) {
1568
- content = content.replace(/(\n)(\t+)/g, (_, s1, s2) => s1 + ' '.repeat(s2.length * editorConfig.editor.tabSize));
1569
- }
1570
- await this._textFileService.create([{ resource: workspaceFolder.toResource('.vscode/tasks.json'), value: content }]);
1571
- }
1572
- else {
1573
- if ((index === -1) && properties) {
1574
- if (properties.problemMatcher !== undefined) {
1575
- fileConfig.problemMatcher = properties.problemMatcher;
1576
- await this._writeConfiguration(workspaceFolder, 'tasks.problemMatchers', fileConfig.problemMatcher, task._source.kind);
1577
- }
1578
- else if (properties.group !== undefined) {
1579
- fileConfig.group = properties.group;
1580
- await this._writeConfiguration(workspaceFolder, 'tasks.group', fileConfig.group, task._source.kind);
1581
- }
1582
- }
1583
- else {
1584
- if (!Array.isArray(fileConfig.tasks)) {
1585
- fileConfig.tasks = [];
1586
- }
1587
- if (index === undefined) {
1588
- fileConfig.tasks.push(toCustomize);
1589
- }
1590
- else {
1591
- fileConfig.tasks[index] = toCustomize;
1592
- }
1593
- await this._writeConfiguration(workspaceFolder, 'tasks.tasks', fileConfig.tasks, task._source.kind);
1594
- }
1595
- }
1596
- if (openConfig) {
1597
- this._openEditorAtTask(this._getResourceForTask(task), toCustomize);
1598
- }
1599
- }
1600
- _writeConfiguration(workspaceFolder, key, value, source) {
1601
- let target = undefined;
1602
- switch (source) {
1603
- case TaskSourceKind.User:
1604
- target = 2 ;
1605
- break;
1606
- case TaskSourceKind.WorkspaceFile:
1607
- target = 5 ;
1608
- break;
1609
- default: if (this._contextService.getWorkbenchState() === 2 ) {
1610
- target = 5 ;
1611
- }
1612
- else if (this._contextService.getWorkbenchState() === 3 ) {
1613
- target = 6 ;
1614
- }
1615
- }
1616
- if (target) {
1617
- return this._configurationService.updateValue(key, value, { resource: workspaceFolder.uri }, target);
1618
- }
1619
- else {
1620
- return undefined;
1621
- }
1622
- }
1623
- _getResourceForKind(kind) {
1624
- this._updateSetup();
1625
- switch (kind) {
1626
- case TaskSourceKind.User: {
1627
- return joinPath(dirname(this._preferencesService.userSettingsResource), 'tasks.json');
1628
- }
1629
- case TaskSourceKind.WorkspaceFile: {
1630
- if (this._workspace && this._workspace.configuration) {
1631
- return this._workspace.configuration;
1632
- }
1633
- }
1634
- default: {
1635
- return undefined;
1636
- }
1637
- }
1638
- }
1639
- _getResourceForTask(task) {
1640
- if (CustomTask.is(task)) {
1641
- let uri = this._getResourceForKind(task._source.kind);
1642
- if (!uri) {
1643
- const taskFolder = task.getWorkspaceFolder();
1644
- if (taskFolder) {
1645
- uri = taskFolder.toResource(task._source.config.file);
1646
- }
1647
- else {
1648
- uri = this.workspaceFolders[0].uri;
1649
- }
1650
- }
1651
- return uri;
1652
- }
1653
- else {
1654
- return task.getWorkspaceFolder().toResource('.vscode/tasks.json');
1655
- }
1656
- }
1657
- async openConfig(task) {
1658
- let resource;
1659
- if (task) {
1660
- resource = this._getResourceForTask(task);
1661
- }
1662
- else {
1663
- resource = (this._workspaceFolders && (this._workspaceFolders.length > 0)) ? this._workspaceFolders[0].toResource('.vscode/tasks.json') : undefined;
1664
- }
1665
- return this._openEditorAtTask(resource, task ? task._label : undefined, task ? task._source.config.index : -1);
1666
- }
1667
- _createRunnableTask(tasks, group) {
1668
- const resolverData = ( new Map());
1669
- const workspaceTasks = [];
1670
- const extensionTasks = [];
1671
- tasks.forEach((tasks, folder) => {
1672
- let data = resolverData.get(folder);
1673
- if (!data) {
1674
- data = {
1675
- id: ( new Map()),
1676
- label: ( new Map()),
1677
- identifier: ( new Map())
1678
- };
1679
- resolverData.set(folder, data);
1680
- }
1681
- for (const task of tasks) {
1682
- data.id.set(task._id, task);
1683
- data.label.set(task._label, task);
1684
- if (task.configurationProperties.identifier) {
1685
- data.identifier.set(task.configurationProperties.identifier, task);
1686
- }
1687
- if (group && task.configurationProperties.group === group) {
1688
- if (task._source.kind === TaskSourceKind.Workspace) {
1689
- workspaceTasks.push(task);
1690
- }
1691
- else {
1692
- extensionTasks.push(task);
1693
- }
1694
- }
1695
- }
1696
- });
1697
- const resolver = {
1698
- resolve: async (uri, alias) => {
1699
- const data = resolverData.get(typeof uri === 'string' ? uri : ( uri.toString()));
1700
- if (!data) {
1701
- return undefined;
1702
- }
1703
- return data.id.get(alias) || data.label.get(alias) || data.identifier.get(alias);
1704
- }
1705
- };
1706
- if (workspaceTasks.length > 0) {
1707
- if (workspaceTasks.length > 1) {
1708
- this._log(( localizeWithPath(
1709
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
1710
- 'moreThanOneBuildTask',
1711
- 'There are many build tasks defined in the tasks.json. Executing the first one.'
1712
- )));
1713
- }
1714
- return { task: workspaceTasks[0], resolver };
1715
- }
1716
- if (extensionTasks.length === 0) {
1717
- return undefined;
1718
- }
1719
- if (extensionTasks.length === 1) {
1720
- return { task: extensionTasks[0], resolver };
1721
- }
1722
- else {
1723
- const id = generateUuid();
1724
- const task = ( new InMemoryTask(
1725
- id,
1726
- { kind: TaskSourceKind.InMemory, label: 'inMemory' },
1727
- id,
1728
- 'inMemory',
1729
- { reevaluateOnRerun: true },
1730
- {
1731
- identifier: id,
1732
- dependsOn: ( extensionTasks.map(
1733
- (extensionTask) => { return { uri: extensionTask.getWorkspaceFolder().uri, task: extensionTask._id }; }
1734
- )),
1735
- name: id
1736
- }
1737
- ));
1738
- return { task, resolver };
1739
- }
1740
- }
1741
- _createResolver(grouped) {
1742
- let resolverData;
1743
- async function quickResolve(that, uri, identifier) {
1744
- const foundTasks = await that._findWorkspaceTasks((task) => {
1745
- const taskUri = ((ConfiguringTask.is(task) || CustomTask.is(task)) ? task._source.config.workspaceFolder?.uri : undefined);
1746
- const originalUri = (typeof uri === 'string' ? uri : ( uri.toString()));
1747
- if (taskUri?.toString() !== originalUri) {
1748
- return false;
1749
- }
1750
- if (isString(identifier)) {
1751
- return ((task._label === identifier) || (task.configurationProperties.identifier === identifier));
1752
- }
1753
- else {
1754
- const keyedIdentifier = task.getDefinition(true);
1755
- const searchIdentifier = TaskDefinition.createTaskIdentifier(identifier, console);
1756
- return (searchIdentifier && keyedIdentifier) ? (searchIdentifier._key === keyedIdentifier._key) : false;
1757
- }
1758
- });
1759
- if (foundTasks.length === 0) {
1760
- return undefined;
1761
- }
1762
- const task = foundTasks[0];
1763
- if (ConfiguringTask.is(task)) {
1764
- return that.tryResolveTask(task);
1765
- }
1766
- return task;
1767
- }
1768
- async function getResolverData(that) {
1769
- if (resolverData === undefined) {
1770
- resolverData = ( new Map());
1771
- (grouped || (await that._getGroupedTasks())).forEach((tasks, folder) => {
1772
- let data = resolverData.get(folder);
1773
- if (!data) {
1774
- data = { label: ( new Map()), identifier: ( new Map()), taskIdentifier: ( new Map()) };
1775
- resolverData.set(folder, data);
1776
- }
1777
- for (const task of tasks) {
1778
- data.label.set(task._label, task);
1779
- if (task.configurationProperties.identifier) {
1780
- data.identifier.set(task.configurationProperties.identifier, task);
1781
- }
1782
- const keyedIdentifier = task.getDefinition(true);
1783
- if (keyedIdentifier !== undefined) {
1784
- data.taskIdentifier.set(keyedIdentifier._key, task);
1785
- }
1786
- }
1787
- });
1788
- }
1789
- return resolverData;
1790
- }
1791
- async function fullResolve(that, uri, identifier) {
1792
- const allResolverData = await getResolverData(that);
1793
- const data = allResolverData.get(typeof uri === 'string' ? uri : ( uri.toString()));
1794
- if (!data) {
1795
- return undefined;
1796
- }
1797
- if (isString(identifier)) {
1798
- return data.label.get(identifier) || data.identifier.get(identifier);
1799
- }
1800
- else {
1801
- const key = TaskDefinition.createTaskIdentifier(identifier, console);
1802
- return key !== undefined ? data.taskIdentifier.get(key._key) : undefined;
1803
- }
1804
- }
1805
- return {
1806
- resolve: async (uri, identifier) => {
1807
- if (!identifier) {
1808
- return undefined;
1809
- }
1810
- if ((resolverData === undefined) && (grouped === undefined)) {
1811
- return (await quickResolve(this, uri, identifier)) ?? fullResolve(this, uri, identifier);
1812
- }
1813
- else {
1814
- return fullResolve(this, uri, identifier);
1815
- }
1816
- }
1817
- };
1818
- }
1819
- async _saveBeforeRun() {
1820
- let SaveBeforeRunConfigOptions;
1821
- ( (function(SaveBeforeRunConfigOptions) {
1822
- SaveBeforeRunConfigOptions["Always"] = "always";
1823
- SaveBeforeRunConfigOptions["Never"] = "never";
1824
- SaveBeforeRunConfigOptions["Prompt"] = "prompt";
1825
- })(SaveBeforeRunConfigOptions || (SaveBeforeRunConfigOptions = {})));
1826
- const saveBeforeRunTaskConfig = this._configurationService.getValue("task.saveBeforeRun" );
1827
- if (saveBeforeRunTaskConfig === SaveBeforeRunConfigOptions.Never) {
1828
- return false;
1829
- }
1830
- else if (saveBeforeRunTaskConfig === SaveBeforeRunConfigOptions.Prompt && ( this._editorService.editors.some(e => e.isDirty()))) {
1831
- const { confirmed } = await this._dialogService.confirm({
1832
- message: ( localizeWithPath(
1833
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
1834
- 'TaskSystem.saveBeforeRun.prompt.title',
1835
- "Save all editors?"
1836
- )),
1837
- detail: ( localizeWithPath(
1838
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
1839
- 'detail',
1840
- "Do you want to save all editors before running the task?"
1841
- )),
1842
- primaryButton: ( localizeWithPath(
1843
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
1844
- { key: 'saveBeforeRun.save', comment: ['&& denotes a mnemonic'] },
1845
- '&&Save'
1846
- )),
1847
- cancelButton: ( localizeWithPath(
1848
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
1849
- { key: 'saveBeforeRun.dontSave', comment: ['&& denotes a mnemonic'] },
1850
- "Do&&n't Save"
1851
- )),
1852
- });
1853
- if (!confirmed) {
1854
- return false;
1855
- }
1856
- }
1857
- await this._editorService.saveAll({ reason: 2 });
1858
- return true;
1859
- }
1860
- async _executeTask(task, resolver, runSource) {
1861
- let taskToRun = task;
1862
- if (await this._saveBeforeRun()) {
1863
- await this._configurationService.reloadConfiguration();
1864
- await this._updateWorkspaceTasks();
1865
- const taskFolder = task.getWorkspaceFolder();
1866
- const taskIdentifier = task.configurationProperties.identifier;
1867
- const taskType = CustomTask.is(task) ? task.customizes()?.type : (ContributedTask.is(task) ? task.type : undefined);
1868
- taskToRun = ((taskFolder && taskIdentifier && ((runSource === 1) ))
1869
- ? await this.getTask(taskFolder, taskIdentifier, false, taskType) : task) ?? task;
1870
- }
1871
- await ProblemMatcherRegistry.onReady();
1872
- const executeResult = runSource === 4 ? this._getTaskSystem().reconnect(taskToRun, resolver) : this._getTaskSystem().run(taskToRun, resolver);
1873
- if (executeResult) {
1874
- return this._handleExecuteResult(executeResult, runSource);
1875
- }
1876
- return { exitCode: 0 };
1877
- }
1878
- async _handleExecuteResult(executeResult, runSource) {
1879
- if (runSource === 1 ) {
1880
- await this._setRecentlyUsedTask(executeResult.task);
1881
- }
1882
- if (executeResult.kind === 2 ) {
1883
- const active = executeResult.active;
1884
- if (active && active.same && runSource === 2 || runSource === 4 ) {
1885
- this._logService.debug('Ignoring task that is already active', executeResult.task);
1886
- return executeResult.promise;
1887
- }
1888
- if (active && active.same) {
1889
- if (this._taskSystem?.isTaskVisible(executeResult.task)) {
1890
- const message = ( localizeWithPath(
1891
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
1892
- 'TaskSystem.activeSame.noBackground',
1893
- 'The task \'{0}\' is already active.',
1894
- executeResult.task.getQualifiedLabel()
1895
- ));
1896
- const lastInstance = this._getTaskSystem().getLastInstance(executeResult.task) ?? executeResult.task;
1897
- this._notificationService.prompt(Severity$1.Warning, message, [{
1898
- label: ( localizeWithPath(
1899
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
1900
- 'terminateTask',
1901
- "Terminate Task"
1902
- )),
1903
- run: () => this.terminate(lastInstance)
1904
- },
1905
- {
1906
- label: ( localizeWithPath(
1907
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
1908
- 'restartTask',
1909
- "Restart Task"
1910
- )),
1911
- run: () => this._restart(lastInstance)
1912
- }], { sticky: true });
1913
- }
1914
- else {
1915
- this._taskSystem?.revealTask(executeResult.task);
1916
- }
1917
- }
1918
- else {
1919
- throw new TaskError(Severity$1.Warning, localizeWithPath('vs/workbench/contrib/tasks/browser/abstractTaskService', 'TaskSystem.active', 'There is already a task running. Terminate it first before executing another task.'), 1 );
1920
- }
1921
- }
1922
- this._setRecentlyUsedTask(executeResult.task);
1923
- return executeResult.promise;
1924
- }
1925
- async _restart(task) {
1926
- if (!this._taskSystem) {
1927
- return;
1928
- }
1929
- const response = await this._taskSystem.terminate(task);
1930
- if (response.success) {
1931
- try {
1932
- await this.run(task);
1933
- }
1934
- catch {
1935
- }
1936
- }
1937
- else {
1938
- this._notificationService.warn(( localizeWithPath(
1939
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
1940
- 'TaskSystem.restartFailed',
1941
- 'Failed to terminate and restart task {0}',
1942
- isString(task) ? task : task.configurationProperties.name
1943
- )));
1944
- }
1945
- }
1946
- async terminate(task) {
1947
- if (!(await this._trust())) {
1948
- return { success: true, task: undefined };
1949
- }
1950
- if (!this._taskSystem) {
1951
- return { success: true, task: undefined };
1952
- }
1953
- return this._taskSystem.terminate(task);
1954
- }
1955
- _terminateAll() {
1956
- if (!this._taskSystem) {
1957
- return Promise.resolve([]);
1958
- }
1959
- return this._taskSystem.terminateAll();
1960
- }
1961
- _createTerminalTaskSystem() {
1962
- return ( new TerminalTaskSystem(
1963
- this._terminalService,
1964
- this._terminalGroupService,
1965
- this._outputService,
1966
- this._paneCompositeService,
1967
- this._viewsService,
1968
- this._markerService,
1969
- this._modelService,
1970
- this._configurationResolverService,
1971
- this._contextService,
1972
- this._environmentService,
1973
- AbstractTaskService_1.OutputChannelId,
1974
- this._fileService,
1975
- this._terminalProfileResolverService,
1976
- this._pathService,
1977
- this._viewDescriptorService,
1978
- this._logService,
1979
- this._notificationService,
1980
- this._instantiationService,
1981
- (workspaceFolder) => {
1982
- if (workspaceFolder) {
1983
- return this._getTaskSystemInfo(workspaceFolder.uri.scheme);
1984
- }
1985
- else if (this._taskSystemInfos.size > 0) {
1986
- const infos = Array.from(this._taskSystemInfos.entries());
1987
- const notFile = infos.filter(info => info[0] !== Schemas.file);
1988
- if (notFile.length > 0) {
1989
- return notFile[0][1][0];
1990
- }
1991
- return infos[0][1][0];
1992
- }
1993
- else {
1994
- return undefined;
1995
- }
1996
- }
1997
- ));
1998
- }
1999
- _isTaskProviderEnabled(type) {
2000
- const definition = TaskDefinitionRegistry.get(type);
2001
- return !definition || !definition.when || this._contextKeyService.contextMatchesRules(definition.when);
2002
- }
2003
- async _getGroupedTasks(filter) {
2004
- await this._waitForAllSupportedExecutions;
2005
- const type = filter?.type;
2006
- const needsRecentTasksMigration = this._needsRecentTasksMigration();
2007
- await this._activateTaskProviders(filter?.type);
2008
- const validTypes = Object.create(null);
2009
- TaskDefinitionRegistry.all().forEach(definition => validTypes[definition.taskType] = true);
2010
- validTypes['shell'] = true;
2011
- validTypes['process'] = true;
2012
- const contributedTaskSets = await ( new Promise(resolve => {
2013
- const result = [];
2014
- let counter = 0;
2015
- const done = (value) => {
2016
- if (value) {
2017
- result.push(value);
2018
- }
2019
- if (--counter === 0) {
2020
- resolve(result);
2021
- }
2022
- };
2023
- const error = (error) => {
2024
- try {
2025
- if (error && isString(error.message)) {
2026
- this._log(`Error: ${error.message}\n`);
2027
- this._showOutput();
2028
- }
2029
- else {
2030
- this._log('Unknown error received while collecting tasks from providers.');
2031
- this._showOutput();
2032
- }
2033
- }
2034
- finally {
2035
- if (--counter === 0) {
2036
- resolve(result);
2037
- }
2038
- }
2039
- };
2040
- if (this._isProvideTasksEnabled() && ((this.schemaVersion === 2) ) && (this._providers.size > 0)) {
2041
- let foundAnyProviders = false;
2042
- for (const [handle, provider] of this._providers) {
2043
- const providerType = this._providerTypes.get(handle);
2044
- if ((type === undefined) || (type === providerType)) {
2045
- if (providerType && !this._isTaskProviderEnabled(providerType)) {
2046
- continue;
2047
- }
2048
- foundAnyProviders = true;
2049
- counter++;
2050
- raceTimeout(provider.provideTasks(validTypes).then((taskSet) => {
2051
- for (const task of taskSet.tasks) {
2052
- if (task.type !== this._providerTypes.get(handle)) {
2053
- this._log(( localizeWithPath(
2054
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
2055
- 'unexpectedTaskType',
2056
- "The task provider for \"{0}\" tasks unexpectedly provided a task of type \"{1}\".\n",
2057
- this._providerTypes.get(handle),
2058
- task.type
2059
- )));
2060
- if ((task.type !== 'shell') && (task.type !== 'process')) {
2061
- this._showOutput();
2062
- }
2063
- break;
2064
- }
2065
- }
2066
- return done(taskSet);
2067
- }, error), 5000, () => {
2068
- console.error('Timed out getting tasks from ', providerType);
2069
- done(undefined);
2070
- });
2071
- }
2072
- }
2073
- if (!foundAnyProviders) {
2074
- resolve(result);
2075
- }
2076
- }
2077
- else {
2078
- resolve(result);
2079
- }
2080
- }));
2081
- const result = ( new TaskMap());
2082
- const contributedTasks = ( new TaskMap());
2083
- for (const set of contributedTaskSets) {
2084
- for (const task of set.tasks) {
2085
- const workspaceFolder = task.getWorkspaceFolder();
2086
- if (workspaceFolder) {
2087
- contributedTasks.add(workspaceFolder, task);
2088
- }
2089
- }
2090
- }
2091
- try {
2092
- const customTasks = await this.getWorkspaceTasks();
2093
- const customTasksKeyValuePairs = Array.from(customTasks);
2094
- const customTasksPromises = ( customTasksKeyValuePairs.map(async ([key, folderTasks]) => {
2095
- const contributed = contributedTasks.get(key);
2096
- if (!folderTasks.set) {
2097
- if (contributed) {
2098
- result.add(key, ...contributed);
2099
- }
2100
- return;
2101
- }
2102
- if (this._contextService.getWorkbenchState() === 1 ) {
2103
- result.add(key, ...folderTasks.set.tasks);
2104
- }
2105
- else {
2106
- const configurations = folderTasks.configurations;
2107
- const legacyTaskConfigurations = folderTasks.set ? this._getLegacyTaskConfigurations(folderTasks.set) : undefined;
2108
- const customTasksToDelete = [];
2109
- if (configurations || legacyTaskConfigurations) {
2110
- const unUsedConfigurations = ( new Set());
2111
- if (configurations) {
2112
- ( Object.keys(configurations.byIdentifier)).forEach(key => unUsedConfigurations.add(key));
2113
- }
2114
- for (const task of contributed) {
2115
- if (!ContributedTask.is(task)) {
2116
- continue;
2117
- }
2118
- if (configurations) {
2119
- const configuringTask = configurations.byIdentifier[task.defines._key];
2120
- if (configuringTask) {
2121
- unUsedConfigurations.delete(task.defines._key);
2122
- result.add(key, createCustomTask(task, configuringTask));
2123
- }
2124
- else {
2125
- result.add(key, task);
2126
- }
2127
- }
2128
- else if (legacyTaskConfigurations) {
2129
- const configuringTask = legacyTaskConfigurations[task.defines._key];
2130
- if (configuringTask) {
2131
- result.add(key, createCustomTask(task, configuringTask));
2132
- customTasksToDelete.push(configuringTask);
2133
- }
2134
- else {
2135
- result.add(key, task);
2136
- }
2137
- }
2138
- else {
2139
- result.add(key, task);
2140
- }
2141
- }
2142
- if (customTasksToDelete.length > 0) {
2143
- const toDelete = customTasksToDelete.reduce((map, task) => {
2144
- map[task._id] = true;
2145
- return map;
2146
- }, Object.create(null));
2147
- for (const task of folderTasks.set.tasks) {
2148
- if (toDelete[task._id]) {
2149
- continue;
2150
- }
2151
- result.add(key, task);
2152
- }
2153
- }
2154
- else {
2155
- result.add(key, ...folderTasks.set.tasks);
2156
- }
2157
- const unUsedConfigurationsAsArray = Array.from(unUsedConfigurations);
2158
- const unUsedConfigurationPromises = ( unUsedConfigurationsAsArray.map(async (value) => {
2159
- const configuringTask = configurations.byIdentifier[value];
2160
- if (type && (type !== configuringTask.configures.type)) {
2161
- return;
2162
- }
2163
- let requiredTaskProviderUnavailable = false;
2164
- for (const [handle, provider] of this._providers) {
2165
- const providerType = this._providerTypes.get(handle);
2166
- if (configuringTask.type === providerType) {
2167
- if (providerType && !this._isTaskProviderEnabled(providerType)) {
2168
- requiredTaskProviderUnavailable = true;
2169
- continue;
2170
- }
2171
- try {
2172
- const resolvedTask = await provider.resolveTask(configuringTask);
2173
- if (resolvedTask && (resolvedTask._id === configuringTask._id)) {
2174
- result.add(key, createCustomTask(resolvedTask, configuringTask));
2175
- return;
2176
- }
2177
- }
2178
- catch (error) {
2179
- }
2180
- }
2181
- }
2182
- if (requiredTaskProviderUnavailable) {
2183
- this._log(( localizeWithPath(
2184
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
2185
- 'TaskService.providerUnavailable',
2186
- 'Warning: {0} tasks are unavailable in the current environment.',
2187
- configuringTask.configures.type
2188
- )));
2189
- }
2190
- else {
2191
- this._log(( localizeWithPath(
2192
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
2193
- 'TaskService.noConfiguration',
2194
- 'Error: The {0} task detection didn\'t contribute a task for the following configuration:\n{1}\nThe task will be ignored.',
2195
- configuringTask.configures.type,
2196
- JSON.stringify(configuringTask._source.config.element, undefined, 4)
2197
- )));
2198
- this._showOutput();
2199
- }
2200
- }));
2201
- await Promise.all(unUsedConfigurationPromises);
2202
- }
2203
- else {
2204
- result.add(key, ...folderTasks.set.tasks);
2205
- result.add(key, ...contributed);
2206
- }
2207
- }
2208
- }));
2209
- await Promise.all(customTasksPromises);
2210
- if (needsRecentTasksMigration) {
2211
- await this._migrateRecentTasks(result.all());
2212
- }
2213
- return result;
2214
- }
2215
- catch {
2216
- const result = ( new TaskMap());
2217
- for (const set of contributedTaskSets) {
2218
- for (const task of set.tasks) {
2219
- const folder = task.getWorkspaceFolder();
2220
- if (folder) {
2221
- result.add(folder, task);
2222
- }
2223
- }
2224
- }
2225
- return result;
2226
- }
2227
- }
2228
- _getLegacyTaskConfigurations(workspaceTasks) {
2229
- let result;
2230
- function getResult() {
2231
- if (result) {
2232
- return result;
2233
- }
2234
- result = Object.create(null);
2235
- return result;
2236
- }
2237
- for (const task of workspaceTasks.tasks) {
2238
- if (CustomTask.is(task)) {
2239
- const commandName = task.command && task.command.name;
2240
- if (commandName === 'gulp' || commandName === 'grunt' || commandName === 'jake') {
2241
- const identifier = KeyedTaskIdentifier.create({
2242
- type: commandName,
2243
- task: task.configurationProperties.name
2244
- });
2245
- getResult()[identifier._key] = task;
2246
- }
2247
- }
2248
- }
2249
- return result;
2250
- }
2251
- async getWorkspaceTasks(runSource = 1 ) {
2252
- if (!(await this._trust())) {
2253
- return ( new Map());
2254
- }
2255
- await raceTimeout(this._waitForAllSupportedExecutions, 2000, () => {
2256
- this._logService.warn('Timed out waiting for all supported executions');
2257
- });
2258
- await this._whenTaskSystemReady;
2259
- if (this._workspaceTasksPromise) {
2260
- return this._workspaceTasksPromise;
2261
- }
2262
- return this._updateWorkspaceTasks(runSource);
2263
- }
2264
- _updateWorkspaceTasks(runSource = 1 ) {
2265
- this._workspaceTasksPromise = this._computeWorkspaceTasks(runSource);
2266
- return this._workspaceTasksPromise;
2267
- }
2268
- async _getAFolder() {
2269
- let folder = this.workspaceFolders.length > 0 ? this.workspaceFolders[0] : undefined;
2270
- if (!folder) {
2271
- const userhome = await this._pathService.userHome();
2272
- folder = ( new WorkspaceFolder({ uri: userhome, name: basename(userhome), index: 0 }));
2273
- }
2274
- return folder;
2275
- }
2276
- async _computeWorkspaceTasks(runSource = 1 ) {
2277
- const promises = [];
2278
- for (const folder of this.workspaceFolders) {
2279
- promises.push(this._computeWorkspaceFolderTasks(folder, runSource));
2280
- }
2281
- const values = await Promise.all(promises);
2282
- const result = ( new Map());
2283
- for (const value of values) {
2284
- if (value) {
2285
- result.set(( value.workspaceFolder.uri.toString()), value);
2286
- }
2287
- }
2288
- const folder = await this._getAFolder();
2289
- if (this._contextService.getWorkbenchState() !== 1 ) {
2290
- const workspaceFileTasks = await this._computeWorkspaceFileTasks(folder, runSource);
2291
- if (workspaceFileTasks && this._workspace && this._workspace.configuration) {
2292
- result.set(( this._workspace.configuration.toString()), workspaceFileTasks);
2293
- }
2294
- }
2295
- const userTasks = await this._computeUserTasks(folder, runSource);
2296
- if (userTasks) {
2297
- result.set(USER_TASKS_GROUP_KEY, userTasks);
2298
- }
2299
- return result;
2300
- }
2301
- get _jsonTasksSupported() {
2302
- return ShellExecutionSupportedContext.getValue(this._contextKeyService) === true && ProcessExecutionSupportedContext.getValue(this._contextKeyService) === true;
2303
- }
2304
- async _computeWorkspaceFolderTasks(workspaceFolder, runSource = 1 ) {
2305
- const workspaceFolderConfiguration = (this._executionEngine === ExecutionEngine.Process ? await this._computeLegacyConfiguration(workspaceFolder) : await this._computeConfiguration(workspaceFolder));
2306
- if (!workspaceFolderConfiguration || !workspaceFolderConfiguration.config || workspaceFolderConfiguration.hasErrors) {
2307
- return Promise.resolve({ workspaceFolder, set: undefined, configurations: undefined, hasErrors: workspaceFolderConfiguration ? workspaceFolderConfiguration.hasErrors : false });
2308
- }
2309
- await ProblemMatcherRegistry.onReady();
2310
- const taskSystemInfo = this._getTaskSystemInfo(workspaceFolder.uri.scheme);
2311
- const problemReporter = ( new ProblemReporter(this._outputChannel));
2312
- const parseResult = parse(workspaceFolder, undefined, taskSystemInfo ? taskSystemInfo.platform : platform, workspaceFolderConfiguration.config, problemReporter, TaskConfigSource.TasksJson, this._contextKeyService);
2313
- let hasErrors = false;
2314
- if (!parseResult.validationStatus.isOK() && ((parseResult.validationStatus.state !== 1) )) {
2315
- hasErrors = true;
2316
- this._showOutput(runSource);
2317
- }
2318
- if (problemReporter.status.isFatal()) {
2319
- problemReporter.fatal(( localizeWithPath(
2320
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
2321
- 'TaskSystem.configurationErrors',
2322
- 'Error: the provided task configuration has validation errors and can\'t not be used. Please correct the errors first.'
2323
- )));
2324
- return { workspaceFolder, set: undefined, configurations: undefined, hasErrors };
2325
- }
2326
- let customizedTasks;
2327
- if (parseResult.configured && parseResult.configured.length > 0) {
2328
- customizedTasks = {
2329
- byIdentifier: Object.create(null)
2330
- };
2331
- for (const task of parseResult.configured) {
2332
- customizedTasks.byIdentifier[task.configures._key] = task;
2333
- }
2334
- }
2335
- if (!this._jsonTasksSupported && (parseResult.custom.length > 0)) {
2336
- console.warn('Custom workspace tasks are not supported.');
2337
- }
2338
- return { workspaceFolder, set: { tasks: this._jsonTasksSupported ? parseResult.custom : [] }, configurations: customizedTasks, hasErrors };
2339
- }
2340
- _testParseExternalConfig(config, location) {
2341
- if (!config) {
2342
- return { config: undefined, hasParseErrors: false };
2343
- }
2344
- const parseErrors = config.$parseErrors;
2345
- if (parseErrors) {
2346
- let isAffected = false;
2347
- for (const parseError of parseErrors) {
2348
- if (/tasks\.json$/.test(parseError)) {
2349
- isAffected = true;
2350
- break;
2351
- }
2352
- }
2353
- if (isAffected) {
2354
- this._log(( localizeWithPath(
2355
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
2356
- { key: 'TaskSystem.invalidTaskJsonOther', comment: ['Message notifies of an error in one of several places there is tasks related json, not necessarily in a file named tasks.json'] },
2357
- 'Error: The content of the tasks json in {0} has syntax errors. Please correct them before executing a task.',
2358
- location
2359
- )));
2360
- this._showOutput();
2361
- return { config, hasParseErrors: true };
2362
- }
2363
- }
2364
- return { config, hasParseErrors: false };
2365
- }
2366
- _log(value, verbose) {
2367
- if (!verbose || this._configurationService.getValue("task.verboseLogging" )) {
2368
- this._outputChannel.append(value + '\n');
2369
- }
2370
- }
2371
- async _computeWorkspaceFileTasks(workspaceFolder, runSource = 1 ) {
2372
- if (this._executionEngine === ExecutionEngine.Process) {
2373
- return this._emptyWorkspaceTaskResults(workspaceFolder);
2374
- }
2375
- const workspaceFileConfig = this._getConfiguration(workspaceFolder, TaskSourceKind.WorkspaceFile);
2376
- const configuration = this._testParseExternalConfig(workspaceFileConfig.config, ( localizeWithPath(
2377
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
2378
- 'TasksSystem.locationWorkspaceConfig',
2379
- 'workspace file'
2380
- )));
2381
- const customizedTasks = {
2382
- byIdentifier: Object.create(null)
2383
- };
2384
- const custom = [];
2385
- await this._computeTasksForSingleConfig(workspaceFolder, configuration.config, runSource, custom, customizedTasks.byIdentifier, TaskConfigSource.WorkspaceFile);
2386
- const engine = configuration.config ? ExecutionEngine$1.from(configuration.config) : ExecutionEngine.Terminal;
2387
- if (engine === ExecutionEngine.Process) {
2388
- this._notificationService.warn(( localizeWithPath(
2389
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
2390
- 'TaskSystem.versionWorkspaceFile',
2391
- 'Only tasks version 2.0.0 permitted in workspace configuration files.'
2392
- )));
2393
- return this._emptyWorkspaceTaskResults(workspaceFolder);
2394
- }
2395
- return { workspaceFolder, set: { tasks: custom }, configurations: customizedTasks, hasErrors: configuration.hasParseErrors };
2396
- }
2397
- async _computeUserTasks(workspaceFolder, runSource = 1 ) {
2398
- if (this._executionEngine === ExecutionEngine.Process) {
2399
- return this._emptyWorkspaceTaskResults(workspaceFolder);
2400
- }
2401
- const userTasksConfig = this._getConfiguration(workspaceFolder, TaskSourceKind.User);
2402
- const configuration = this._testParseExternalConfig(userTasksConfig.config, ( localizeWithPath(
2403
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
2404
- 'TasksSystem.locationUserConfig',
2405
- 'user settings'
2406
- )));
2407
- const customizedTasks = {
2408
- byIdentifier: Object.create(null)
2409
- };
2410
- const custom = [];
2411
- await this._computeTasksForSingleConfig(workspaceFolder, configuration.config, runSource, custom, customizedTasks.byIdentifier, TaskConfigSource.User);
2412
- const engine = configuration.config ? ExecutionEngine$1.from(configuration.config) : ExecutionEngine.Terminal;
2413
- if (engine === ExecutionEngine.Process) {
2414
- this._notificationService.warn(( localizeWithPath(
2415
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
2416
- 'TaskSystem.versionSettings',
2417
- 'Only tasks version 2.0.0 permitted in user settings.'
2418
- )));
2419
- return this._emptyWorkspaceTaskResults(workspaceFolder);
2420
- }
2421
- return { workspaceFolder, set: { tasks: custom }, configurations: customizedTasks, hasErrors: configuration.hasParseErrors };
2422
- }
2423
- _emptyWorkspaceTaskResults(workspaceFolder) {
2424
- return { workspaceFolder, set: undefined, configurations: undefined, hasErrors: false };
2425
- }
2426
- async _computeTasksForSingleConfig(workspaceFolder, config, runSource, custom, customized, source, isRecentTask = false) {
2427
- if (!config) {
2428
- return false;
2429
- }
2430
- else if (!workspaceFolder) {
2431
- this._logService.trace('TaskService.computeTasksForSingleConfig: no workspace folder for worskspace', this._workspace?.id);
2432
- return false;
2433
- }
2434
- const taskSystemInfo = this._getTaskSystemInfo(workspaceFolder.uri.scheme);
2435
- const problemReporter = ( new ProblemReporter(this._outputChannel));
2436
- const parseResult = parse(workspaceFolder, this._workspace, taskSystemInfo ? taskSystemInfo.platform : platform, config, problemReporter, source, this._contextKeyService, isRecentTask);
2437
- let hasErrors = false;
2438
- if (!parseResult.validationStatus.isOK() && ((parseResult.validationStatus.state !== 1) )) {
2439
- this._showOutput(runSource);
2440
- hasErrors = true;
2441
- }
2442
- if (problemReporter.status.isFatal()) {
2443
- problemReporter.fatal(( localizeWithPath(
2444
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
2445
- 'TaskSystem.configurationErrors',
2446
- 'Error: the provided task configuration has validation errors and can\'t not be used. Please correct the errors first.'
2447
- )));
2448
- return hasErrors;
2449
- }
2450
- if (parseResult.configured && parseResult.configured.length > 0) {
2451
- for (const task of parseResult.configured) {
2452
- customized[task.configures._key] = task;
2453
- }
2454
- }
2455
- if (!this._jsonTasksSupported && (parseResult.custom.length > 0)) {
2456
- console.warn('Custom workspace tasks are not supported.');
2457
- }
2458
- else {
2459
- for (const task of parseResult.custom) {
2460
- custom.push(task);
2461
- }
2462
- }
2463
- return hasErrors;
2464
- }
2465
- _computeConfiguration(workspaceFolder) {
2466
- const { config, hasParseErrors } = this._getConfiguration(workspaceFolder);
2467
- return Promise.resolve({ workspaceFolder, config, hasErrors: hasParseErrors });
2468
- }
2469
- _computeWorkspaceFolderSetup() {
2470
- const workspaceFolders = [];
2471
- const ignoredWorkspaceFolders = [];
2472
- let executionEngine = ExecutionEngine.Terminal;
2473
- let schemaVersion = 2 ;
2474
- let workspace;
2475
- if (this._contextService.getWorkbenchState() === 2 ) {
2476
- const workspaceFolder = this._contextService.getWorkspace().folders[0];
2477
- workspaceFolders.push(workspaceFolder);
2478
- executionEngine = this._computeExecutionEngine(workspaceFolder);
2479
- const telemetryData = {
2480
- executionEngineVersion: executionEngine
2481
- };
2482
- this._telemetryService.publicLog('taskService.engineVersion', telemetryData);
2483
- schemaVersion = this._computeJsonSchemaVersion(workspaceFolder);
2484
- }
2485
- else if (this._contextService.getWorkbenchState() === 3 ) {
2486
- workspace = this._contextService.getWorkspace();
2487
- for (const workspaceFolder of this._contextService.getWorkspace().folders) {
2488
- if (schemaVersion === this._computeJsonSchemaVersion(workspaceFolder)) {
2489
- workspaceFolders.push(workspaceFolder);
2490
- }
2491
- else {
2492
- ignoredWorkspaceFolders.push(workspaceFolder);
2493
- this._log(( localizeWithPath(
2494
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
2495
- 'taskService.ignoreingFolder',
2496
- 'Ignoring task configurations for workspace folder {0}. Multi folder workspace task support requires that all folders use task version 2.0.0',
2497
- workspaceFolder.uri.fsPath
2498
- )));
2499
- }
2500
- }
2501
- }
2502
- return [workspaceFolders, ignoredWorkspaceFolders, executionEngine, schemaVersion, workspace];
2503
- }
2504
- _computeExecutionEngine(workspaceFolder) {
2505
- const { config } = this._getConfiguration(workspaceFolder);
2506
- if (!config) {
2507
- return ExecutionEngine._default;
2508
- }
2509
- return ExecutionEngine$1.from(config);
2510
- }
2511
- _computeJsonSchemaVersion(workspaceFolder) {
2512
- const { config } = this._getConfiguration(workspaceFolder);
2513
- if (!config) {
2514
- return 2 ;
2515
- }
2516
- return JsonSchemaVersion.from(config);
2517
- }
2518
- _getConfiguration(workspaceFolder, source) {
2519
- let result;
2520
- if ((source !== TaskSourceKind.User) && ((this._contextService.getWorkbenchState() === 1) )) {
2521
- result = undefined;
2522
- }
2523
- else {
2524
- const wholeConfig = this._configurationService.inspect('tasks', { resource: workspaceFolder.uri });
2525
- switch (source) {
2526
- case TaskSourceKind.User: {
2527
- if (wholeConfig.userValue !== wholeConfig.workspaceFolderValue) {
2528
- result = deepClone(wholeConfig.userValue);
2529
- }
2530
- break;
2531
- }
2532
- case TaskSourceKind.Workspace:
2533
- result = deepClone(wholeConfig.workspaceFolderValue);
2534
- break;
2535
- case TaskSourceKind.WorkspaceFile: {
2536
- if (((this._contextService.getWorkbenchState() === 3) )
2537
- && (wholeConfig.workspaceFolderValue !== wholeConfig.workspaceValue)) {
2538
- result = deepClone(wholeConfig.workspaceValue);
2539
- }
2540
- break;
2541
- }
2542
- default: result = deepClone(wholeConfig.workspaceFolderValue);
2543
- }
2544
- }
2545
- if (!result) {
2546
- return { config: undefined, hasParseErrors: false };
2547
- }
2548
- const parseErrors = result.$parseErrors;
2549
- if (parseErrors) {
2550
- let isAffected = false;
2551
- for (const parseError of parseErrors) {
2552
- if (/tasks\.json$/.test(parseError)) {
2553
- isAffected = true;
2554
- break;
2555
- }
2556
- }
2557
- if (isAffected) {
2558
- this._log(( localizeWithPath(
2559
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
2560
- 'TaskSystem.invalidTaskJson',
2561
- 'Error: The content of the tasks.json file has syntax errors. Please correct them before executing a task.'
2562
- )));
2563
- this._showOutput();
2564
- return { config: undefined, hasParseErrors: true };
2565
- }
2566
- }
2567
- return { config: result, hasParseErrors: false };
2568
- }
2569
- inTerminal() {
2570
- if (this._taskSystem) {
2571
- return this._taskSystem instanceof TerminalTaskSystem;
2572
- }
2573
- return this._executionEngine === ExecutionEngine.Terminal;
2574
- }
2575
- configureAction() {
2576
- const thisCapture = this;
2577
- return new (class extends Action {
2578
- constructor() {
2579
- super(ConfigureTaskAction.ID, ConfigureTaskAction.TEXT.value, undefined, true, () => { thisCapture._runConfigureTasks(); return Promise.resolve(undefined); });
2580
- }
2581
- });
2582
- }
2583
- _handleError(err) {
2584
- let showOutput = true;
2585
- if (err instanceof TaskError) {
2586
- const buildError = err;
2587
- const needsConfig = buildError.code === 0 || buildError.code === 2 || buildError.code === 3 ;
2588
- const needsTerminate = buildError.code === 1 ;
2589
- if (needsConfig || needsTerminate) {
2590
- this._notificationService.prompt(buildError.severity, buildError.message, [{
2591
- label: needsConfig ? ConfigureTaskAction.TEXT.value : ( localizeWithPath(
2592
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
2593
- 'TerminateAction.label',
2594
- "Terminate Task"
2595
- )),
2596
- run: () => {
2597
- if (needsConfig) {
2598
- this._runConfigureTasks();
2599
- }
2600
- else {
2601
- this._runTerminateCommand();
2602
- }
2603
- }
2604
- }]);
2605
- }
2606
- else {
2607
- this._notificationService.notify({ severity: buildError.severity, message: buildError.message });
2608
- }
2609
- }
2610
- else if (err instanceof Error) {
2611
- const error = err;
2612
- this._notificationService.error(error.message);
2613
- showOutput = false;
2614
- }
2615
- else if (isString(err)) {
2616
- this._notificationService.error(err);
2617
- }
2618
- else {
2619
- this._notificationService.error(( localizeWithPath(
2620
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
2621
- 'TaskSystem.unknownError',
2622
- 'An error has occurred while running a task. See task log for details.'
2623
- )));
2624
- }
2625
- if (showOutput) {
2626
- this._showOutput();
2627
- }
2628
- }
2629
- _showDetail() {
2630
- return this._configurationService.getValue(QUICKOPEN_DETAIL_CONFIG);
2631
- }
2632
- async _createTaskQuickPickEntries(tasks, group = false, sort = false, selectedEntry, includeRecents = true) {
2633
- let encounteredTasks = {};
2634
- if (tasks === undefined || tasks === null || tasks.length === 0) {
2635
- return [];
2636
- }
2637
- const TaskQuickPickEntry = (task) => {
2638
- const newEntry = { label: task._label, description: this.getTaskDescription(task), task, detail: this._showDetail() ? task.configurationProperties.detail : undefined };
2639
- if (encounteredTasks[task._id]) {
2640
- if (encounteredTasks[task._id].length === 1) {
2641
- encounteredTasks[task._id][0].label += ' (1)';
2642
- }
2643
- newEntry.label = newEntry.label + ' (' + ( (encounteredTasks[task._id].length + 1).toString()) + ')';
2644
- }
2645
- else {
2646
- encounteredTasks[task._id] = [];
2647
- }
2648
- encounteredTasks[task._id].push(newEntry);
2649
- return newEntry;
2650
- };
2651
- function fillEntries(entries, tasks, groupLabel) {
2652
- if (tasks.length) {
2653
- entries.push({ type: 'separator', label: groupLabel });
2654
- }
2655
- for (const task of tasks) {
2656
- const entry = TaskQuickPickEntry(task);
2657
- entry.buttons = [{ iconClass: ThemeIcon.asClassName(configureTaskIcon), tooltip: ( localizeWithPath(
2658
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
2659
- 'configureTask',
2660
- "Configure Task"
2661
- )) }];
2662
- if (selectedEntry && (task === selectedEntry.task)) {
2663
- entries.unshift(selectedEntry);
2664
- }
2665
- else {
2666
- entries.push(entry);
2667
- }
2668
- }
2669
- }
2670
- let entries;
2671
- if (group) {
2672
- entries = [];
2673
- if (tasks.length === 1) {
2674
- entries.push(TaskQuickPickEntry(tasks[0]));
2675
- }
2676
- else {
2677
- const recentlyUsedTasks = await this.getSavedTasks('historical');
2678
- const recent = [];
2679
- const recentSet = ( new Set());
2680
- let configured = [];
2681
- let detected = [];
2682
- const taskMap = Object.create(null);
2683
- tasks.forEach(task => {
2684
- const key = task.getCommonTaskId();
2685
- if (key) {
2686
- taskMap[key] = task;
2687
- }
2688
- });
2689
- recentlyUsedTasks.reverse().forEach(recentTask => {
2690
- const key = recentTask.getCommonTaskId();
2691
- if (key) {
2692
- recentSet.add(key);
2693
- const task = taskMap[key];
2694
- if (task) {
2695
- recent.push(task);
2696
- }
2697
- }
2698
- });
2699
- for (const task of tasks) {
2700
- const key = task.getCommonTaskId();
2701
- if (!key || !( recentSet.has(key))) {
2702
- if ((task._source.kind === TaskSourceKind.Workspace) || (task._source.kind === TaskSourceKind.User)) {
2703
- configured.push(task);
2704
- }
2705
- else {
2706
- detected.push(task);
2707
- }
2708
- }
2709
- }
2710
- const sorter = this.createSorter();
2711
- if (includeRecents) {
2712
- fillEntries(entries, recent, ( localizeWithPath(
2713
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
2714
- 'recentlyUsed',
2715
- 'recently used tasks'
2716
- )));
2717
- }
2718
- configured = configured.sort((a, b) => sorter.compare(a, b));
2719
- fillEntries(entries, configured, ( localizeWithPath(
2720
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
2721
- 'configured',
2722
- 'configured tasks'
2723
- )));
2724
- detected = detected.sort((a, b) => sorter.compare(a, b));
2725
- fillEntries(entries, detected, ( localizeWithPath(
2726
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
2727
- 'detected',
2728
- 'detected tasks'
2729
- )));
2730
- }
2731
- }
2732
- else {
2733
- if (sort) {
2734
- const sorter = this.createSorter();
2735
- tasks = tasks.sort((a, b) => sorter.compare(a, b));
2736
- }
2737
- entries = ( tasks.map(task => TaskQuickPickEntry(task)));
2738
- }
2739
- encounteredTasks = {};
2740
- return entries;
2741
- }
2742
- async _showTwoLevelQuickPick(placeHolder, defaultEntry, type, name) {
2743
- return this._instantiationService.createInstance(TaskQuickPick).show(placeHolder, defaultEntry, type, name);
2744
- }
2745
- async _showQuickPick(tasks, placeHolder, defaultEntry, group = false, sort = false, selectedEntry, additionalEntries, name) {
2746
- const resolvedTasks = await tasks;
2747
- const entries = await raceTimeout(this._createTaskQuickPickEntries(resolvedTasks, group, sort, selectedEntry), 200, () => undefined);
2748
- if (!entries) {
2749
- return undefined;
2750
- }
2751
- if (entries.length === 1 && this._configurationService.getValue(QUICKOPEN_SKIP_CONFIG)) {
2752
- return entries[0];
2753
- }
2754
- else if ((entries.length === 0) && defaultEntry) {
2755
- entries.push(defaultEntry);
2756
- }
2757
- else if (entries.length > 1 && additionalEntries && additionalEntries.length > 0) {
2758
- entries.push({ type: 'separator', label: '' });
2759
- entries.push(additionalEntries[0]);
2760
- }
2761
- const picker = this._quickInputService.createQuickPick();
2762
- picker.placeholder = placeHolder;
2763
- picker.matchOnDescription = true;
2764
- if (name) {
2765
- picker.value = name;
2766
- }
2767
- picker.onDidTriggerItemButton(context => {
2768
- const task = context.item.task;
2769
- this._quickInputService.cancel();
2770
- if (ContributedTask.is(task)) {
2771
- this.customize(task, undefined, true);
2772
- }
2773
- else if (CustomTask.is(task)) {
2774
- this.openConfig(task);
2775
- }
2776
- });
2777
- picker.items = entries;
2778
- picker.show();
2779
- return ( new Promise(resolve => {
2780
- this._register(picker.onDidAccept(async () => {
2781
- const selectedEntry = picker.selectedItems ? picker.selectedItems[0] : undefined;
2782
- picker.dispose();
2783
- if (!selectedEntry) {
2784
- resolve(undefined);
2785
- }
2786
- resolve(selectedEntry);
2787
- }));
2788
- }));
2789
- }
2790
- _needsRecentTasksMigration() {
2791
- return (this.getRecentlyUsedTasksV1().size > 0) && (this._getTasksFromStorage('historical').size === 0);
2792
- }
2793
- async _migrateRecentTasks(tasks) {
2794
- if (!this._needsRecentTasksMigration()) {
2795
- return;
2796
- }
2797
- const recentlyUsedTasks = this.getRecentlyUsedTasksV1();
2798
- const taskMap = Object.create(null);
2799
- tasks.forEach(task => {
2800
- const key = task.getKey();
2801
- if (key) {
2802
- taskMap[key] = task;
2803
- }
2804
- });
2805
- const reversed = [...( recentlyUsedTasks.keys())].reverse();
2806
- for (const key in reversed) {
2807
- const task = taskMap[key];
2808
- if (task) {
2809
- await this._setRecentlyUsedTask(task);
2810
- }
2811
- }
2812
- this._storageService.remove(AbstractTaskService_1.RecentlyUsedTasks_Key, 1 );
2813
- }
2814
- _showIgnoredFoldersMessage() {
2815
- if (this.ignoredWorkspaceFolders.length === 0 || !this.showIgnoreMessage) {
2816
- return Promise.resolve(undefined);
2817
- }
2818
- this._notificationService.prompt(Severity$1.Info, ( localizeWithPath(
2819
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
2820
- 'TaskService.ignoredFolder',
2821
- 'The following workspace folders are ignored since they use task version 0.1.0: {0}',
2822
- ( this.ignoredWorkspaceFolders.map(f => f.name)).join(', ')
2823
- )), [{
2824
- label: ( localizeWithPath(
2825
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
2826
- 'TaskService.notAgain',
2827
- "Don't Show Again"
2828
- )),
2829
- isSecondary: true,
2830
- run: () => {
2831
- this._storageService.store(AbstractTaskService_1.IgnoreTask010DonotShowAgain_key, true, 1 , 1 );
2832
- this._showIgnoreMessage = false;
2833
- }
2834
- }]);
2835
- return Promise.resolve(undefined);
2836
- }
2837
- async _trust() {
2838
- if (ServerlessWebContext && !TaskExecutionSupportedContext) {
2839
- return false;
2840
- }
2841
- await this._workspaceTrustManagementService.workspaceTrustInitialized;
2842
- if (!this._workspaceTrustManagementService.isWorkspaceTrusted()) {
2843
- return (await this._workspaceTrustRequestService.requestWorkspaceTrust({
2844
- message: ( localizeWithPath(
2845
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
2846
- 'TaskService.requestTrust',
2847
- "Listing and running tasks requires that some of the files in this workspace be executed as code."
2848
- ))
2849
- })) === true;
2850
- }
2851
- return true;
2852
- }
2853
- async _runTaskCommand(filter) {
2854
- if (!this._tasksReconnected) {
2855
- return;
2856
- }
2857
- if (!filter) {
2858
- return this._doRunTaskCommand();
2859
- }
2860
- const type = typeof filter === 'string' ? undefined : filter.type;
2861
- const taskName = typeof filter === 'string' ? filter : filter.task;
2862
- const grouped = await this._getGroupedTasks({ type });
2863
- const identifier = this._getTaskIdentifier(filter);
2864
- const tasks = grouped.all();
2865
- const resolver = this._createResolver(grouped);
2866
- const folderURIs = ( this._contextService.getWorkspace().folders.map(folder => folder.uri));
2867
- if (this._contextService.getWorkbenchState() === 3 ) {
2868
- folderURIs.push(this._contextService.getWorkspace().configuration);
2869
- }
2870
- folderURIs.push(USER_TASKS_GROUP_KEY);
2871
- if (identifier) {
2872
- for (const uri of folderURIs) {
2873
- const task = await resolver.resolve(uri, identifier);
2874
- if (task) {
2875
- this.run(task);
2876
- return;
2877
- }
2878
- }
2879
- }
2880
- const exactMatchTask = !taskName ? undefined : tasks.find(t => t.configurationProperties.identifier === taskName || t.getDefinition(true)?.configurationProperties?.identifier === taskName);
2881
- if (!exactMatchTask) {
2882
- return this._doRunTaskCommand(tasks, type, taskName);
2883
- }
2884
- for (const uri of folderURIs) {
2885
- const task = await resolver.resolve(uri, taskName);
2886
- if (task) {
2887
- await this.run(task, { attachProblemMatcher: true }, 1 );
2888
- return;
2889
- }
2890
- }
2891
- }
2892
- _tasksAndGroupedTasks(filter) {
2893
- if (!this._versionAndEngineCompatible(filter)) {
2894
- return { tasks: Promise.resolve([]), grouped: Promise.resolve(( new TaskMap())) };
2895
- }
2896
- const grouped = this._getGroupedTasks(filter);
2897
- const tasks = grouped.then((map) => {
2898
- if (!filter || !filter.type) {
2899
- return map.all();
2900
- }
2901
- const result = [];
2902
- map.forEach((tasks) => {
2903
- for (const task of tasks) {
2904
- if (ContributedTask.is(task) && task.defines.type === filter.type) {
2905
- result.push(task);
2906
- }
2907
- else if (CustomTask.is(task)) {
2908
- if (task.type === filter.type) {
2909
- result.push(task);
2910
- }
2911
- else {
2912
- const customizes = task.customizes();
2913
- if (customizes && customizes.type === filter.type) {
2914
- result.push(task);
2915
- }
2916
- }
2917
- }
2918
- }
2919
- });
2920
- return result;
2921
- });
2922
- return { tasks, grouped };
2923
- }
2924
- _doRunTaskCommand(tasks, type, name) {
2925
- const pickThen = (task) => {
2926
- if (task === undefined) {
2927
- return;
2928
- }
2929
- if (task === null) {
2930
- this._runConfigureTasks();
2931
- }
2932
- else {
2933
- this.run(task, { attachProblemMatcher: true }, 1 ).then(undefined, reason => {
2934
- });
2935
- }
2936
- };
2937
- const placeholder = ( localizeWithPath(
2938
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
2939
- 'TaskService.pickRunTask',
2940
- 'Select the task to run'
2941
- ));
2942
- this._showIgnoredFoldersMessage().then(() => {
2943
- if (this._configurationService.getValue(USE_SLOW_PICKER)) {
2944
- let taskResult = undefined;
2945
- if (!tasks) {
2946
- taskResult = this._tasksAndGroupedTasks();
2947
- }
2948
- this._showQuickPick(tasks ? tasks : taskResult.tasks, placeholder, {
2949
- label: '$(plus) ' + ( localizeWithPath(
2950
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
2951
- 'TaskService.noEntryToRun',
2952
- 'Configure a Task'
2953
- )),
2954
- task: null
2955
- }, true, undefined, undefined, undefined, name).
2956
- then((entry) => {
2957
- return pickThen(entry ? entry.task : undefined);
2958
- });
2959
- }
2960
- else {
2961
- this._showTwoLevelQuickPick(placeholder, {
2962
- label: '$(plus) ' + ( localizeWithPath(
2963
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
2964
- 'TaskService.noEntryToRun',
2965
- 'Configure a Task'
2966
- )),
2967
- task: null
2968
- }, type, name).
2969
- then(pickThen);
2970
- }
2971
- });
2972
- }
2973
- _reRunTaskCommand() {
2974
- ProblemMatcherRegistry.onReady().then(() => {
2975
- return this._editorService.saveAll({ reason: 2 }).then(() => {
2976
- const executeResult = this._getTaskSystem().rerun();
2977
- if (executeResult) {
2978
- return this._handleExecuteResult(executeResult);
2979
- }
2980
- else {
2981
- if (!this._taskRunningState.get()) {
2982
- this._doRunTaskCommand();
2983
- }
2984
- return Promise.resolve(undefined);
2985
- }
2986
- });
2987
- });
2988
- }
2989
- _getDefaultTasks(tasks, taskGlobsInList = false) {
2990
- const defaults = [];
2991
- for (const task of tasks) {
2992
- if (taskGlobsInList && typeof task.configurationProperties.group.isDefault === 'string') {
2993
- defaults.push(task);
2994
- }
2995
- else if (!taskGlobsInList && task.configurationProperties.group.isDefault === true) {
2996
- defaults.push(task);
2997
- }
2998
- }
2999
- return defaults;
3000
- }
3001
- _runTaskGroupCommand(taskGroup, strings, configure, legacyCommand) {
3002
- if (this.schemaVersion === 1 ) {
3003
- legacyCommand();
3004
- return;
3005
- }
3006
- const options = {
3007
- location: 10 ,
3008
- title: strings.fetching
3009
- };
3010
- const promise = (async () => {
3011
- let groupTasks = [];
3012
- async function runSingleTask(task, problemMatcherOptions, that) {
3013
- that.run(task, problemMatcherOptions, 1 ).then(undefined, reason => {
3014
- });
3015
- }
3016
- const chooseAndRunTask = (tasks) => {
3017
- this._showIgnoredFoldersMessage().then(() => {
3018
- this._showQuickPick(tasks, strings.select, {
3019
- label: strings.notFoundConfigure,
3020
- task: null
3021
- }, true).then((entry) => {
3022
- const task = entry ? entry.task : undefined;
3023
- if (task === undefined) {
3024
- return;
3025
- }
3026
- if (task === null) {
3027
- configure.apply(this);
3028
- return;
3029
- }
3030
- runSingleTask(task, { attachProblemMatcher: true }, this);
3031
- });
3032
- });
3033
- };
3034
- let globTasksDetected = false;
3035
- const absoluteURI = EditorResourceAccessor.getOriginalUri(this._editorService.activeEditor);
3036
- if (absoluteURI) {
3037
- const workspaceFolder = this._contextService.getWorkspaceFolder(absoluteURI);
3038
- if (workspaceFolder) {
3039
- const configuredTasks = this._getConfiguration(workspaceFolder)?.config?.tasks;
3040
- if (configuredTasks) {
3041
- globTasksDetected = configuredTasks.filter(task => task.group && typeof task.group !== 'string' && typeof task.group.isDefault === 'string').length > 0;
3042
- if (globTasksDetected) {
3043
- const relativePath$1 = workspaceFolder?.uri ? (relativePath(workspaceFolder.uri, absoluteURI) ?? absoluteURI.path) : absoluteURI.path;
3044
- groupTasks = await this._findWorkspaceTasks((task) => {
3045
- const currentTaskGroup = task.configurationProperties.group;
3046
- if (currentTaskGroup && typeof currentTaskGroup !== 'string' && typeof currentTaskGroup.isDefault === 'string') {
3047
- return (currentTaskGroup._id === taskGroup._id && match(currentTaskGroup.isDefault, relativePath$1));
3048
- }
3049
- return false;
3050
- });
3051
- }
3052
- }
3053
- }
3054
- }
3055
- if (!globTasksDetected && groupTasks.length === 0) {
3056
- groupTasks = await this._findWorkspaceTasksInGroup(taskGroup, true);
3057
- }
3058
- const handleMultipleTasks = (areGlobTasks) => {
3059
- return this._getTasksForGroup(taskGroup).then((tasks) => {
3060
- if (tasks.length > 0) {
3061
- const defaults = this._getDefaultTasks(tasks, areGlobTasks);
3062
- if (defaults.length === 1) {
3063
- runSingleTask(defaults[0], undefined, this);
3064
- return;
3065
- }
3066
- else if (defaults.length > 0) {
3067
- tasks = defaults;
3068
- }
3069
- }
3070
- chooseAndRunTask(tasks);
3071
- });
3072
- };
3073
- const resolveTaskAndRun = (taskGroupTask) => {
3074
- if (ConfiguringTask.is(taskGroupTask)) {
3075
- this.tryResolveTask(taskGroupTask).then(resolvedTask => {
3076
- runSingleTask(resolvedTask, undefined, this);
3077
- });
3078
- }
3079
- else {
3080
- runSingleTask(taskGroupTask, undefined, this);
3081
- }
3082
- };
3083
- if (groupTasks.length === 1) {
3084
- return resolveTaskAndRun(groupTasks[0]);
3085
- }
3086
- if (globTasksDetected && groupTasks.length > 1) {
3087
- return handleMultipleTasks(true);
3088
- }
3089
- if (!groupTasks.length) {
3090
- groupTasks = await this._findWorkspaceTasksInGroup(taskGroup, false);
3091
- }
3092
- if (groupTasks.length === 1) {
3093
- return resolveTaskAndRun(groupTasks[0]);
3094
- }
3095
- return handleMultipleTasks(false);
3096
- })();
3097
- this._progressService.withProgress(options, () => promise);
3098
- }
3099
- _runBuildCommand() {
3100
- if (!this._tasksReconnected) {
3101
- return;
3102
- }
3103
- return this._runTaskGroupCommand(TaskGroup.Build, {
3104
- fetching: ( localizeWithPath(
3105
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
3106
- 'TaskService.fetchingBuildTasks',
3107
- 'Fetching build tasks...'
3108
- )),
3109
- select: ( localizeWithPath(
3110
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
3111
- 'TaskService.pickBuildTask',
3112
- 'Select the build task to run'
3113
- )),
3114
- notFoundConfigure: ( localizeWithPath(
3115
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
3116
- 'TaskService.noBuildTask',
3117
- 'No build task to run found. Configure Build Task...'
3118
- ))
3119
- }, this._runConfigureDefaultBuildTask, this._build);
3120
- }
3121
- _runTestCommand() {
3122
- return this._runTaskGroupCommand(TaskGroup.Test, {
3123
- fetching: ( localizeWithPath(
3124
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
3125
- 'TaskService.fetchingTestTasks',
3126
- 'Fetching test tasks...'
3127
- )),
3128
- select: ( localizeWithPath(
3129
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
3130
- 'TaskService.pickTestTask',
3131
- 'Select the test task to run'
3132
- )),
3133
- notFoundConfigure: ( localizeWithPath(
3134
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
3135
- 'TaskService.noTestTaskTerminal',
3136
- 'No test task to run found. Configure Tasks...'
3137
- ))
3138
- }, this._runConfigureDefaultTestTask, this._runTest);
3139
- }
3140
- _runTerminateCommand(arg) {
3141
- if (arg === 'terminateAll') {
3142
- this._terminateAll();
3143
- return;
3144
- }
3145
- const runQuickPick = (promise) => {
3146
- this._showQuickPick(promise || this.getActiveTasks(), ( localizeWithPath(
3147
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
3148
- 'TaskService.taskToTerminate',
3149
- 'Select a task to terminate'
3150
- )), {
3151
- label: ( localizeWithPath(
3152
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
3153
- 'TaskService.noTaskRunning',
3154
- 'No task is currently running'
3155
- )),
3156
- task: undefined
3157
- }, false, true, undefined, [{
3158
- label: ( localizeWithPath(
3159
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
3160
- 'TaskService.terminateAllRunningTasks',
3161
- 'All Running Tasks'
3162
- )),
3163
- id: 'terminateAll',
3164
- task: undefined
3165
- }]).then(entry => {
3166
- if (entry && entry.id === 'terminateAll') {
3167
- this._terminateAll();
3168
- }
3169
- const task = entry ? entry.task : undefined;
3170
- if (task === undefined || task === null) {
3171
- return;
3172
- }
3173
- this.terminate(task);
3174
- });
3175
- };
3176
- if (this.inTerminal()) {
3177
- const identifier = this._getTaskIdentifier(arg);
3178
- let promise;
3179
- if (identifier !== undefined) {
3180
- promise = this.getActiveTasks();
3181
- promise.then((tasks) => {
3182
- for (const task of tasks) {
3183
- if (task.matches(identifier)) {
3184
- this.terminate(task);
3185
- return;
3186
- }
3187
- }
3188
- runQuickPick(promise);
3189
- });
3190
- }
3191
- else {
3192
- runQuickPick();
3193
- }
3194
- }
3195
- else {
3196
- this._isActive().then((active) => {
3197
- if (active) {
3198
- this._terminateAll().then((responses) => {
3199
- const response = responses[0];
3200
- if (response.success) {
3201
- return;
3202
- }
3203
- if (response.code && response.code === 3 ) {
3204
- this._notificationService.error(( localizeWithPath(
3205
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
3206
- 'TerminateAction.noProcess',
3207
- 'The launched process doesn\'t exist anymore. If the task spawned background tasks exiting VS Code might result in orphaned processes.'
3208
- )));
3209
- }
3210
- else {
3211
- this._notificationService.error(( localizeWithPath(
3212
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
3213
- 'TerminateAction.failed',
3214
- 'Failed to terminate running task'
3215
- )));
3216
- }
3217
- });
3218
- }
3219
- });
3220
- }
3221
- }
3222
- async _runRestartTaskCommand(arg) {
3223
- const activeTasks = await this.getActiveTasks();
3224
- if (activeTasks.length === 1) {
3225
- this._restart(activeTasks[0]);
3226
- return;
3227
- }
3228
- if (this.inTerminal()) {
3229
- const identifier = this._getTaskIdentifier(arg);
3230
- if (identifier !== undefined) {
3231
- for (const task of activeTasks) {
3232
- if (task.matches(identifier)) {
3233
- this._restart(task);
3234
- return;
3235
- }
3236
- }
3237
- }
3238
- const entry = await this._showQuickPick(activeTasks, ( localizeWithPath(
3239
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
3240
- 'TaskService.taskToRestart',
3241
- 'Select the task to restart'
3242
- )), {
3243
- label: ( localizeWithPath(
3244
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
3245
- 'TaskService.noTaskToRestart',
3246
- 'No task to restart'
3247
- )),
3248
- task: null
3249
- }, false, true);
3250
- if (entry && entry.task) {
3251
- this._restart(entry.task);
3252
- }
3253
- }
3254
- else {
3255
- if (activeTasks.length > 0) {
3256
- this._restart(activeTasks[0]);
3257
- }
3258
- }
3259
- }
3260
- _getTaskIdentifier(filter) {
3261
- let result = undefined;
3262
- if (isString(filter)) {
3263
- result = filter;
3264
- }
3265
- else if (filter && isString(filter.type)) {
3266
- result = TaskDefinition.createTaskIdentifier(filter, console);
3267
- }
3268
- return result;
3269
- }
3270
- _configHasTasks(taskConfig) {
3271
- return !!taskConfig && !!taskConfig.tasks && taskConfig.tasks.length > 0;
3272
- }
3273
- _openTaskFile(resource, taskSource) {
3274
- let configFileCreated = false;
3275
- this._fileService.stat(resource).then((stat) => stat, () => undefined).then(async (stat) => {
3276
- const fileExists = !!stat;
3277
- const configValue = this._configurationService.inspect('tasks');
3278
- let tasksExistInFile;
3279
- let target;
3280
- switch (taskSource) {
3281
- case TaskSourceKind.User:
3282
- tasksExistInFile = this._configHasTasks(configValue.userValue);
3283
- target = 2 ;
3284
- break;
3285
- case TaskSourceKind.WorkspaceFile:
3286
- tasksExistInFile = this._configHasTasks(configValue.workspaceValue);
3287
- target = 5 ;
3288
- break;
3289
- default:
3290
- tasksExistInFile = this._configHasTasks(configValue.workspaceFolderValue);
3291
- target = 6 ;
3292
- }
3293
- let content;
3294
- if (!tasksExistInFile) {
3295
- const pickTemplateResult = await this._quickInputService.pick(getTemplates(), { placeHolder: ( localizeWithPath(
3296
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
3297
- 'TaskService.template',
3298
- 'Select a Task Template'
3299
- )) });
3300
- if (!pickTemplateResult) {
3301
- return Promise.resolve(undefined);
3302
- }
3303
- content = pickTemplateResult.content;
3304
- const editorConfig = this._configurationService.getValue();
3305
- if (editorConfig.editor.insertSpaces) {
3306
- content = content.replace(/(\n)(\t+)/g, (_, s1, s2) => s1 + ' '.repeat(s2.length * editorConfig.editor.tabSize));
3307
- }
3308
- configFileCreated = true;
3309
- }
3310
- if (!fileExists && content) {
3311
- return this._textFileService.create([{ resource, value: content }]).then(result => {
3312
- return result[0].resource;
3313
- });
3314
- }
3315
- else if (fileExists && (tasksExistInFile || content)) {
3316
- if (content) {
3317
- this._configurationService.updateValue('tasks', parse$1(content), target);
3318
- }
3319
- return stat?.resource;
3320
- }
3321
- return undefined;
3322
- }).then((resource) => {
3323
- if (!resource) {
3324
- return;
3325
- }
3326
- this._editorService.openEditor({
3327
- resource,
3328
- options: {
3329
- pinned: configFileCreated
3330
- }
3331
- });
3332
- });
3333
- }
3334
- _isTaskEntry(value) {
3335
- const candidate = value;
3336
- return candidate && !!candidate.task;
3337
- }
3338
- _isSettingEntry(value) {
3339
- const candidate = value;
3340
- return candidate && !!candidate.settingType;
3341
- }
3342
- _configureTask(task) {
3343
- if (ContributedTask.is(task)) {
3344
- this.customize(task, undefined, true);
3345
- }
3346
- else if (CustomTask.is(task)) {
3347
- this.openConfig(task);
3348
- }
3349
- else if (ConfiguringTask.is(task)) ;
3350
- }
3351
- _handleSelection(selection) {
3352
- if (!selection) {
3353
- return;
3354
- }
3355
- if (this._isTaskEntry(selection)) {
3356
- this._configureTask(selection.task);
3357
- }
3358
- else if (this._isSettingEntry(selection)) {
3359
- const taskQuickPick = this._instantiationService.createInstance(TaskQuickPick);
3360
- taskQuickPick.handleSettingOption(selection.settingType);
3361
- }
3362
- else if (selection.folder && ((this._contextService.getWorkbenchState() !== 1) )) {
3363
- this._openTaskFile(selection.folder.toResource('.vscode/tasks.json'), TaskSourceKind.Workspace);
3364
- }
3365
- else {
3366
- const resource = this._getResourceForKind(TaskSourceKind.User);
3367
- if (resource) {
3368
- this._openTaskFile(resource, TaskSourceKind.User);
3369
- }
3370
- }
3371
- }
3372
- getTaskDescription(task) {
3373
- let description;
3374
- if (task._source.kind === TaskSourceKind.User) {
3375
- description = ( localizeWithPath(
3376
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
3377
- 'taskQuickPick.userSettings',
3378
- 'User'
3379
- ));
3380
- }
3381
- else if (task._source.kind === TaskSourceKind.WorkspaceFile) {
3382
- description = task.getWorkspaceFileName();
3383
- }
3384
- else if (this.needsFolderQualification()) {
3385
- const workspaceFolder = task.getWorkspaceFolder();
3386
- if (workspaceFolder) {
3387
- description = workspaceFolder.name;
3388
- }
3389
- }
3390
- return description;
3391
- }
3392
- async _runConfigureTasks() {
3393
- if (!(await this._trust())) {
3394
- return;
3395
- }
3396
- let taskPromise;
3397
- if (this.schemaVersion === 2 ) {
3398
- taskPromise = this._getGroupedTasks();
3399
- }
3400
- else {
3401
- taskPromise = Promise.resolve(( new TaskMap()));
3402
- }
3403
- const stats = ( this._contextService.getWorkspace().folders.map((folder) => {
3404
- return this._fileService.stat(folder.toResource('.vscode/tasks.json')).then(stat => stat, () => undefined);
3405
- }));
3406
- const createLabel = ( localizeWithPath(
3407
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
3408
- 'TaskService.createJsonFile',
3409
- 'Create tasks.json file from template'
3410
- ));
3411
- const openLabel = ( localizeWithPath(
3412
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
3413
- 'TaskService.openJsonFile',
3414
- 'Open tasks.json file'
3415
- ));
3416
- const tokenSource = ( new CancellationTokenSource());
3417
- const cancellationToken = tokenSource.token;
3418
- const entries = Promise.all(stats).then((stats) => {
3419
- return taskPromise.then((taskMap) => {
3420
- const entries = [];
3421
- let configuredCount = 0;
3422
- let tasks = taskMap.all();
3423
- if (tasks.length > 0) {
3424
- tasks = tasks.sort((a, b) => a._label.localeCompare(b._label));
3425
- for (const task of tasks) {
3426
- const entry = { label: TaskQuickPick.getTaskLabelWithIcon(task), task, description: this.getTaskDescription(task), detail: this._showDetail() ? task.configurationProperties.detail : undefined };
3427
- TaskQuickPick.applyColorStyles(task, entry, this._themeService);
3428
- entries.push(entry);
3429
- if (!ContributedTask.is(task)) {
3430
- configuredCount++;
3431
- }
3432
- }
3433
- }
3434
- const needsCreateOrOpen = (configuredCount === 0);
3435
- if (needsCreateOrOpen || (taskMap.get(USER_TASKS_GROUP_KEY).length === configuredCount)) {
3436
- const label = stats[0] !== undefined ? openLabel : createLabel;
3437
- if (entries.length) {
3438
- entries.push({ type: 'separator' });
3439
- }
3440
- entries.push({ label, folder: this._contextService.getWorkspace().folders[0] });
3441
- }
3442
- if ((entries.length === 1) && !needsCreateOrOpen) {
3443
- tokenSource.cancel();
3444
- }
3445
- return entries;
3446
- });
3447
- });
3448
- const timeout = await Promise.race([( new Promise((resolve) => {
3449
- entries.then(() => resolve(false));
3450
- })), ( new Promise((resolve) => {
3451
- const timer = setTimeout(() => {
3452
- clearTimeout(timer);
3453
- resolve(true);
3454
- }, 200);
3455
- }))]);
3456
- if (!timeout && ((await entries).length === 1) && this._configurationService.getValue(QUICKOPEN_SKIP_CONFIG)) {
3457
- const entry = ((await entries)[0]);
3458
- if (entry.task) {
3459
- this._handleSelection(entry);
3460
- return;
3461
- }
3462
- }
3463
- const entriesWithSettings = entries.then(resolvedEntries => {
3464
- resolvedEntries.push(...TaskQuickPick.allSettingEntries(this._configurationService));
3465
- return resolvedEntries;
3466
- });
3467
- this._quickInputService.pick(entriesWithSettings, { placeHolder: ( localizeWithPath(
3468
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
3469
- 'TaskService.pickTask',
3470
- 'Select a task to configure'
3471
- )) }, cancellationToken).
3472
- then(async (selection) => {
3473
- if (cancellationToken.isCancellationRequested) {
3474
- const task = (await entries)[0];
3475
- if (task.task) {
3476
- selection = task;
3477
- }
3478
- }
3479
- this._handleSelection(selection);
3480
- });
3481
- }
3482
- _runConfigureDefaultBuildTask() {
3483
- if (this.schemaVersion === 2 ) {
3484
- this.tasks().then((tasks => {
3485
- if (tasks.length === 0) {
3486
- this._runConfigureTasks();
3487
- return;
3488
- }
3489
- const entries = [];
3490
- let selectedTask;
3491
- let selectedEntry;
3492
- this._showIgnoredFoldersMessage().then(() => {
3493
- for (const task of tasks) {
3494
- const taskGroup = TaskGroup.from(task.configurationProperties.group);
3495
- if (taskGroup && taskGroup.isDefault && taskGroup._id === TaskGroup.Build._id) {
3496
- const label = ( localizeWithPath(
3497
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
3498
- 'TaskService.defaultBuildTaskExists',
3499
- '{0} is already marked as the default build task',
3500
- TaskQuickPick.getTaskLabelWithIcon(task, task.getQualifiedLabel())
3501
- ));
3502
- selectedTask = task;
3503
- selectedEntry = { label, task, description: this.getTaskDescription(task), detail: this._showDetail() ? task.configurationProperties.detail : undefined };
3504
- TaskQuickPick.applyColorStyles(task, selectedEntry, this._themeService);
3505
- }
3506
- else {
3507
- const entry = { label: TaskQuickPick.getTaskLabelWithIcon(task), task, description: this.getTaskDescription(task), detail: this._showDetail() ? task.configurationProperties.detail : undefined };
3508
- TaskQuickPick.applyColorStyles(task, entry, this._themeService);
3509
- entries.push(entry);
3510
- }
3511
- }
3512
- if (selectedEntry) {
3513
- entries.unshift(selectedEntry);
3514
- }
3515
- const tokenSource = ( new CancellationTokenSource());
3516
- const cancellationToken = tokenSource.token;
3517
- this._quickInputService.pick(entries, { placeHolder: ( localizeWithPath(
3518
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
3519
- 'TaskService.pickTask',
3520
- 'Select a task to configure'
3521
- )) }, cancellationToken).
3522
- then(async (entry) => {
3523
- if (cancellationToken.isCancellationRequested) {
3524
- const task = (await entries)[0];
3525
- if (task.task) {
3526
- entry = task;
3527
- }
3528
- }
3529
- const task = entry && 'task' in entry ? entry.task : undefined;
3530
- if ((task === undefined) || (task === null)) {
3531
- return;
3532
- }
3533
- if (task === selectedTask && CustomTask.is(task)) {
3534
- this.openConfig(task);
3535
- }
3536
- if (!InMemoryTask.is(task)) {
3537
- this.customize(task, { group: { kind: 'build', isDefault: true } }, true).then(() => {
3538
- if (selectedTask && (task !== selectedTask) && !InMemoryTask.is(selectedTask)) {
3539
- this.customize(selectedTask, { group: 'build' }, false);
3540
- }
3541
- });
3542
- }
3543
- });
3544
- this._quickInputService.pick(entries, {
3545
- placeHolder: ( localizeWithPath(
3546
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
3547
- 'TaskService.pickDefaultBuildTask',
3548
- 'Select the task to be used as the default build task'
3549
- ))
3550
- }).
3551
- then((entry) => {
3552
- const task = entry && 'task' in entry ? entry.task : undefined;
3553
- if ((task === undefined) || (task === null)) {
3554
- return;
3555
- }
3556
- if (task === selectedTask && CustomTask.is(task)) {
3557
- this.openConfig(task);
3558
- }
3559
- if (!InMemoryTask.is(task)) {
3560
- this.customize(task, { group: { kind: 'build', isDefault: true } }, true).then(() => {
3561
- if (selectedTask && (task !== selectedTask) && !InMemoryTask.is(selectedTask)) {
3562
- this.customize(selectedTask, { group: 'build' }, false);
3563
- }
3564
- });
3565
- }
3566
- });
3567
- });
3568
- }));
3569
- }
3570
- else {
3571
- this._runConfigureTasks();
3572
- }
3573
- }
3574
- _runConfigureDefaultTestTask() {
3575
- if (this.schemaVersion === 2 ) {
3576
- this.tasks().then((tasks => {
3577
- if (tasks.length === 0) {
3578
- this._runConfigureTasks();
3579
- return;
3580
- }
3581
- let selectedTask;
3582
- let selectedEntry;
3583
- for (const task of tasks) {
3584
- const taskGroup = TaskGroup.from(task.configurationProperties.group);
3585
- if (taskGroup && taskGroup.isDefault && taskGroup._id === TaskGroup.Test._id) {
3586
- selectedTask = task;
3587
- break;
3588
- }
3589
- }
3590
- if (selectedTask) {
3591
- selectedEntry = {
3592
- label: ( localizeWithPath(
3593
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
3594
- 'TaskService.defaultTestTaskExists',
3595
- '{0} is already marked as the default test task.',
3596
- selectedTask.getQualifiedLabel()
3597
- )),
3598
- task: selectedTask,
3599
- detail: this._showDetail() ? selectedTask.configurationProperties.detail : undefined
3600
- };
3601
- }
3602
- this._showIgnoredFoldersMessage().then(() => {
3603
- this._showQuickPick(tasks, ( localizeWithPath(
3604
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
3605
- 'TaskService.pickDefaultTestTask',
3606
- 'Select the task to be used as the default test task'
3607
- )), undefined, true, false, selectedEntry).then((entry) => {
3608
- const task = entry ? entry.task : undefined;
3609
- if (!task) {
3610
- return;
3611
- }
3612
- if (task === selectedTask && CustomTask.is(task)) {
3613
- this.openConfig(task);
3614
- }
3615
- if (!InMemoryTask.is(task)) {
3616
- this.customize(task, { group: { kind: 'test', isDefault: true } }, true).then(() => {
3617
- if (selectedTask && (task !== selectedTask) && !InMemoryTask.is(selectedTask)) {
3618
- this.customize(selectedTask, { group: 'test' }, false);
3619
- }
3620
- });
3621
- }
3622
- });
3623
- });
3624
- }));
3625
- }
3626
- else {
3627
- this._runConfigureTasks();
3628
- }
3629
- }
3630
- async runShowTasks() {
3631
- const activeTasksPromise = this.getActiveTasks();
3632
- const activeTasks = await activeTasksPromise;
3633
- let group;
3634
- if (activeTasks.length === 1) {
3635
- this._taskSystem.revealTask(activeTasks[0]);
3636
- }
3637
- else if (activeTasks.length && activeTasks.every((task) => {
3638
- if (InMemoryTask.is(task)) {
3639
- return false;
3640
- }
3641
- if (!group) {
3642
- group = task.command.presentation?.group;
3643
- }
3644
- return task.command.presentation?.group && (task.command.presentation.group === group);
3645
- })) {
3646
- this._taskSystem.revealTask(activeTasks[0]);
3647
- }
3648
- else {
3649
- this._showQuickPick(activeTasksPromise, ( localizeWithPath(
3650
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
3651
- 'TaskService.pickShowTask',
3652
- 'Select the task to show its output'
3653
- )), {
3654
- label: ( localizeWithPath(
3655
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
3656
- 'TaskService.noTaskIsRunning',
3657
- 'No task is running'
3658
- )),
3659
- task: null
3660
- }, false, true).then((entry) => {
3661
- const task = entry ? entry.task : undefined;
3662
- if (task === undefined || task === null) {
3663
- return;
3664
- }
3665
- this._taskSystem.revealTask(task);
3666
- });
3667
- }
3668
- }
3669
- async _createTasksDotOld(folder) {
3670
- const tasksFile = folder.toResource('.vscode/tasks.json');
3671
- if (await this._fileService.exists(tasksFile)) {
3672
- const oldFile = tasksFile.with({ path: `${tasksFile.path}.old` });
3673
- await this._fileService.copy(tasksFile, oldFile, true);
3674
- return [oldFile, tasksFile];
3675
- }
3676
- return undefined;
3677
- }
3678
- _upgradeTask(task, suppressTaskName, globalConfig) {
3679
- if (!CustomTask.is(task)) {
3680
- return;
3681
- }
3682
- const configElement = {
3683
- label: task._label
3684
- };
3685
- const oldTaskTypes = ( new Set(['gulp', 'jake', 'grunt']));
3686
- if (isString(task.command.name) && ( oldTaskTypes.has(task.command.name))) {
3687
- configElement.type = task.command.name;
3688
- configElement.task = task.command.args[0];
3689
- }
3690
- else {
3691
- if (task.command.runtime === RuntimeType.Shell) {
3692
- configElement.type = ( RuntimeType.toString(RuntimeType.Shell));
3693
- }
3694
- if (task.command.name && !suppressTaskName && !globalConfig.windows?.command && !globalConfig.osx?.command && !globalConfig.linux?.command) {
3695
- configElement.command = task.command.name;
3696
- }
3697
- else if (suppressTaskName) {
3698
- configElement.command = task._source.config.element.command;
3699
- }
3700
- if (task.command.args && (!Array.isArray(task.command.args) || (task.command.args.length > 0))) {
3701
- if (!globalConfig.windows?.args && !globalConfig.osx?.args && !globalConfig.linux?.args) {
3702
- configElement.args = task.command.args;
3703
- }
3704
- else {
3705
- configElement.args = task._source.config.element.args;
3706
- }
3707
- }
3708
- }
3709
- if (task.configurationProperties.presentation) {
3710
- configElement.presentation = task.configurationProperties.presentation;
3711
- }
3712
- if (task.configurationProperties.isBackground) {
3713
- configElement.isBackground = task.configurationProperties.isBackground;
3714
- }
3715
- if (task.configurationProperties.problemMatchers) {
3716
- configElement.problemMatcher = task._source.config.element.problemMatcher;
3717
- }
3718
- if (task.configurationProperties.group) {
3719
- configElement.group = task.configurationProperties.group;
3720
- }
3721
- task._source.config.element = configElement;
3722
- const tempTask = ( new CustomTask(
3723
- task._id,
3724
- task._source,
3725
- task._label,
3726
- task.type,
3727
- task.command,
3728
- task.hasDefinedMatchers,
3729
- task.runOptions,
3730
- task.configurationProperties
3731
- ));
3732
- const configTask = this._createCustomizableTask(tempTask);
3733
- if (configTask) {
3734
- return configTask;
3735
- }
3736
- return;
3737
- }
3738
- async _upgrade() {
3739
- if (this.schemaVersion === 2 ) {
3740
- return;
3741
- }
3742
- if (!this._workspaceTrustManagementService.isWorkspaceTrusted()) {
3743
- this._register(Event.once(this._workspaceTrustManagementService.onDidChangeTrust)(isTrusted => {
3744
- if (isTrusted) {
3745
- this._upgrade();
3746
- }
3747
- }));
3748
- return;
3749
- }
3750
- const tasks = await this._getGroupedTasks();
3751
- const fileDiffs = [];
3752
- for (const folder of this.workspaceFolders) {
3753
- const diff = await this._createTasksDotOld(folder);
3754
- if (diff) {
3755
- fileDiffs.push(diff);
3756
- }
3757
- if (!diff) {
3758
- continue;
3759
- }
3760
- const configTasks = [];
3761
- const suppressTaskName = !!this._configurationService.getValue("tasks.suppressTaskName" , { resource: folder.uri });
3762
- const globalConfig = {
3763
- windows: this._configurationService.getValue("tasks.windows" , { resource: folder.uri }),
3764
- osx: this._configurationService.getValue("tasks.osx" , { resource: folder.uri }),
3765
- linux: this._configurationService.getValue("tasks.linux" , { resource: folder.uri })
3766
- };
3767
- tasks.get(folder).forEach(task => {
3768
- const configTask = this._upgradeTask(task, suppressTaskName, globalConfig);
3769
- if (configTask) {
3770
- configTasks.push(configTask);
3771
- }
3772
- });
3773
- this._taskSystem = undefined;
3774
- this._workspaceTasksPromise = undefined;
3775
- await this._writeConfiguration(folder, 'tasks.tasks', configTasks);
3776
- await this._writeConfiguration(folder, 'tasks.version', '2.0.0');
3777
- if (this._configurationService.getValue("tasks.showOutput" , { resource: folder.uri })) {
3778
- await this._configurationService.updateValue("tasks.showOutput" , undefined, { resource: folder.uri });
3779
- }
3780
- if (this._configurationService.getValue("tasks.isShellCommand" , { resource: folder.uri })) {
3781
- await this._configurationService.updateValue("tasks.isShellCommand" , undefined, { resource: folder.uri });
3782
- }
3783
- if (this._configurationService.getValue("tasks.suppressTaskName" , { resource: folder.uri })) {
3784
- await this._configurationService.updateValue("tasks.suppressTaskName" , undefined, { resource: folder.uri });
3785
- }
3786
- }
3787
- this._updateSetup();
3788
- this._notificationService.prompt(Severity$1.Warning, fileDiffs.length === 1 ?
3789
- ( localizeWithPath(
3790
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
3791
- 'taskService.upgradeVersion',
3792
- "The deprecated tasks version 0.1.0 has been removed. Your tasks have been upgraded to version 2.0.0. Open the diff to review the upgrade."
3793
- ))
3794
- : ( localizeWithPath(
3795
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
3796
- 'taskService.upgradeVersionPlural',
3797
- "The deprecated tasks version 0.1.0 has been removed. Your tasks have been upgraded to version 2.0.0. Open the diffs to review the upgrade."
3798
- )), [{
3799
- label: fileDiffs.length === 1 ? ( localizeWithPath(
3800
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
3801
- 'taskService.openDiff',
3802
- "Open diff"
3803
- )) : ( localizeWithPath(
3804
- 'vs/workbench/contrib/tasks/browser/abstractTaskService',
3805
- 'taskService.openDiffs',
3806
- "Open diffs"
3807
- )),
3808
- run: async () => {
3809
- for (const upgrade of fileDiffs) {
3810
- await this._editorService.openEditor({
3811
- original: { resource: upgrade[0] },
3812
- modified: { resource: upgrade[1] }
3813
- });
3814
- }
3815
- }
3816
- }]);
3817
- }
3818
- };
3819
- AbstractTaskService = AbstractTaskService_1 = ( __decorate([
3820
- ( __param(0, IConfigurationService)),
3821
- ( __param(1, IMarkerService)),
3822
- ( __param(2, IOutputService)),
3823
- ( __param(3, IPaneCompositePartService)),
3824
- ( __param(4, IViewsService)),
3825
- ( __param(5, ICommandService)),
3826
- ( __param(6, IEditorService)),
3827
- ( __param(7, IFileService)),
3828
- ( __param(8, IWorkspaceContextService)),
3829
- ( __param(9, ITelemetryService)),
3830
- ( __param(10, ITextFileService)),
3831
- ( __param(11, IModelService)),
3832
- ( __param(12, IExtensionService)),
3833
- ( __param(13, IQuickInputService)),
3834
- ( __param(14, IConfigurationResolverService)),
3835
- ( __param(15, ITerminalService)),
3836
- ( __param(16, ITerminalGroupService)),
3837
- ( __param(17, IStorageService)),
3838
- ( __param(18, IProgressService)),
3839
- ( __param(19, IOpenerService)),
3840
- ( __param(20, IDialogService)),
3841
- ( __param(21, INotificationService)),
3842
- ( __param(22, IContextKeyService)),
3843
- ( __param(23, IWorkbenchEnvironmentService)),
3844
- ( __param(24, ITerminalProfileResolverService)),
3845
- ( __param(25, IPathService)),
3846
- ( __param(26, ITextModelService)),
3847
- ( __param(27, IPreferencesService)),
3848
- ( __param(28, IViewDescriptorService)),
3849
- ( __param(29, IWorkspaceTrustRequestService)),
3850
- ( __param(30, IWorkspaceTrustManagementService)),
3851
- ( __param(31, ILogService)),
3852
- ( __param(32, IThemeService)),
3853
- ( __param(33, ILifecycleService)),
3854
- ( __param(34, IRemoteAgentService)),
3855
- ( __param(35, IInstantiationService))
3856
- ], AbstractTaskService));
3857
- export { AbstractTaskService, ConfigureTaskAction };