@codingame/monaco-vscode-api 4.1.0 → 4.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/missing-services.js +11 -2
- package/package.json +8 -8
- package/vscode/src/vs/base/common/objects.js +1 -1
- package/vscode/src/vs/editor/browser/coreCommands.js +1 -1
- package/vscode/src/vs/platform/telemetry/common/telemetry.js +1 -2
- package/vscode/src/vs/platform/telemetry/common/telemetryUtils.js +3 -7
- package/vscode/src/vs/workbench/common/editor.js +1 -5
- package/vscode/src/vs/workbench/contrib/chat/common/chatService.js +1 -2
- package/vscode/src/vs/workbench/contrib/logs/common/logsActions.js +6 -12
- package/vscode/src/vs/workbench/contrib/mergeEditor/browser/utils.js +1 -1
- package/vscode/src/vs/workbench/services/issue/browser/issueTroubleshoot.js +418 -0
- package/vscode/src/vs/workbench/services/userDataProfile/common/userDataProfile.js +2 -7
- package/override/vs/platform/userDataSync/common/extensionsSync.js +0 -4
- package/override/vs/platform/userDataSync/common/globalStateSync.js +0 -5
- package/vscode/src/vs/base/browser/hash.js +0 -15
- package/vscode/src/vs/base/browser/ui/icons/iconSelectBox.css.js +0 -4
- package/vscode/src/vs/base/browser/ui/icons/iconSelectBox.js +0 -246
- package/vscode/src/vs/base/common/amd.js +0 -101
- package/vscode/src/vs/base/common/console.js +0 -60
- package/vscode/src/vs/base/common/paging.js +0 -116
- package/vscode/src/vs/base/common/parsers.js +0 -43
- package/vscode/src/vs/base/common/processes.js +0 -25
- package/vscode/src/vs/base/parts/request/browser/request.js +0 -60
- package/vscode/src/vs/editor/common/services/modelUndoRedoParticipant.js +0 -56
- package/vscode/src/vs/editor/common/services/textResourceConfigurationService.js +0 -116
- package/vscode/src/vs/editor/contrib/quickAccess/browser/commandsQuickAccess.js +0 -23
- package/vscode/src/vs/platform/debug/common/extensionHostDebugIpc.js +0 -71
- package/vscode/src/vs/platform/download/common/downloadIpc.js +0 -16
- package/vscode/src/vs/platform/download/common/downloadService.js +0 -31
- package/vscode/src/vs/platform/extensionManagement/common/abstractExtensionManagementService.js +0 -748
- package/vscode/src/vs/platform/extensionManagement/common/extensionGalleryService.js +0 -852
- package/vscode/src/vs/platform/extensionManagement/common/extensionManagementCLI.js +0 -495
- package/vscode/src/vs/platform/extensionManagement/common/extensionManagementIpc.js +0 -120
- package/vscode/src/vs/platform/extensionManagement/common/extensionTipsService.js +0 -65
- package/vscode/src/vs/platform/extensionManagement/common/unsupportedExtensionsMigration.js +0 -56
- package/vscode/src/vs/platform/extensionResourceLoader/browser/extensionResourceLoaderService.js +0 -42
- package/vscode/src/vs/platform/externalServices/common/marketplace.js +0 -15
- package/vscode/src/vs/platform/externalTerminal/common/externalTerminal.js +0 -3
- package/vscode/src/vs/platform/files/browser/indexedDBFileSystemProvider.js +0 -404
- package/vscode/src/vs/platform/files/common/fileService.js +0 -986
- package/vscode/src/vs/platform/files/common/io.js +0 -75
- package/vscode/src/vs/platform/issue/common/issueReporterUtil.js +0 -15
- package/vscode/src/vs/platform/keyboardLayout/common/keyboardConfig.js +0 -48
- package/vscode/src/vs/platform/keyboardLayout/common/keyboardMapper.js +0 -23
- package/vscode/src/vs/platform/lifecycle/common/lifecycle.js +0 -25
- package/vscode/src/vs/platform/log/common/fileLog.js +0 -105
- package/vscode/src/vs/platform/log/common/logIpc.js +0 -26
- package/vscode/src/vs/platform/quickinput/browser/commandsQuickAccess.js +0 -355
- package/vscode/src/vs/platform/quickinput/browser/helpQuickAccess.js +0 -65
- package/vscode/src/vs/platform/remote/browser/remoteAuthorityResolverService.js +0 -108
- package/vscode/src/vs/platform/remote/common/managedSocket.js +0 -96
- package/vscode/src/vs/platform/request/browser/requestService.js +0 -28
- package/vscode/src/vs/platform/request/common/requestIpc.js +0 -18
- package/vscode/src/vs/platform/telemetry/common/commonProperties.js +0 -11
- package/vscode/src/vs/platform/terminal/common/capabilities/naiveCwdDetectionCapability.js +0 -22
- package/vscode/src/vs/platform/terminal/common/environmentVariable.js +0 -7
- package/vscode/src/vs/platform/terminal/common/environmentVariableCollection.js +0 -196
- package/vscode/src/vs/platform/terminal/common/terminalLogService.js +0 -49
- package/vscode/src/vs/platform/terminal/common/terminalPlatformConfiguration.js +0 -518
- package/vscode/src/vs/platform/terminal/common/terminalProfiles.js +0 -111
- package/vscode/src/vs/platform/terminal/common/terminalRecorder.js +0 -66
- package/vscode/src/vs/platform/update/common/update.config.contribution.js +0 -98
- package/vscode/src/vs/platform/url/common/urlService.js +0 -20
- package/vscode/src/vs/platform/userDataProfile/browser/userDataProfile.js +0 -93
- package/vscode/src/vs/platform/userDataProfile/common/userDataProfileStorageService.js +0 -8
- package/vscode/src/vs/platform/userDataSync/common/extensionsSync.js +0 -256
- package/vscode/src/vs/platform/userDataSync/common/globalStateSync.js +0 -120
- package/vscode/src/vs/platform/userDataSync/common/keybindingsMerge.js +0 -275
- package/vscode/src/vs/platform/userDataSync/common/keybindingsSync.js +0 -316
- package/vscode/src/vs/platform/userDataSync/common/settingsSync.js +0 -314
- package/vscode/src/vs/platform/userDataSync/common/snippetsMerge.js +0 -125
- package/vscode/src/vs/platform/userDataSync/common/snippetsSync.js +0 -474
- package/vscode/src/vs/platform/userDataSync/common/tasksSync.js +0 -242
- package/vscode/src/vs/platform/userDataSync/common/userDataAutoSyncService.js +0 -464
- package/vscode/src/vs/platform/userDataSync/common/userDataProfilesManifestMerge.js +0 -90
- package/vscode/src/vs/platform/userDataSync/common/userDataProfilesManifestSync.js +0 -257
- package/vscode/src/vs/platform/userDataSync/common/userDataSyncEnablementService.js +0 -75
- package/vscode/src/vs/platform/userDataSync/common/userDataSyncLocalStoreService.js +0 -148
- package/vscode/src/vs/platform/userDataSync/common/userDataSyncLog.js +0 -39
- package/vscode/src/vs/platform/userDataSync/common/userDataSyncResourceProvider.js +0 -447
- package/vscode/src/vs/platform/userDataSync/common/userDataSyncService.js +0 -781
- package/vscode/src/vs/workbench/api/browser/extensionHost.contribution.js +0 -103
- package/vscode/src/vs/workbench/api/browser/mainThreadAiEmbeddingVector.js +0 -29
- package/vscode/src/vs/workbench/api/browser/mainThreadAiRelatedInformation.js +0 -33
- package/vscode/src/vs/workbench/api/browser/mainThreadAuthentication.js +0 -252
- package/vscode/src/vs/workbench/api/browser/mainThreadBulkEdits.js +0 -66
- package/vscode/src/vs/workbench/api/browser/mainThreadCLICommands.js +0 -102
- package/vscode/src/vs/workbench/api/browser/mainThreadChat.js +0 -68
- package/vscode/src/vs/workbench/api/browser/mainThreadChatAgents2.js +0 -205
- package/vscode/src/vs/workbench/api/browser/mainThreadChatVariables.js +0 -39
- package/vscode/src/vs/workbench/api/browser/mainThreadClipboard.js +0 -22
- package/vscode/src/vs/workbench/api/browser/mainThreadCodeInsets.js +0 -106
- package/vscode/src/vs/workbench/api/browser/mainThreadCommands.js +0 -96
- package/vscode/src/vs/workbench/api/browser/mainThreadComments.js +0 -558
- package/vscode/src/vs/workbench/api/browser/mainThreadConfiguration.js +0 -78
- package/vscode/src/vs/workbench/api/browser/mainThreadConsole.js +0 -33
- package/vscode/src/vs/workbench/api/browser/mainThreadCustomEditors.js +0 -577
- package/vscode/src/vs/workbench/api/browser/mainThreadDebugService.js +0 -433
- package/vscode/src/vs/workbench/api/browser/mainThreadDecorations.js +0 -100
- package/vscode/src/vs/workbench/api/browser/mainThreadDiagnostics.js +0 -67
- package/vscode/src/vs/workbench/api/browser/mainThreadDialogs.js +0 -66
- package/vscode/src/vs/workbench/api/browser/mainThreadDocumentContentProviders.js +0 -77
- package/vscode/src/vs/workbench/api/browser/mainThreadDocuments.js +0 -251
- package/vscode/src/vs/workbench/api/browser/mainThreadDocumentsAndEditors.js +0 -368
- package/vscode/src/vs/workbench/api/browser/mainThreadDownloadService.js +0 -20
- package/vscode/src/vs/workbench/api/browser/mainThreadEditSessionIdentityParticipant.js +0 -39
- package/vscode/src/vs/workbench/api/browser/mainThreadEditor.js +0 -412
- package/vscode/src/vs/workbench/api/browser/mainThreadEditorTabs.js +0 -499
- package/vscode/src/vs/workbench/api/browser/mainThreadEditors.js +0 -225
- package/vscode/src/vs/workbench/api/browser/mainThreadErrors.js +0 -22
- package/vscode/src/vs/workbench/api/browser/mainThreadExtensionService.js +0 -315
- package/vscode/src/vs/workbench/api/browser/mainThreadFileSystem.js +0 -206
- package/vscode/src/vs/workbench/api/browser/mainThreadFileSystemEventService.js +0 -367
- package/vscode/src/vs/workbench/api/browser/mainThreadInlineChat.js +0 -70
- package/vscode/src/vs/workbench/api/browser/mainThreadInteractive.js +0 -26
- package/vscode/src/vs/workbench/api/browser/mainThreadIssueReporter.js +0 -48
- package/vscode/src/vs/workbench/api/browser/mainThreadLabelService.js +0 -25
- package/vscode/src/vs/workbench/api/browser/mainThreadLanguageFeatures.js +0 -1014
- package/vscode/src/vs/workbench/api/browser/mainThreadLanguageModels.js +0 -183
- package/vscode/src/vs/workbench/api/browser/mainThreadLanguages.js +0 -76
- package/vscode/src/vs/workbench/api/browser/mainThreadLocalization.js +0 -33
- package/vscode/src/vs/workbench/api/browser/mainThreadLogService.js +0 -76
- package/vscode/src/vs/workbench/api/browser/mainThreadManagedSockets.js +0 -91
- package/vscode/src/vs/workbench/api/browser/mainThreadMessageService.js +0 -135
- package/vscode/src/vs/workbench/api/browser/mainThreadNotebook.js +0 -192
- package/vscode/src/vs/workbench/api/browser/mainThreadNotebookDocuments.js +0 -121
- package/vscode/src/vs/workbench/api/browser/mainThreadNotebookDocumentsAndEditors.js +0 -186
- package/vscode/src/vs/workbench/api/browser/mainThreadNotebookDto.js +0 -127
- package/vscode/src/vs/workbench/api/browser/mainThreadNotebookEditors.js +0 -129
- package/vscode/src/vs/workbench/api/browser/mainThreadNotebookKernels.js +0 -372
- package/vscode/src/vs/workbench/api/browser/mainThreadNotebookRenderers.js +0 -23
- package/vscode/src/vs/workbench/api/browser/mainThreadNotebookSaveParticipant.js +0 -46
- package/vscode/src/vs/workbench/api/browser/mainThreadOutputService.js +0 -74
- package/vscode/src/vs/workbench/api/browser/mainThreadProfileContentHandlers.js +0 -36
- package/vscode/src/vs/workbench/api/browser/mainThreadProgress.js +0 -66
- package/vscode/src/vs/workbench/api/browser/mainThreadQuickDiff.js +0 -40
- package/vscode/src/vs/workbench/api/browser/mainThreadQuickOpen.js +0 -183
- package/vscode/src/vs/workbench/api/browser/mainThreadRemoteConnectionData.js +0 -28
- package/vscode/src/vs/workbench/api/browser/mainThreadSCM.js +0 -491
- package/vscode/src/vs/workbench/api/browser/mainThreadSaveParticipant.js +0 -47
- package/vscode/src/vs/workbench/api/browser/mainThreadSearch.js +0 -166
- package/vscode/src/vs/workbench/api/browser/mainThreadSecretState.js +0 -68
- package/vscode/src/vs/workbench/api/browser/mainThreadShare.js +0 -48
- package/vscode/src/vs/workbench/api/browser/mainThreadSpeech.js +0 -97
- package/vscode/src/vs/workbench/api/browser/mainThreadStatusBar.js +0 -51
- package/vscode/src/vs/workbench/api/browser/mainThreadStorage.js +0 -70
- package/vscode/src/vs/workbench/api/browser/mainThreadTask.js +0 -729
- package/vscode/src/vs/workbench/api/browser/mainThreadTelemetry.js +0 -51
- package/vscode/src/vs/workbench/api/browser/mainThreadTerminalService.js +0 -407
- package/vscode/src/vs/workbench/api/browser/mainThreadTerminalShellIntegration.js +0 -49
- package/vscode/src/vs/workbench/api/browser/mainThreadTesting.js +0 -217
- package/vscode/src/vs/workbench/api/browser/mainThreadTheming.js +0 -22
- package/vscode/src/vs/workbench/api/browser/mainThreadTimeline.js +0 -53
- package/vscode/src/vs/workbench/api/browser/mainThreadTreeViews.js +0 -310
- package/vscode/src/vs/workbench/api/browser/mainThreadTunnelService.js +0 -221
- package/vscode/src/vs/workbench/api/browser/mainThreadUriOpeners.js +0 -108
- package/vscode/src/vs/workbench/api/browser/mainThreadUrls.js +0 -59
- package/vscode/src/vs/workbench/api/browser/mainThreadWebviewManager.js +0 -27
- package/vscode/src/vs/workbench/api/browser/mainThreadWebviewPanels.js +0 -281
- package/vscode/src/vs/workbench/api/browser/mainThreadWebviewViews.js +0 -98
- package/vscode/src/vs/workbench/api/browser/mainThreadWebviews.js +0 -133
- package/vscode/src/vs/workbench/api/browser/mainThreadWindow.js +0 -55
- package/vscode/src/vs/workbench/api/browser/mainThreadWorkspace.js +0 -266
- package/vscode/src/vs/workbench/api/common/configurationExtensionPoint.js +0 -594
- package/vscode/src/vs/workbench/api/common/shared/dataTransferCache.js +0 -33
- package/vscode/src/vs/workbench/browser/actions/quickAccessActions.js +0 -227
- package/vscode/src/vs/workbench/browser/layout.js +0 -2059
- package/vscode/src/vs/workbench/browser/parts/banner/bannerPart.js +0 -233
- package/vscode/src/vs/workbench/browser/parts/banner/media/bannerpart.css.js +0 -4
- package/vscode/src/vs/workbench/browser/parts/dialogs/dialog.web.contribution.js +0 -74
- package/vscode/src/vs/workbench/browser/parts/dialogs/dialogHandler.js +0 -132
- package/vscode/src/vs/workbench/browser/parts/statusbar/media/statusbarpart.css.js +0 -4
- package/vscode/src/vs/workbench/browser/parts/statusbar/statusbarActions.js +0 -119
- package/vscode/src/vs/workbench/browser/parts/statusbar/statusbarItem.js +0 -250
- package/vscode/src/vs/workbench/browser/parts/statusbar/statusbarModel.js +0 -249
- package/vscode/src/vs/workbench/browser/parts/statusbar/statusbarPart.js +0 -610
- package/vscode/src/vs/workbench/browser/parts/titlebar/commandCenterControl.js +0 -220
- package/vscode/src/vs/workbench/browser/parts/titlebar/media/titlebarpart.css.js +0 -4
- package/vscode/src/vs/workbench/browser/parts/titlebar/titlebarActions.js +0 -259
- package/vscode/src/vs/workbench/browser/parts/titlebar/titlebarPart.js +0 -582
- package/vscode/src/vs/workbench/common/dialogs.js +0 -36
- package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibility.contribution.js +0 -23
- package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibilityStatus.js +0 -112
- package/vscode/src/vs/workbench/contrib/accessibility/browser/openDiffEditorAnnouncement.js +0 -50
- package/vscode/src/vs/workbench/contrib/accessibility/browser/saveAccessibilitySignal.js +0 -18
- package/vscode/src/vs/workbench/contrib/accessibility/browser/unfocusedViewDimmingContribution.js +0 -66
- package/vscode/src/vs/workbench/contrib/bulkEdit/browser/bulkEditService.js +0 -358
- package/vscode/src/vs/workbench/contrib/bulkEdit/browser/bulkFileEdits.js +0 -362
- package/vscode/src/vs/workbench/contrib/bulkEdit/browser/bulkTextEdits.js +0 -265
- package/vscode/src/vs/workbench/contrib/bulkEdit/browser/conflicts.js +0 -78
- package/vscode/src/vs/workbench/contrib/bulkEdit/browser/preview/bulkEdit.contribution.js +0 -364
- package/vscode/src/vs/workbench/contrib/bulkEdit/browser/preview/bulkEdit.css.js +0 -4
- package/vscode/src/vs/workbench/contrib/bulkEdit/browser/preview/bulkEditPane.js +0 -340
- package/vscode/src/vs/workbench/contrib/bulkEdit/browser/preview/bulkEditPreview.js +0 -361
- package/vscode/src/vs/workbench/contrib/bulkEdit/browser/preview/bulkEditTree.js +0 -655
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatClear.js +0 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatClearActions.js +0 -113
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +0 -501
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +0 -80
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +0 -75
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +0 -108
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +0 -169
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTitleActions.js +0 -269
- package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +0 -316
- package/vscode/src/vs/workbench/contrib/chat/browser/chatAccessibilityService.js +0 -58
- package/vscode/src/vs/workbench/contrib/chat/browser/chatContributionServiceImpl.js +0 -421
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditor.js +0 -96
- package/vscode/src/vs/workbench/contrib/chat/browser/chatQuick.js +0 -283
- package/vscode/src/vs/workbench/contrib/chat/browser/chatVariables.js +0 -88
- package/vscode/src/vs/workbench/contrib/chat/browser/chatViewPane.js +0 -183
- package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatHistoryVariables.js +0 -25
- package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorContrib.js +0 -617
- package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.js +0 -598
- package/vscode/src/vs/workbench/contrib/chat/common/voiceChat.js +0 -139
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/accessibility/accessibility.css.js +0 -4
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/accessibility/accessibility.js +0 -39
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/emptyTextEditorHint/emptyTextEditorHint.css.js +0 -4
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/emptyTextEditorHint/emptyTextEditorHint.js +0 -389
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/outline/documentSymbolsOutline.js +0 -370
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/outline/documentSymbolsTree.css.js +0 -4
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/outline/documentSymbolsTree.js +0 -290
- package/vscode/src/vs/workbench/contrib/codeEditor/browser/quickaccess/gotoLineQuickAccess.js +0 -86
- package/vscode/src/vs/workbench/contrib/commands/common/commands.contribution.js +0 -145
- package/vscode/src/vs/workbench/contrib/comments/browser/comments.contribution.js +0 -231
- package/vscode/src/vs/workbench/contrib/comments/browser/commentsEditorContribution.js +0 -282
- package/vscode/src/vs/workbench/contrib/customEditor/common/customTextEditorModel.js +0 -74
- package/vscode/src/vs/workbench/contrib/debug/browser/callStackView.js +0 -1024
- package/vscode/src/vs/workbench/contrib/debug/browser/debug.contribution.js +0 -1003
- package/vscode/src/vs/workbench/contrib/debug/browser/debugANSIHandling.js +0 -345
- package/vscode/src/vs/workbench/contrib/debug/browser/debugActionViewItems.js +0 -335
- package/vscode/src/vs/workbench/contrib/debug/browser/debugAdapterManager.js +0 -430
- package/vscode/src/vs/workbench/contrib/debug/browser/debugCommands.js +0 -1037
- package/vscode/src/vs/workbench/contrib/debug/browser/debugConfigurationManager.js +0 -647
- package/vscode/src/vs/workbench/contrib/debug/browser/debugConsoleQuickAccess.js +0 -62
- package/vscode/src/vs/workbench/contrib/debug/browser/debugEditorActions.js +0 -634
- package/vscode/src/vs/workbench/contrib/debug/browser/debugEditorContribution.js +0 -738
- package/vscode/src/vs/workbench/contrib/debug/browser/debugHover.js +0 -406
- package/vscode/src/vs/workbench/contrib/debug/browser/debugMemory.js +0 -204
- package/vscode/src/vs/workbench/contrib/debug/browser/debugProgress.js +0 -78
- package/vscode/src/vs/workbench/contrib/debug/browser/debugQuickAccess.js +0 -167
- package/vscode/src/vs/workbench/contrib/debug/browser/debugService.js +0 -1269
- package/vscode/src/vs/workbench/contrib/debug/browser/debugSession.js +0 -1328
- package/vscode/src/vs/workbench/contrib/debug/browser/debugSessionPicker.js +0 -113
- package/vscode/src/vs/workbench/contrib/debug/browser/debugStatus.js +0 -75
- package/vscode/src/vs/workbench/contrib/debug/browser/debugTaskRunner.js +0 -305
- package/vscode/src/vs/workbench/contrib/debug/browser/debugTitle.js +0 -29
- package/vscode/src/vs/workbench/contrib/debug/browser/debugToolBar.js +0 -385
- package/vscode/src/vs/workbench/contrib/debug/browser/debugViewlet.js +0 -265
- package/vscode/src/vs/workbench/contrib/debug/browser/disassemblyView.js +0 -815
- package/vscode/src/vs/workbench/contrib/debug/browser/exceptionWidget.js +0 -129
- package/vscode/src/vs/workbench/contrib/debug/browser/extensionHostDebugService.js +0 -140
- package/vscode/src/vs/workbench/contrib/debug/browser/linkDetector.js +0 -260
- package/vscode/src/vs/workbench/contrib/debug/browser/loadedScriptsView.js +0 -667
- package/vscode/src/vs/workbench/contrib/debug/browser/media/debug.contribution.css.js +0 -4
- package/vscode/src/vs/workbench/contrib/debug/browser/media/debugHover.css.js +0 -4
- package/vscode/src/vs/workbench/contrib/debug/browser/media/debugToolBar.css.js +0 -4
- package/vscode/src/vs/workbench/contrib/debug/browser/media/debugViewlet.css.js +0 -4
- package/vscode/src/vs/workbench/contrib/debug/browser/media/exceptionWidget.css.js +0 -4
- package/vscode/src/vs/workbench/contrib/debug/browser/media/repl.css.js +0 -4
- package/vscode/src/vs/workbench/contrib/debug/browser/rawDebugSession.js +0 -707
- package/vscode/src/vs/workbench/contrib/debug/browser/repl.js +0 -1000
- package/vscode/src/vs/workbench/contrib/debug/browser/replFilter.js +0 -46
- package/vscode/src/vs/workbench/contrib/debug/browser/replViewer.js +0 -350
- package/vscode/src/vs/workbench/contrib/debug/browser/statusbarColorProvider.js +0 -127
- package/vscode/src/vs/workbench/contrib/debug/browser/variablesView.js +0 -732
- package/vscode/src/vs/workbench/contrib/debug/browser/watchExpressionsView.js +0 -499
- package/vscode/src/vs/workbench/contrib/debug/browser/welcomeView.js +0 -160
- package/vscode/src/vs/workbench/contrib/debug/common/breakpoints.js +0 -19
- package/vscode/src/vs/workbench/contrib/debug/common/debugCompoundRoot.js +0 -15
- package/vscode/src/vs/workbench/contrib/debug/common/debugContentProvider.js +0 -108
- package/vscode/src/vs/workbench/contrib/debug/common/debugLifecycle.js +0 -60
- package/vscode/src/vs/workbench/contrib/debug/common/debugSchemas.js +0 -458
- package/vscode/src/vs/workbench/contrib/debug/common/debugStorage.js +0 -164
- package/vscode/src/vs/workbench/contrib/debug/common/debugTelemetry.js +0 -34
- package/vscode/src/vs/workbench/contrib/debug/common/debugViewModel.js +0 -148
- package/vscode/src/vs/workbench/contrib/debug/common/debugger.js +0 -287
- package/vscode/src/vs/workbench/contrib/debug/common/loadedScriptsPicker.js +0 -85
- package/vscode/src/vs/workbench/contrib/editSessions/browser/editSessions.contribution.js +0 -1197
- package/vscode/src/vs/workbench/contrib/editSessions/browser/editSessionsFileSystemProvider.js +0 -55
- package/vscode/src/vs/workbench/contrib/editSessions/browser/editSessionsStorageService.js +0 -455
- package/vscode/src/vs/workbench/contrib/editSessions/browser/editSessionsViews.js +0 -337
- package/vscode/src/vs/workbench/contrib/editSessions/common/editSessionsLogService.js +0 -39
- package/vscode/src/vs/workbench/contrib/editSessions/common/editSessionsStorageClient.js +0 -4
- package/vscode/src/vs/workbench/contrib/editSessions/common/workspaceStateSync.js +0 -140
- package/vscode/src/vs/workbench/contrib/emmet/browser/actions/expandAbbreviation.js +0 -41
- package/vscode/src/vs/workbench/contrib/emmet/browser/emmetActions.js +0 -88
- package/vscode/src/vs/workbench/contrib/extensions/browser/abstractRuntimeExtensionsEditor.js +0 -539
- package/vscode/src/vs/workbench/contrib/extensions/browser/browserRuntimeExtensionsEditor.js +0 -26
- package/vscode/src/vs/workbench/contrib/extensions/browser/configBasedRecommendations.js +0 -76
- package/vscode/src/vs/workbench/contrib/extensions/browser/deprecatedExtensionsChecker.js +0 -88
- package/vscode/src/vs/workbench/contrib/extensions/browser/exeBasedRecommendations.js +0 -58
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionEditor.js +0 -1171
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionEnablementWorkspaceTrustTransitionParticipant.js +0 -50
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionFeaturesTab.js +0 -543
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionRecommendationNotificationService.js +0 -464
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionRecommendations.js +0 -15
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionRecommendationsService.js +0 -233
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensions.contribution.js +0 -2182
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensions.web.contribution.js +0 -12
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsActivationProgress.js +0 -44
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsCompletionItemsProvider.js +0 -63
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsDependencyChecker.js +0 -96
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsList.js +0 -219
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsQuickAccess.js +0 -119
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsViewer.js +0 -293
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsViewlet.js +0 -934
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsViews.js +0 -1349
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsWidgets.js +0 -858
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.js +0 -2349
- package/vscode/src/vs/workbench/contrib/extensions/browser/fileBasedRecommendations.js +0 -328
- package/vscode/src/vs/workbench/contrib/extensions/browser/keymapRecommendations.js +0 -26
- package/vscode/src/vs/workbench/contrib/extensions/browser/languageRecommendations.js +0 -26
- package/vscode/src/vs/workbench/contrib/extensions/browser/media/extension.css.js +0 -4
- package/vscode/src/vs/workbench/contrib/extensions/browser/media/extensionEditor.css.js +0 -4
- package/vscode/src/vs/workbench/contrib/extensions/browser/media/extensionsViewlet.css.js +0 -4
- package/vscode/src/vs/workbench/contrib/extensions/browser/media/extensionsWidgets.css.js +0 -4
- package/vscode/src/vs/workbench/contrib/extensions/browser/media/runtimeExtensionsEditor.css.js +0 -4
- package/vscode/src/vs/workbench/contrib/extensions/browser/remoteRecommendations.js +0 -27
- package/vscode/src/vs/workbench/contrib/extensions/browser/unsupportedExtensionsMigrationContribution.js +0 -24
- package/vscode/src/vs/workbench/contrib/extensions/browser/webRecommendations.js +0 -36
- package/vscode/src/vs/workbench/contrib/extensions/browser/workspaceRecommendations.js +0 -160
- package/vscode/src/vs/workbench/contrib/extensions/common/extensionQuery.js +0 -56
- package/vscode/src/vs/workbench/contrib/extensions/common/reportExtensionIssueAction.js +0 -29
- package/vscode/src/vs/workbench/contrib/extensions/common/runtimeExtensionsInput.js +0 -49
- package/vscode/src/vs/workbench/contrib/externalTerminal/browser/externalTerminal.contribution.js +0 -152
- package/vscode/src/vs/workbench/contrib/externalUriOpener/common/contributedOpeners.js +0 -81
- package/vscode/src/vs/workbench/contrib/files/browser/explorerService.js +0 -430
- package/vscode/src/vs/workbench/contrib/files/browser/fileActions.contribution.js +0 -786
- package/vscode/src/vs/workbench/contrib/files/browser/fileCommands.js +0 -510
- package/vscode/src/vs/workbench/contrib/files/browser/files.explorer.contribution.js +0 -460
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +0 -39
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibleView.js +0 -39
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatNotebook.js +0 -70
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSavingServiceImpl.js +0 -234
- package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChatServiceImpl.js +0 -31
- package/vscode/src/vs/workbench/contrib/interactive/browser/interactive.contribution.js +0 -737
- package/vscode/src/vs/workbench/contrib/interactive/browser/interactiveCommon.js +0 -6
- package/vscode/src/vs/workbench/contrib/interactive/browser/interactiveEditor.css.js +0 -4
- package/vscode/src/vs/workbench/contrib/interactive/browser/interactiveEditor.js +0 -600
- package/vscode/src/vs/workbench/contrib/interactive/browser/media/interactive.css.js +0 -4
- package/vscode/src/vs/workbench/contrib/issue/browser/issue.contribution.js +0 -27
- package/vscode/src/vs/workbench/contrib/issue/common/issue.contribution.js +0 -102
- package/vscode/src/vs/workbench/contrib/keybindings/browser/keybindings.contribution.js +0 -28
- package/vscode/src/vs/workbench/contrib/languageDetection/browser/languageDetection.contribution.js +0 -156
- package/vscode/src/vs/workbench/contrib/localHistory/browser/localHistory.contribution.js +0 -4
- package/vscode/src/vs/workbench/contrib/localHistory/browser/localHistory.js +0 -35
- package/vscode/src/vs/workbench/contrib/localHistory/browser/localHistoryCommands.js +0 -635
- package/vscode/src/vs/workbench/contrib/localHistory/browser/localHistoryFileSystemProvider.js +0 -87
- package/vscode/src/vs/workbench/contrib/localHistory/browser/localHistoryTimeline.js +0 -136
- package/vscode/src/vs/workbench/contrib/logs/common/logs.contribution.js +0 -225
- package/vscode/src/vs/workbench/contrib/markdown/browser/markdownSettingRenderer.js +0 -307
- package/vscode/src/vs/workbench/contrib/markers/browser/markers.contribution.js +0 -759
- package/vscode/src/vs/workbench/contrib/markers/browser/markersFileDecorations.js +0 -127
- package/vscode/src/vs/workbench/contrib/markers/browser/markersFilterOptions.js +0 -75
- package/vscode/src/vs/workbench/contrib/markers/browser/markersModel.js +0 -200
- package/vscode/src/vs/workbench/contrib/markers/browser/markersTable.js +0 -475
- package/vscode/src/vs/workbench/contrib/markers/browser/markersTreeViewer.js +0 -691
- package/vscode/src/vs/workbench/contrib/markers/browser/markersView.js +0 -900
- package/vscode/src/vs/workbench/contrib/markers/browser/markersViewActions.css.js +0 -4
- package/vscode/src/vs/workbench/contrib/markers/browser/markersViewActions.js +0 -132
- package/vscode/src/vs/workbench/contrib/markers/browser/media/markers.css.js +0 -4
- package/vscode/src/vs/workbench/contrib/markers/browser/messages.js +0 -301
- package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/actions.js +0 -108
- package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/multiDiffEditor.contribution.js +0 -39
- package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/multiDiffEditor.js +0 -117
- package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/scmMultiDiffSourceResolver.js +0 -146
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/cellStatusBar/contributedStatusBarItemController.js +0 -107
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/cellStatusBar/statusBarProviders.js +0 -172
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/clipboard/notebookClipboard.js +0 -542
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/debug/notebookBreakpoints.js +0 -105
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/debug/notebookCellPausing.js +0 -66
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/debug/notebookDebugDecorations.js +0 -163
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/editorHint/emptyCellEditorHint.js +0 -65
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/editorStatusBar/editorStatusBar.js +0 -318
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/execute/executionEditorProgress.js +0 -70
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/media/notebookFind.css.js +0 -4
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFind.js +0 -167
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/format/formatting.js +0 -207
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/gettingStarted/notebookGettingStarted.js +0 -82
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/kernelDetection/notebookKernelDetection.js +0 -81
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/layout/layoutActions.js +0 -65
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/marker/markerProvider.js +0 -100
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/navigation/arrow.js +0 -391
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/notebookVariables/notebookVariableCommands.js +0 -62
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/notebookVariables/notebookVariableContextKeys.js +0 -3
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/notebookVariables/notebookVariables.js +0 -95
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/notebookVariables/notebookVariablesDataSource.js +0 -118
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/notebookVariables/notebookVariablesTree.js +0 -58
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/notebookVariables/notebookVariablesView.js +0 -148
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/outline/notebookOutline.js +0 -654
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/profile/notebookProfile.js +0 -75
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/saveParticipants/saveParticipants.js +0 -515
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/troubleshoot/layout.js +0 -157
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/undoRedo/notebookUndoRedo.js +0 -55
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/viewportWarmup/viewportWarmup.js +0 -93
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/apiActions.js +0 -50
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/cellChatActions.js +0 -651
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/executeActions.js +0 -719
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/insertCellActions.js +0 -349
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/layoutActions.js +0 -314
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/sectionActions.js +0 -197
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffCellEditorOptions.js +0 -46
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffComponents.js +0 -1295
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffElementOutputs.js +0 -282
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffElementViewModel.js +0 -561
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffNestedCellViewModel.js +0 -113
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/eventDispatcher.js +0 -37
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiff.css.js +0 -4
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffActions.js +0 -312
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditor.js +0 -909
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditorBrowser.js +0 -11
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffList.js +0 -393
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffOverviewRuler.js +0 -183
- package/vscode/src/vs/workbench/contrib/notebook/browser/notebook.contribution.js +0 -1185
- package/vscode/src/vs/workbench/contrib/notebook/browser/notebookAccessibility.js +0 -157
- package/vscode/src/vs/workbench/contrib/notebook/browser/notebookExtensionPoint.js +0 -449
- package/vscode/src/vs/workbench/contrib/notebook/browser/services/notebookEditorServiceImpl.js +0 -190
- package/vscode/src/vs/workbench/contrib/notebook/browser/services/notebookExecutionServiceImpl.js +0 -104
- package/vscode/src/vs/workbench/contrib/notebook/browser/services/notebookExecutionStateServiceImpl.js +0 -508
- package/vscode/src/vs/workbench/contrib/notebook/browser/services/notebookKernelHistoryServiceImpl.js +0 -128
- package/vscode/src/vs/workbench/contrib/notebook/browser/services/notebookKernelServiceImpl.js +0 -339
- package/vscode/src/vs/workbench/contrib/notebook/browser/services/notebookKeymapServiceImpl.js +0 -109
- package/vscode/src/vs/workbench/contrib/notebook/browser/services/notebookLoggingServiceImpl.js +0 -26
- package/vscode/src/vs/workbench/contrib/notebook/browser/services/notebookRendererMessagingServiceImpl.js +0 -63
- package/vscode/src/vs/workbench/contrib/notebook/browser/services/notebookServiceImpl.js +0 -639
- package/vscode/src/vs/workbench/contrib/notebook/browser/services/notebookWorkerServiceImpl.js +0 -198
- package/vscode/src/vs/workbench/contrib/notebook/common/model/cellEdit.js +0 -89
- package/vscode/src/vs/workbench/contrib/notebook/common/model/notebookTextModel.js +0 -1000
- package/vscode/src/vs/workbench/contrib/notebook/common/notebookDiffEditorInput.js +0 -101
- package/vscode/src/vs/workbench/contrib/notebook/common/notebookEditorModelResolverServiceImpl.js +0 -201
- package/vscode/src/vs/workbench/contrib/notebook/common/notebookOutputRenderer.js +0 -78
- package/vscode/src/vs/workbench/contrib/notebook/common/notebookProvider.js +0 -96
- package/vscode/src/vs/workbench/contrib/outline/browser/outline.contribution.js +0 -367
- package/vscode/src/vs/workbench/contrib/outline/browser/outlineActions.js +0 -172
- package/vscode/src/vs/workbench/contrib/outline/browser/outlinePane.css.js +0 -4
- package/vscode/src/vs/workbench/contrib/outline/browser/outlinePane.js +0 -316
- package/vscode/src/vs/workbench/contrib/outline/browser/outlineViewState.js +0 -66
- package/vscode/src/vs/workbench/contrib/output/browser/output.contribution.js +0 -613
- package/vscode/src/vs/workbench/contrib/output/browser/output.css.js +0 -4
- package/vscode/src/vs/workbench/contrib/output/browser/outputLinkProvider.js +0 -76
- package/vscode/src/vs/workbench/contrib/output/browser/outputServices.js +0 -200
- package/vscode/src/vs/workbench/contrib/output/browser/outputView.js +0 -224
- package/vscode/src/vs/workbench/contrib/performance/browser/inputLatencyContrib.js +0 -43
- package/vscode/src/vs/workbench/contrib/performance/browser/performance.contribution.js +0 -116
- package/vscode/src/vs/workbench/contrib/performance/browser/performance.web.contribution.js +0 -5
- package/vscode/src/vs/workbench/contrib/performance/browser/perfviewEditor.js +0 -340
- package/vscode/src/vs/workbench/contrib/performance/browser/startupTimings.js +0 -114
- package/vscode/src/vs/workbench/contrib/preferences/browser/keybindingsEditor.js +0 -1237
- package/vscode/src/vs/workbench/contrib/preferences/browser/keybindingsEditorContribution.js +0 -248
- package/vscode/src/vs/workbench/contrib/preferences/browser/media/keybindingsEditor.css.js +0 -4
- package/vscode/src/vs/workbench/contrib/preferences/browser/media/preferences.css.js +0 -4
- package/vscode/src/vs/workbench/contrib/preferences/browser/media/settingsEditor2.css.js +0 -4
- package/vscode/src/vs/workbench/contrib/preferences/browser/media/settingsWidgets.css.js +0 -4
- package/vscode/src/vs/workbench/contrib/preferences/browser/preferences.contribution.js +0 -1374
- package/vscode/src/vs/workbench/contrib/preferences/browser/preferencesActions.js +0 -104
- package/vscode/src/vs/workbench/contrib/preferences/browser/preferencesEditor.js +0 -47
- package/vscode/src/vs/workbench/contrib/preferences/browser/preferencesRenderers.js +0 -784
- package/vscode/src/vs/workbench/contrib/preferences/browser/preferencesSearch.js +0 -461
- package/vscode/src/vs/workbench/contrib/preferences/browser/settingsEditor2.js +0 -1578
- package/vscode/src/vs/workbench/contrib/preferences/browser/settingsEditorSettingIndicators.js +0 -624
- package/vscode/src/vs/workbench/contrib/preferences/browser/settingsSearchMenu.js +0 -135
- package/vscode/src/vs/workbench/contrib/preferences/browser/settingsTree.js +0 -2122
- package/vscode/src/vs/workbench/contrib/preferences/browser/settingsWidgets.js +0 -1158
- package/vscode/src/vs/workbench/contrib/preferences/browser/tocTree.js +0 -217
- package/vscode/src/vs/workbench/contrib/preferences/common/preferencesContribution.js +0 -160
- package/vscode/src/vs/workbench/contrib/preferences/common/smartSnippetInserter.js +0 -124
- package/vscode/src/vs/workbench/contrib/quickaccess/browser/commandsQuickAccess.js +0 -293
- package/vscode/src/vs/workbench/contrib/quickaccess/browser/quickAccess.contribution.js +0 -167
- package/vscode/src/vs/workbench/contrib/quickaccess/browser/viewQuickAccess.js +0 -264
- package/vscode/src/vs/workbench/contrib/relauncher/browser/relauncher.contribution.js +0 -206
- package/vscode/src/vs/workbench/contrib/remote/browser/explorerViewItems.js +0 -133
- package/vscode/src/vs/workbench/contrib/remote/browser/media/remoteViewlet.css.js +0 -4
- package/vscode/src/vs/workbench/contrib/remote/browser/remote.contribution.js +0 -18
- package/vscode/src/vs/workbench/contrib/remote/browser/remote.js +0 -829
- package/vscode/src/vs/workbench/contrib/remote/browser/remoteConnectionHealth.js +0 -164
- package/vscode/src/vs/workbench/contrib/remote/browser/remoteIndicator.js +0 -800
- package/vscode/src/vs/workbench/contrib/remote/browser/remoteStartEntry.contribution.js +0 -5
- package/vscode/src/vs/workbench/contrib/remote/browser/remoteStartEntry.js +0 -95
- package/vscode/src/vs/workbench/contrib/remote/browser/showCandidate.js +0 -33
- package/vscode/src/vs/workbench/contrib/remote/browser/tunnelFactory.js +0 -108
- package/vscode/src/vs/workbench/contrib/remote/common/remote.contribution.js +0 -513
- package/vscode/src/vs/workbench/contrib/scm/browser/activity.js +0 -306
- package/vscode/src/vs/workbench/contrib/scm/browser/media/scm.css.js +0 -4
- package/vscode/src/vs/workbench/contrib/scm/browser/menus.js +0 -278
- package/vscode/src/vs/workbench/contrib/scm/browser/scm.contribution.js +0 -701
- package/vscode/src/vs/workbench/contrib/scm/browser/scmRepositoriesViewPane.js +0 -172
- package/vscode/src/vs/workbench/contrib/scm/browser/scmRepositoryRenderer.js +0 -134
- package/vscode/src/vs/workbench/contrib/scm/browser/scmViewPane.js +0 -3365
- package/vscode/src/vs/workbench/contrib/scm/browser/scmViewPaneContainer.js +0 -52
- package/vscode/src/vs/workbench/contrib/scm/browser/scmViewService.js +0 -303
- package/vscode/src/vs/workbench/contrib/scm/browser/util.js +0 -119
- package/vscode/src/vs/workbench/contrib/scm/common/quickDiffService.js +0 -74
- package/vscode/src/vs/workbench/contrib/scm/common/scmService.js +0 -310
- package/vscode/src/vs/workbench/contrib/search/browser/anythingQuickAccess.js +0 -794
- package/vscode/src/vs/workbench/contrib/search/browser/media/anythingQuickAccess.css.js +0 -4
- package/vscode/src/vs/workbench/contrib/search/browser/media/searchview.css.js +0 -4
- package/vscode/src/vs/workbench/contrib/search/browser/patternInputWidget.js +0 -232
- package/vscode/src/vs/workbench/contrib/search/browser/quickTextSearch/textSearchQuickAccess.js +0 -339
- package/vscode/src/vs/workbench/contrib/search/browser/replaceContributions.js +0 -7
- package/vscode/src/vs/workbench/contrib/search/browser/replaceService.js +0 -230
- package/vscode/src/vs/workbench/contrib/search/browser/search.contribution.js +0 -646
- package/vscode/src/vs/workbench/contrib/search/browser/searchActionsCopy.js +0 -207
- package/vscode/src/vs/workbench/contrib/search/browser/searchActionsNav.js +0 -510
- package/vscode/src/vs/workbench/contrib/search/browser/searchActionsRemoveReplace.js +0 -372
- package/vscode/src/vs/workbench/contrib/search/browser/searchActionsSymbol.js +0 -42
- package/vscode/src/vs/workbench/contrib/search/browser/searchActionsTextQuickAccess.js +0 -43
- package/vscode/src/vs/workbench/contrib/search/browser/searchActionsTopBar.js +0 -322
- package/vscode/src/vs/workbench/contrib/search/browser/searchFindInput.js +0 -101
- package/vscode/src/vs/workbench/contrib/search/browser/searchIcons.js +0 -104
- package/vscode/src/vs/workbench/contrib/search/browser/searchMessage.js +0 -64
- package/vscode/src/vs/workbench/contrib/search/browser/searchResultsView.js +0 -435
- package/vscode/src/vs/workbench/contrib/search/browser/searchView.js +0 -2175
- package/vscode/src/vs/workbench/contrib/search/browser/searchWidget.js +0 -672
- package/vscode/src/vs/workbench/contrib/search/browser/symbolsQuickAccess.js +0 -232
- package/vscode/src/vs/workbench/contrib/search/common/cacheState.js +0 -85
- package/vscode/src/vs/workbench/contrib/searchEditor/browser/media/searchEditor.css.js +0 -4
- package/vscode/src/vs/workbench/contrib/searchEditor/browser/searchEditor.contribution.js +0 -585
- package/vscode/src/vs/workbench/contrib/searchEditor/browser/searchEditor.js +0 -758
- package/vscode/src/vs/workbench/contrib/searchEditor/browser/searchEditorActions.js +0 -187
- package/vscode/src/vs/workbench/contrib/searchEditor/browser/searchEditorInput.js +0 -318
- package/vscode/src/vs/workbench/contrib/searchEditor/browser/searchEditorModel.js +0 -136
- package/vscode/src/vs/workbench/contrib/searchEditor/browser/searchEditorSerialization.js +0 -291
- package/vscode/src/vs/workbench/contrib/share/browser/share.contribution.js +0 -167
- package/vscode/src/vs/workbench/contrib/share/browser/share.css.js +0 -4
- package/vscode/src/vs/workbench/contrib/share/browser/shareService.js +0 -70
- package/vscode/src/vs/workbench/contrib/snippets/browser/commands/configureSnippets.js +0 -331
- package/vscode/src/vs/workbench/contrib/snippets/browser/commands/insertSnippet.js +0 -127
- package/vscode/src/vs/workbench/contrib/snippets/browser/commands/surroundWithSnippet.js +0 -57
- package/vscode/src/vs/workbench/contrib/snippets/browser/snippetCodeActionProvider.js +0 -154
- package/vscode/src/vs/workbench/contrib/snippets/browser/snippetPicker.js +0 -111
- package/vscode/src/vs/workbench/contrib/snippets/browser/snippets.contribution.js +0 -141
- package/vscode/src/vs/workbench/contrib/speech/browser/speechService.js +0 -271
- package/vscode/src/vs/workbench/contrib/surveys/browser/ces.contribution.js +0 -137
- package/vscode/src/vs/workbench/contrib/surveys/browser/languageSurveys.contribution.js +0 -50
- package/vscode/src/vs/workbench/contrib/surveys/browser/nps.contribution.js +0 -92
- package/vscode/src/vs/workbench/contrib/tasks/browser/abstractTaskService.js +0 -3857
- package/vscode/src/vs/workbench/contrib/tasks/browser/runAutomaticTasks.js +0 -183
- package/vscode/src/vs/workbench/contrib/tasks/browser/task.contribution.js +0 -682
- package/vscode/src/vs/workbench/contrib/tasks/browser/taskQuickPick.js +0 -450
- package/vscode/src/vs/workbench/contrib/tasks/browser/taskService.js +0 -36
- package/vscode/src/vs/workbench/contrib/tasks/browser/taskTerminalStatus.js +0 -189
- package/vscode/src/vs/workbench/contrib/tasks/browser/tasksQuickAccess.js +0 -119
- package/vscode/src/vs/workbench/contrib/tasks/browser/terminalTaskSystem.js +0 -1711
- package/vscode/src/vs/workbench/contrib/tasks/common/jsonSchemaCommon.js +0 -437
- package/vscode/src/vs/workbench/contrib/tasks/common/jsonSchema_v1.js +0 -123
- package/vscode/src/vs/workbench/contrib/tasks/common/jsonSchema_v2.js +0 -899
- package/vscode/src/vs/workbench/contrib/tasks/common/problemCollectors.js +0 -463
- package/vscode/src/vs/workbench/contrib/tasks/common/problemMatcher.js +0 -1794
- package/vscode/src/vs/workbench/contrib/tasks/common/taskConfiguration.js +0 -1579
- package/vscode/src/vs/workbench/contrib/tasks/common/taskSystem.js +0 -14
- package/vscode/src/vs/workbench/contrib/tasks/common/taskTemplates.js +0 -143
- package/vscode/src/vs/workbench/contrib/terminal/browser/baseTerminalBackend.js +0 -114
- package/vscode/src/vs/workbench/contrib/terminal/browser/environmentVariableInfo.js +0 -133
- package/vscode/src/vs/workbench/contrib/terminal/browser/media/scrollbar.css.js +0 -4
- package/vscode/src/vs/workbench/contrib/terminal/browser/media/terminal.css.js +0 -4
- package/vscode/src/vs/workbench/contrib/terminal/browser/media/terminalVoice.css.js +0 -4
- package/vscode/src/vs/workbench/contrib/terminal/browser/media/widgets.css.js +0 -4
- package/vscode/src/vs/workbench/contrib/terminal/browser/media/xterm.css.js +0 -4
- package/vscode/src/vs/workbench/contrib/terminal/browser/remotePty.js +0 -91
- package/vscode/src/vs/workbench/contrib/terminal/browser/remoteTerminalBackend.js +0 -312
- package/vscode/src/vs/workbench/contrib/terminal/browser/terminal.contribution.js +0 -267
- package/vscode/src/vs/workbench/contrib/terminal/browser/terminal.web.contribution.js +0 -11
- package/vscode/src/vs/workbench/contrib/terminal/browser/terminalActions.js +0 -2070
- package/vscode/src/vs/workbench/contrib/terminal/browser/terminalCommands.js +0 -22
- package/vscode/src/vs/workbench/contrib/terminal/browser/terminalConfigHelper.js +0 -221
- package/vscode/src/vs/workbench/contrib/terminal/browser/terminalContextMenu.js +0 -40
- package/vscode/src/vs/workbench/contrib/terminal/browser/terminalEditor.js +0 -193
- package/vscode/src/vs/workbench/contrib/terminal/browser/terminalEditorSerializer.js +0 -40
- package/vscode/src/vs/workbench/contrib/terminal/browser/terminalEditorService.js +0 -239
- package/vscode/src/vs/workbench/contrib/terminal/browser/terminalEscapeSequences.js +0 -12
- package/vscode/src/vs/workbench/contrib/terminal/browser/terminalGroup.js +0 -501
- package/vscode/src/vs/workbench/contrib/terminal/browser/terminalGroupService.js +0 -368
- package/vscode/src/vs/workbench/contrib/terminal/browser/terminalInstance.js +0 -2180
- package/vscode/src/vs/workbench/contrib/terminal/browser/terminalInstanceService.js +0 -81
- package/vscode/src/vs/workbench/contrib/terminal/browser/terminalMainContribution.js +0 -94
- package/vscode/src/vs/workbench/contrib/terminal/browser/terminalMenus.js +0 -840
- package/vscode/src/vs/workbench/contrib/terminal/browser/terminalProcessManager.js +0 -619
- package/vscode/src/vs/workbench/contrib/terminal/browser/terminalProfileQuickpick.js +0 -312
- package/vscode/src/vs/workbench/contrib/terminal/browser/terminalProfileResolverService.js +0 -285
- package/vscode/src/vs/workbench/contrib/terminal/browser/terminalProfileService.js +0 -225
- package/vscode/src/vs/workbench/contrib/terminal/browser/terminalQuickAccess.js +0 -155
- package/vscode/src/vs/workbench/contrib/terminal/browser/terminalRunRecentQuickPick.js +0 -335
- package/vscode/src/vs/workbench/contrib/terminal/browser/terminalService.js +0 -1156
- package/vscode/src/vs/workbench/contrib/terminal/browser/terminalStatusList.js +0 -121
- package/vscode/src/vs/workbench/contrib/terminal/browser/terminalTabbedView.js +0 -439
- package/vscode/src/vs/workbench/contrib/terminal/browser/terminalTabsList.js +0 -690
- package/vscode/src/vs/workbench/contrib/terminal/browser/terminalTooltip.js +0 -84
- package/vscode/src/vs/workbench/contrib/terminal/browser/terminalUri.js +0 -39
- package/vscode/src/vs/workbench/contrib/terminal/browser/terminalView.js +0 -628
- package/vscode/src/vs/workbench/contrib/terminal/browser/terminalVoice.js +0 -199
- package/vscode/src/vs/workbench/contrib/terminal/browser/widgets/terminalHoverWidget.js +0 -91
- package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/lineDataEventAddon.js +0 -56
- package/vscode/src/vs/workbench/contrib/terminal/common/basePty.js +0 -91
- package/vscode/src/vs/workbench/contrib/terminal/common/environmentVariableService.js +0 -96
- package/vscode/src/vs/workbench/contrib/terminal/common/history.js +0 -375
- package/vscode/src/vs/workbench/contrib/terminal/common/remote/remoteTerminalChannel.js +0 -253
- package/vscode/src/vs/workbench/contrib/terminal/common/terminalClipboard.js +0 -98
- package/vscode/src/vs/workbench/contrib/terminal/common/terminalConfiguration.js +0 -1351
- package/vscode/src/vs/workbench/contrib/terminal/common/terminalEnvironment.js +0 -282
- package/vscode/src/vs/workbench/contrib/terminal/common/terminalStrings.js +0 -145
- package/vscode/src/vs/workbench/contrib/terminalContrib/accessibility/browser/bufferContentTracker.js +0 -112
- package/vscode/src/vs/workbench/contrib/terminalContrib/accessibility/browser/terminal.accessibility.contribution.js +0 -389
- package/vscode/src/vs/workbench/contrib/terminalContrib/accessibility/browser/terminalAccessibilityHelp.js +0 -190
- package/vscode/src/vs/workbench/contrib/terminalContrib/accessibility/browser/terminalAccessibleBufferProvider.js +0 -102
- package/vscode/src/vs/workbench/contrib/terminalContrib/accessibility/browser/textAreaSyncAddon.js +0 -106
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/media/terminalChatWidget.css.js +0 -4
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminal.chat.contribution.js +0 -9
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChat.js +0 -84
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +0 -125
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibleView.js +0 -31
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +0 -344
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatController.js +0 -335
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +0 -154
- package/vscode/src/vs/workbench/contrib/terminalContrib/developer/browser/media/developer.css.js +0 -4
- package/vscode/src/vs/workbench/contrib/terminalContrib/developer/browser/terminal.developer.contribution.js +0 -237
- package/vscode/src/vs/workbench/contrib/terminalContrib/environmentChanges/browser/terminal.environmentChanges.contribution.js +0 -114
- package/vscode/src/vs/workbench/contrib/terminalContrib/find/browser/terminal.find.contribution.js +0 -264
- package/vscode/src/vs/workbench/contrib/terminalContrib/find/browser/terminalFindWidget.js +0 -165
- package/vscode/src/vs/workbench/contrib/terminalContrib/find/browser/textInputContextMenu.js +0 -61
- package/vscode/src/vs/workbench/contrib/terminalContrib/highlight/browser/terminal.highlight.contribution.js +0 -36
- package/vscode/src/vs/workbench/contrib/terminalContrib/links/browser/terminal.links.contribution.js +0 -132
- package/vscode/src/vs/workbench/contrib/terminalContrib/links/browser/terminalExternalLinkDetector.js +0 -38
- package/vscode/src/vs/workbench/contrib/terminalContrib/links/browser/terminalLink.js +0 -120
- package/vscode/src/vs/workbench/contrib/terminalContrib/links/browser/terminalLinkDetectorAdapter.js +0 -108
- package/vscode/src/vs/workbench/contrib/terminalContrib/links/browser/terminalLinkHelpers.js +0 -175
- package/vscode/src/vs/workbench/contrib/terminalContrib/links/browser/terminalLinkManager.js +0 -394
- package/vscode/src/vs/workbench/contrib/terminalContrib/links/browser/terminalLinkOpeners.js +0 -240
- package/vscode/src/vs/workbench/contrib/terminalContrib/links/browser/terminalLinkParsing.js +0 -206
- package/vscode/src/vs/workbench/contrib/terminalContrib/links/browser/terminalLinkQuickpick.js +0 -264
- package/vscode/src/vs/workbench/contrib/terminalContrib/links/browser/terminalLinkResolver.js +0 -141
- package/vscode/src/vs/workbench/contrib/terminalContrib/links/browser/terminalLocalLinkDetector.js +0 -220
- package/vscode/src/vs/workbench/contrib/terminalContrib/links/browser/terminalMultiLineLinkDetector.js +0 -182
- package/vscode/src/vs/workbench/contrib/terminalContrib/links/browser/terminalUriLinkDetector.js +0 -119
- package/vscode/src/vs/workbench/contrib/terminalContrib/links/browser/terminalWordLinkDetector.js +0 -94
- package/vscode/src/vs/workbench/contrib/terminalContrib/quickFix/browser/media/terminalQuickFix.css.js +0 -4
- package/vscode/src/vs/workbench/contrib/terminalContrib/quickFix/browser/quickFixAddon.js +0 -451
- package/vscode/src/vs/workbench/contrib/terminalContrib/quickFix/browser/terminal.quickFix.contribution.js +0 -61
- package/vscode/src/vs/workbench/contrib/terminalContrib/quickFix/browser/terminalQuickFixBuiltinActions.js +0 -323
- package/vscode/src/vs/workbench/contrib/terminalContrib/quickFix/browser/terminalQuickFixService.js +0 -168
- package/vscode/src/vs/workbench/contrib/terminalContrib/stickyScroll/browser/media/stickyScroll.css.js +0 -4
- package/vscode/src/vs/workbench/contrib/terminalContrib/stickyScroll/browser/terminal.stickyScroll.contribution.js +0 -5
- package/vscode/src/vs/workbench/contrib/terminalContrib/stickyScroll/browser/terminalStickyScrollColorRegistry.js +0 -35
- package/vscode/src/vs/workbench/contrib/terminalContrib/stickyScroll/browser/terminalStickyScrollContribution.js +0 -91
- package/vscode/src/vs/workbench/contrib/terminalContrib/stickyScroll/browser/terminalStickyScrollOverlay.js +0 -379
- package/vscode/src/vs/workbench/contrib/terminalContrib/suggest/browser/terminal.suggest.contribution.js +0 -181
- package/vscode/src/vs/workbench/contrib/terminalContrib/suggest/browser/terminalSuggestAddon.js +0 -406
- package/vscode/src/vs/workbench/contrib/terminalContrib/typeAhead/browser/terminal.typeAhead.contribution.js +0 -54
- package/vscode/src/vs/workbench/contrib/terminalContrib/typeAhead/browser/terminalTypeAheadAddon.js +0 -1047
- package/vscode/src/vs/workbench/contrib/terminalContrib/zoom/browser/terminal.zoom.contribution.js +0 -130
- package/vscode/src/vs/workbench/contrib/testing/browser/codeCoverageDecorations.js +0 -589
- package/vscode/src/vs/workbench/contrib/testing/browser/explorerProjections/display.js +0 -2
- package/vscode/src/vs/workbench/contrib/testing/browser/explorerProjections/index.js +0 -81
- package/vscode/src/vs/workbench/contrib/testing/browser/explorerProjections/listProjection.js +0 -184
- package/vscode/src/vs/workbench/contrib/testing/browser/explorerProjections/testItemContextOverlay.js +0 -16
- package/vscode/src/vs/workbench/contrib/testing/browser/explorerProjections/testingObjectTree.js +0 -44
- package/vscode/src/vs/workbench/contrib/testing/browser/explorerProjections/testingViewState.js +0 -15
- package/vscode/src/vs/workbench/contrib/testing/browser/explorerProjections/treeProjection.js +0 -222
- package/vscode/src/vs/workbench/contrib/testing/browser/icons.js +0 -182
- package/vscode/src/vs/workbench/contrib/testing/browser/media/testMessageColorizer.css.js +0 -4
- package/vscode/src/vs/workbench/contrib/testing/browser/media/testing.css.js +0 -4
- package/vscode/src/vs/workbench/contrib/testing/browser/testCoverageBars.js +0 -238
- package/vscode/src/vs/workbench/contrib/testing/browser/testCoverageView.js +0 -562
- package/vscode/src/vs/workbench/contrib/testing/browser/testExplorerActions.js +0 -1671
- package/vscode/src/vs/workbench/contrib/testing/browser/testMessageColorizer.js +0 -71
- package/vscode/src/vs/workbench/contrib/testing/browser/testing.contribution.js +0 -224
- package/vscode/src/vs/workbench/contrib/testing/browser/testingConfigurationUi.js +0 -119
- package/vscode/src/vs/workbench/contrib/testing/browser/testingDecorations.js +0 -968
- package/vscode/src/vs/workbench/contrib/testing/browser/testingExplorerFilter.js +0 -234
- package/vscode/src/vs/workbench/contrib/testing/browser/testingExplorerView.js +0 -1239
- package/vscode/src/vs/workbench/contrib/testing/browser/testingOutputPeek.css.js +0 -4
- package/vscode/src/vs/workbench/contrib/testing/browser/testingOutputPeek.js +0 -2108
- package/vscode/src/vs/workbench/contrib/testing/browser/testingProgressUiService.js +0 -140
- package/vscode/src/vs/workbench/contrib/testing/browser/testingViewPaneContainer.js +0 -45
- package/vscode/src/vs/workbench/contrib/testing/browser/theme.js +0 -335
- package/vscode/src/vs/workbench/contrib/testing/common/configuration.js +0 -274
- package/vscode/src/vs/workbench/contrib/testing/common/constants.js +0 -57
- package/vscode/src/vs/workbench/contrib/testing/common/mainThreadTestCollection.js +0 -127
- package/vscode/src/vs/workbench/contrib/testing/common/observableUtils.js +0 -19
- package/vscode/src/vs/workbench/contrib/testing/common/testExclusions.js +0 -46
- package/vscode/src/vs/workbench/contrib/testing/common/testServiceImpl.js +0 -294
- package/vscode/src/vs/workbench/contrib/testing/common/testingContentProvider.js +0 -123
- package/vscode/src/vs/workbench/contrib/testing/common/testingUri.js +0 -65
- package/vscode/src/vs/workbench/contrib/themes/browser/themes.contribution.js +0 -955
- package/vscode/src/vs/workbench/contrib/timeline/browser/media/timelinePane.css.js +0 -4
- package/vscode/src/vs/workbench/contrib/timeline/browser/timeline.contribution.js +0 -118
- package/vscode/src/vs/workbench/contrib/timeline/browser/timelinePane.js +0 -1161
- package/vscode/src/vs/workbench/contrib/timeline/common/timelineService.js +0 -106
- package/vscode/src/vs/workbench/contrib/update/browser/media/releasenoteseditor.css.js +0 -4
- package/vscode/src/vs/workbench/contrib/update/browser/releaseNotesEditor.js +0 -411
- package/vscode/src/vs/workbench/contrib/update/browser/update.contribution.js +0 -252
- package/vscode/src/vs/workbench/contrib/update/browser/update.js +0 -676
- package/vscode/src/vs/workbench/contrib/url/browser/externalUriResolver.js +0 -26
- package/vscode/src/vs/workbench/contrib/url/browser/trustedDomains.js +0 -198
- package/vscode/src/vs/workbench/contrib/url/browser/trustedDomainsFileSystemProvider.js +0 -135
- package/vscode/src/vs/workbench/contrib/url/browser/trustedDomainsValidator.js +0 -203
- package/vscode/src/vs/workbench/contrib/url/browser/url.contribution.js +0 -66
- package/vscode/src/vs/workbench/contrib/userDataSync/browser/userDataSync.contribution.js +0 -110
- package/vscode/src/vs/workbench/contrib/userDataSync/browser/userDataSync.js +0 -1466
- package/vscode/src/vs/workbench/contrib/userDataSync/browser/userDataSyncConflictsView.js +0 -223
- package/vscode/src/vs/workbench/contrib/userDataSync/browser/userDataSyncTrigger.js +0 -59
- package/vscode/src/vs/workbench/contrib/userDataSync/browser/userDataSyncViews.js +0 -858
- package/vscode/src/vs/workbench/contrib/welcomeBanner/browser/welcomeBanner.contribution.js +0 -45
- package/vscode/src/vs/workbench/contrib/welcomeDialog/browser/media/welcomeWidget.css.js +0 -4
- package/vscode/src/vs/workbench/contrib/welcomeDialog/browser/welcomeDialog.contribution.js +0 -102
- package/vscode/src/vs/workbench/contrib/welcomeDialog/browser/welcomeWidget.js +0 -187
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.contribution.js +0 -380
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.js +0 -1526
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedColors.js +0 -47
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedDetailsRenderer.js +0 -261
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedIcons.js +0 -14
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedInput.js +0 -51
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedList.js +0 -95
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/media/gettingStarted.css.js +0 -4
- package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/startupPage.js +0 -216
- package/vscode/src/vs/workbench/contrib/welcomeViews/common/newFile.contribution.js +0 -237
- package/vscode/src/vs/workbench/contrib/welcomeViews/common/viewsWelcome.contribution.js +0 -18
- package/vscode/src/vs/workbench/contrib/welcomeViews/common/viewsWelcomeContribution.js +0 -73
- package/vscode/src/vs/workbench/contrib/welcomeViews/common/viewsWelcomeExtensionPoint.js +0 -97
- package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/editor/editorWalkThrough.js +0 -61
- package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/media/walkThroughPart.css.js +0 -4
- package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/walkThrough.contribution.js +0 -38
- package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/walkThroughActions.js +0 -57
- package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/walkThroughInput.js +0 -113
- package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/browser/walkThroughPart.js +0 -429
- package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/common/walkThroughContentProvider.js +0 -74
- package/vscode/src/vs/workbench/contrib/welcomeWalkthrough/common/walkThroughUtils.js +0 -18
- package/vscode/src/vs/workbench/contrib/workspace/browser/media/workspaceTrustEditor.css.js +0 -4
- package/vscode/src/vs/workbench/contrib/workspace/browser/workspace.contribution.js +0 -976
- package/vscode/src/vs/workbench/contrib/workspace/browser/workspaceTrustEditor.js +0 -1243
- package/vscode/src/vs/workbench/contrib/workspaces/browser/workspaces.contribution.js +0 -132
- package/vscode/src/vs/workbench/services/actions/common/menusExtensionPoint.js +0 -1595
- package/vscode/src/vs/workbench/services/aiRelatedInformation/common/aiRelatedInformationService.js +0 -82
- package/vscode/src/vs/workbench/services/authentication/browser/authenticationExtensionsService.js +0 -369
- package/vscode/src/vs/workbench/services/commands/common/commandService.js +0 -77
- package/vscode/src/vs/workbench/services/configuration/browser/configuration.js +0 -850
- package/vscode/src/vs/workbench/services/configuration/browser/configurationService.js +0 -1199
- package/vscode/src/vs/workbench/services/configuration/common/configurationEditing.js +0 -666
- package/vscode/src/vs/workbench/services/configuration/common/configurationModels.js +0 -119
- package/vscode/src/vs/workbench/services/configuration/common/jsonEditingService.js +0 -120
- package/vscode/src/vs/workbench/services/configurationResolver/browser/baseConfigurationResolverService.js +0 -309
- package/vscode/src/vs/workbench/services/configurationResolver/browser/configurationResolverService.js +0 -27
- package/vscode/src/vs/workbench/services/decorations/browser/decorationsService.js +0 -330
- package/vscode/src/vs/workbench/services/dialogs/browser/abstractFileDialogService.js +0 -377
- package/vscode/src/vs/workbench/services/dialogs/browser/simpleFileDialog.js +0 -1037
- package/vscode/src/vs/workbench/services/dialogs/common/dialogService.js +0 -70
- package/vscode/src/vs/workbench/services/extensionManagement/browser/extensionEnablementService.js +0 -638
- package/vscode/src/vs/workbench/services/extensionManagement/browser/extensionsProfileScannerService.js +0 -22
- package/vscode/src/vs/workbench/services/extensionManagement/browser/webExtensionsScannerService.js +0 -892
- package/vscode/src/vs/workbench/services/extensionManagement/common/extensionFeaturesManagemetService.js +0 -232
- package/vscode/src/vs/workbench/services/extensionManagement/common/extensionManagementChannelClient.js +0 -107
- package/vscode/src/vs/workbench/services/extensionManagement/common/extensionManagementServerService.js +0 -61
- package/vscode/src/vs/workbench/services/extensionManagement/common/extensionManagementService.js +0 -1043
- package/vscode/src/vs/workbench/services/extensionManagement/common/remoteExtensionManagementService.js +0 -56
- package/vscode/src/vs/workbench/services/extensionManagement/common/webExtensionManagementService.js +0 -279
- package/vscode/src/vs/workbench/services/extensionRecommendations/common/extensionIgnoredRecommendationsService.js +0 -82
- package/vscode/src/vs/workbench/services/extensions/browser/extensionService.js +0 -283
- package/vscode/src/vs/workbench/services/extensions/browser/extensionsScannerService.js +0 -31
- package/vscode/src/vs/workbench/services/extensions/browser/webWorkerExtensionHost.js +0 -274
- package/vscode/src/vs/workbench/services/extensions/browser/webWorkerFileSystemProvider.js +0 -50
- package/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.js +0 -1147
- package/vscode/src/vs/workbench/services/extensions/common/extHostCustomers.js +0 -40
- package/vscode/src/vs/workbench/services/extensions/common/extensionDevOptions.js +0 -23
- package/vscode/src/vs/workbench/services/extensions/common/extensionHostManager.js +0 -510
- package/vscode/src/vs/workbench/services/extensions/common/extensionRunningLocationTracker.js +0 -272
- package/vscode/src/vs/workbench/services/extensions/common/extensionStorageMigration.js +0 -56
- package/vscode/src/vs/workbench/services/extensions/common/extensionsProposedApi.js +0 -78
- package/vscode/src/vs/workbench/services/extensions/common/extensionsUtil.js +0 -62
- package/vscode/src/vs/workbench/services/extensions/common/lazyCreateExtensionHostManager.js +0 -159
- package/vscode/src/vs/workbench/services/extensions/common/remoteConsoleUtil.js +0 -47
- package/vscode/src/vs/workbench/services/extensions/common/remoteExtensionHost.js +0 -220
- package/vscode/src/vs/workbench/services/host/browser/browserHostService.js +0 -428
- package/vscode/src/vs/workbench/services/issue/browser/issueService.js +0 -97
- package/vscode/src/vs/workbench/services/keybinding/browser/keybindingService.js +0 -945
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayoutService.js +0 -500
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/_.contribution.js +0 -13
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/cz.win.js +0 -162
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/de-swiss.win.js +0 -162
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/de.darwin.js +0 -125
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/de.linux.js +0 -180
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/de.win.js +0 -162
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/dk.win.js +0 -162
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/dvorak.darwin.js +0 -125
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/en-belgian.win.js +0 -162
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/en-ext.darwin.js +0 -125
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/en-in.win.js +0 -162
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/en-intl.darwin.js +0 -125
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/en-intl.win.js +0 -162
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/en-uk.darwin.js +0 -125
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/en-uk.win.js +0 -162
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/en.darwin.js +0 -133
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/en.linux.js +0 -182
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/en.win.js +0 -167
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/es-latin.win.js +0 -162
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/es.darwin.js +0 -125
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/es.linux.js +0 -180
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/es.win.js +0 -162
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/fr.darwin.js +0 -125
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/fr.linux.js +0 -180
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/fr.win.js +0 -162
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/hu.win.js +0 -162
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/it.darwin.js +0 -125
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/it.win.js +0 -162
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/jp-roman.darwin.js +0 -125
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/jp.darwin.js +0 -125
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/ko.darwin.js +0 -125
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/layout.contribution.darwin.js +0 -17
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/layout.contribution.linux.js +0 -6
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/layout.contribution.win.js +0 -23
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/no.win.js +0 -162
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/pl.darwin.js +0 -125
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/pl.win.js +0 -162
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/pt-br.win.js +0 -162
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/pt.darwin.js +0 -125
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/pt.win.js +0 -162
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/ru.darwin.js +0 -125
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/ru.linux.js +0 -180
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/ru.win.js +0 -162
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/sv.win.js +0 -164
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/thai.win.js +0 -162
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/tr.win.js +0 -162
- package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/zh-hans.darwin.js +0 -125
- package/vscode/src/vs/workbench/services/keybinding/common/keybindingIO.js +0 -72
- package/vscode/src/vs/workbench/services/keybinding/common/keymapInfo.js +0 -108
- package/vscode/src/vs/workbench/services/keybinding/common/macLinuxKeyboardMapper.js +0 -886
- package/vscode/src/vs/workbench/services/keybinding/common/windowsKeyboardMapper.js +0 -350
- package/vscode/src/vs/workbench/services/label/common/labelService.js +0 -435
- package/vscode/src/vs/workbench/services/languageDetection/browser/languageDetectionWorkerServiceImpl.js +0 -259
- package/vscode/src/vs/workbench/services/lifecycle/browser/lifecycleService.js +0 -135
- package/vscode/src/vs/workbench/services/notification/common/notificationService.js +0 -251
- package/vscode/src/vs/workbench/services/preferences/browser/preferencesService.js +0 -551
- package/vscode/src/vs/workbench/services/quickinput/browser/quickInputService.js +0 -37
- package/vscode/src/vs/workbench/services/remote/browser/browserRemoteResourceHandler.js +0 -47
- package/vscode/src/vs/workbench/services/remote/browser/remoteAgentService.js +0 -76
- package/vscode/src/vs/workbench/services/remote/common/abstractRemoteAgentService.js +0 -177
- package/vscode/src/vs/workbench/services/remote/common/remoteAgentEnvironmentChannel.js +0 -52
- package/vscode/src/vs/workbench/services/remote/common/remoteExtensionsScanner.js +0 -71
- package/vscode/src/vs/workbench/services/request/browser/requestService.js +0 -48
- package/vscode/src/vs/workbench/services/search/common/searchService.js +0 -414
- package/vscode/src/vs/workbench/services/storage/browser/storageService.js +0 -290
- package/vscode/src/vs/workbench/services/suggest/browser/media/suggest.css.js +0 -4
- package/vscode/src/vs/workbench/services/suggest/browser/simpleCompletionItem.js +0 -9
- package/vscode/src/vs/workbench/services/suggest/browser/simpleCompletionModel.js +0 -97
- package/vscode/src/vs/workbench/services/suggest/browser/simpleSuggestWidget.js +0 -428
- package/vscode/src/vs/workbench/services/suggest/browser/simpleSuggestWidgetRenderer.js +0 -83
- package/vscode/src/vs/workbench/services/textMate/browser/arrayOperation.js +0 -62
- package/vscode/src/vs/workbench/services/textMate/browser/backgroundTokenization/textMateWorkerTokenizerController.js +0 -160
- package/vscode/src/vs/workbench/services/textMate/browser/backgroundTokenization/threadedBackgroundTokenizerFactory.js +0 -200
- package/vscode/src/vs/workbench/services/textMate/browser/textMateTokenizationFeatureImpl.js +0 -482
- package/vscode/src/vs/workbench/services/textMate/browser/tokenizationSupport/textMateTokenizationSupport.js +0 -72
- package/vscode/src/vs/workbench/services/textMate/browser/tokenizationSupport/tokenizationSupportWithLineLimit.js +0 -39
- package/vscode/src/vs/workbench/services/textMate/common/TMGrammarFactory.js +0 -118
- package/vscode/src/vs/workbench/services/textMate/common/TMScopeRegistry.js +0 -15
- package/vscode/src/vs/workbench/services/textfile/browser/browserTextFileService.js +0 -57
- package/vscode/src/vs/workbench/services/textfile/browser/textFileService.js +0 -652
- package/vscode/src/vs/workbench/services/textfile/common/textFileEditorModelManager.js +0 -402
- package/vscode/src/vs/workbench/services/textfile/common/textFileSaveParticipant.js +0 -62
- package/vscode/src/vs/workbench/services/textmodelResolver/common/textModelResolverService.js +0 -191
- package/vscode/src/vs/workbench/services/textresourceProperties/common/textResourcePropertiesService.js +0 -44
- package/vscode/src/vs/workbench/services/themes/browser/fileIconThemeData.js +0 -372
- package/vscode/src/vs/workbench/services/themes/browser/productIconThemeData.js +0 -305
- package/vscode/src/vs/workbench/services/themes/browser/workbenchThemeService.js +0 -768
- package/vscode/src/vs/workbench/services/themes/common/colorThemeData.js +0 -886
- package/vscode/src/vs/workbench/services/themes/common/colorThemeSchema.js +0 -309
- package/vscode/src/vs/workbench/services/themes/common/fileIconThemeSchema.js +0 -432
- package/vscode/src/vs/workbench/services/themes/common/plistParser.js +0 -439
- package/vscode/src/vs/workbench/services/themes/common/productIconThemeSchema.js +0 -114
- package/vscode/src/vs/workbench/services/themes/common/textMateScopeMatcher.js +0 -120
- package/vscode/src/vs/workbench/services/themes/common/themeCompatibility.js +0 -76
- package/vscode/src/vs/workbench/services/themes/common/themeConfiguration.js +0 -469
- package/vscode/src/vs/workbench/services/themes/common/themeExtensionPoints.js +0 -340
- package/vscode/src/vs/workbench/services/tunnel/browser/tunnelService.js +0 -34
- package/vscode/src/vs/workbench/services/url/browser/urlService.js +0 -48
- package/vscode/src/vs/workbench/services/userDataProfile/browser/extensionsResource.js +0 -340
- package/vscode/src/vs/workbench/services/userDataProfile/browser/globalStateResource.js +0 -145
- package/vscode/src/vs/workbench/services/userDataProfile/browser/iconSelectBox.js +0 -96
- package/vscode/src/vs/workbench/services/userDataProfile/browser/keybindingsResource.js +0 -117
- package/vscode/src/vs/workbench/services/userDataProfile/browser/media/userDataProfileView.css.js +0 -4
- package/vscode/src/vs/workbench/services/userDataProfile/browser/settingsResource.js +0 -138
- package/vscode/src/vs/workbench/services/userDataProfile/browser/snippetsResource.js +0 -153
- package/vscode/src/vs/workbench/services/userDataProfile/browser/tasksResource.js +0 -116
- package/vscode/src/vs/workbench/services/userDataProfile/browser/userDataProfileImportExportService.js +0 -1752
- package/vscode/src/vs/workbench/services/userDataProfile/browser/userDataProfileInit.js +0 -148
- package/vscode/src/vs/workbench/services/userDataProfile/browser/userDataProfileManagement.js +0 -188
- package/vscode/src/vs/workbench/services/userDataSync/browser/userDataSyncInit.js +0 -445
- package/vscode/src/vs/workbench/services/userDataSync/browser/userDataSyncWorkbenchService.js +0 -786
- package/vscode/src/vs/workbench/services/userDataSync/common/userDataSyncUtil.js +0 -46
- package/vscode/src/vs/workbench/services/workingCopy/browser/workingCopyBackupService.js +0 -23
- package/vscode/src/vs/workbench/services/workingCopy/browser/workingCopyBackupTracker.js +0 -43
- package/vscode/src/vs/workbench/services/workingCopy/browser/workingCopyHistoryService.js +0 -28
- package/vscode/src/vs/workbench/services/workingCopy/common/abstractFileWorkingCopyManager.js +0 -87
- package/vscode/src/vs/workbench/services/workingCopy/common/fileWorkingCopyManager.js +0 -384
- package/vscode/src/vs/workbench/services/workingCopy/common/storedFileWorkingCopyManager.js +0 -406
- package/vscode/src/vs/workbench/services/workingCopy/common/untitledFileWorkingCopy.js +0 -142
- package/vscode/src/vs/workbench/services/workingCopy/common/untitledFileWorkingCopyManager.js +0 -127
- package/vscode/src/vs/workbench/services/workingCopy/common/workingCopyBackupService.js +0 -452
- package/vscode/src/vs/workbench/services/workingCopy/common/workingCopyBackupTracker.js +0 -253
- package/vscode/src/vs/workbench/services/workingCopy/common/workingCopyHistoryService.js +0 -616
- package/vscode/src/vs/workbench/services/workingCopy/common/workingCopyHistoryTracker.js +0 -162
- package/vscode/src/vs/workbench/services/workspaces/browser/abstractWorkspaceEditingService.js +0 -335
- package/vscode/src/vs/workbench/services/workspaces/browser/workspaceTrustEditorInput.js +0 -41
- package/vscode/src/vs/workbench/services/workspaces/browser/workspacesService.js +0 -151
- 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 };
|