@codingame/monaco-vscode-extensions-service-override 7.1.0 → 8.0.0
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/package.json +3 -3
- package/vscode/src/vs/platform/extensionManagement/common/extensionManagementCLI.js +44 -77
- package/vscode/src/vs/workbench/api/browser/mainThreadAuthentication.js +19 -33
- package/vscode/src/vs/workbench/api/browser/mainThreadCLICommands.js +3 -5
- package/vscode/src/vs/workbench/api/browser/mainThreadComments.js +17 -5
- package/vscode/src/vs/workbench/api/browser/mainThreadCustomEditors.js +3 -4
- package/vscode/src/vs/workbench/api/browser/mainThreadEditSessionIdentityParticipant.js +2 -7
- package/vscode/src/vs/workbench/api/browser/mainThreadEditorTabs.js +3 -3
- package/vscode/src/vs/workbench/api/browser/mainThreadExtensionService.js +19 -27
- package/vscode/src/vs/workbench/api/browser/mainThreadFileSystemEventService.js +29 -38
- package/vscode/src/vs/workbench/api/browser/mainThreadLanguageFeatures.js +4 -3
- package/vscode/src/vs/workbench/api/browser/mainThreadLanguageModels.js +2 -3
- package/vscode/src/vs/workbench/api/browser/mainThreadMessageService.js +5 -6
- package/vscode/src/vs/workbench/api/browser/mainThreadNotebookSaveParticipant.js +2 -3
- package/vscode/src/vs/workbench/api/browser/mainThreadProgress.js +2 -3
- package/vscode/src/vs/workbench/api/browser/mainThreadSCM.js +21 -36
- package/vscode/src/vs/workbench/api/browser/mainThreadSaveParticipant.js +2 -3
- package/vscode/src/vs/workbench/api/browser/mainThreadTask.js +2 -3
- package/vscode/src/vs/workbench/api/browser/mainThreadTesting.js +19 -13
- package/vscode/src/vs/workbench/api/browser/mainThreadTunnelService.js +4 -6
- package/vscode/src/vs/workbench/api/browser/mainThreadUriOpeners.js +4 -6
- package/vscode/src/vs/workbench/api/browser/mainThreadWebviews.js +2 -8
- package/vscode/src/vs/workbench/api/browser/mainThreadWorkspace.js +14 -26
- package/vscode/src/vs/workbench/services/extensionManagement/browser/extensionBisect.js +29 -36
- package/vscode/src/vs/workbench/services/extensions/browser/webWorkerExtensionHost.js +16 -0
- package/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.js +27 -32
- package/vscode/src/vs/workbench/services/extensions/common/extensionHostManager.js +2 -3
- package/vscode/src/vs/workbench/services/extensions/common/extensionsProposedApi.js +4 -5
- package/vscode/src/vs/workbench/services/extensions/common/extensionsUtil.js +9 -14
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __decorate, __param } from 'vscode/external/tslib/tslib.es6.js';
|
|
2
|
-
import {
|
|
2
|
+
import { localize } from 'vscode/vscode/vs/nls';
|
|
3
3
|
import { URI } from 'vscode/vscode/vs/base/common/uri';
|
|
4
4
|
import { generateUuid } from 'vscode/vscode/vs/base/common/uuid';
|
|
5
5
|
import { isString } from 'vscode/vscode/vs/base/common/types';
|
|
@@ -13,7 +13,6 @@ import { ExtHostContext, MainContext } from 'vscode/vscode/vs/workbench/api/comm
|
|
|
13
13
|
import { IConfigurationResolverService } from 'vscode/vscode/vs/workbench/services/configurationResolver/common/configurationResolver.service';
|
|
14
14
|
import { ErrorNoTelemetry } from 'vscode/vscode/vs/base/common/errors';
|
|
15
15
|
|
|
16
|
-
const _moduleId = "vs/workbench/api/browser/mainThreadTask";
|
|
17
16
|
var TaskExecutionDTO;
|
|
18
17
|
( ((function(TaskExecutionDTO) {
|
|
19
18
|
function from(value) {
|
|
@@ -378,7 +377,7 @@ var TaskDTO;
|
|
|
378
377
|
}
|
|
379
378
|
command.presentation = TaskPresentationOptionsDTO.to(task.presentationOptions);
|
|
380
379
|
const source = TaskSourceDTO.to(task.source, workspace);
|
|
381
|
-
const label = (
|
|
380
|
+
const label = ( localize(5202, '{0}: {1}', source.label, task.name));
|
|
382
381
|
const definition = TaskDefinitionDTO.to(task.definition, executeOnly);
|
|
383
382
|
const id = (CustomExecutionDTO.is(task.execution) && task._id) ? task._id : `${task.source.extensionId}.${definition._key}`;
|
|
384
383
|
const result = ( (new
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { __decorate, __param } from 'vscode/external/tslib/tslib.es6.js';
|
|
2
2
|
import { Event } from 'vscode/vscode/vs/base/common/event';
|
|
3
3
|
import { Disposable, MutableDisposable, DisposableStore, toDisposable } from 'vscode/vscode/vs/base/common/lifecycle';
|
|
4
|
-
import { transaction } from 'vscode/vscode/vs/base/common/observableInternal/base';
|
|
4
|
+
import { transaction, observableValue } from 'vscode/vscode/vs/base/common/observableInternal/base';
|
|
5
5
|
import 'vscode/vscode/vs/base/common/observableInternal/derived';
|
|
6
6
|
import 'vscode/vscode/vs/base/common/observableInternal/autorun';
|
|
7
7
|
import 'vscode/vscode/vs/base/common/observableInternal/utils';
|
|
@@ -11,7 +11,6 @@ import { WellDefinedPrefixTree } from 'vscode/vscode/vs/base/common/prefixTree';
|
|
|
11
11
|
import { URI } from 'vscode/vscode/vs/base/common/uri';
|
|
12
12
|
import { Range } from 'vscode/vscode/vs/editor/common/core/range';
|
|
13
13
|
import { IUriIdentityService } from 'vscode/vscode/vs/platform/uriIdentity/common/uriIdentity.service';
|
|
14
|
-
import { MutableObservableValue } from 'vscode/vscode/vs/workbench/contrib/testing/common/observableValue';
|
|
15
14
|
import { TestCoverage } from 'vscode/vscode/vs/workbench/contrib/testing/common/testCoverage';
|
|
16
15
|
import { TestId } from 'vscode/vscode/vs/workbench/contrib/testing/common/testId';
|
|
17
16
|
import { ITestProfileService } from 'vscode/vscode/vs/workbench/contrib/testing/common/testProfileService.service';
|
|
@@ -36,6 +35,7 @@ let MainThreadTesting = class MainThreadTesting extends Disposable {
|
|
|
36
35
|
provideTestFollowups: (req, token) => this.proxy.$provideTestFollowups(req, token),
|
|
37
36
|
executeTestFollowup: id => this.proxy.$executeTestFollowup(id),
|
|
38
37
|
disposeTestFollowups: ids => this.proxy.$disposeTestFollowups(ids),
|
|
38
|
+
getTestsRelatedToCode: (uri, position, token) => this.proxy.$getTestsRelatedToCode(uri, position, token),
|
|
39
39
|
}));
|
|
40
40
|
this._register(this.testService.onDidCancelTestRun(({ runId }) => {
|
|
41
41
|
this.proxy.$cancelExtensionTestRun(runId);
|
|
@@ -148,27 +148,31 @@ let MainThreadTesting = class MainThreadTesting extends Disposable {
|
|
|
148
148
|
}
|
|
149
149
|
}
|
|
150
150
|
}
|
|
151
|
-
$registerTestController(controllerId,
|
|
151
|
+
$registerTestController(controllerId, _label, _capabilities) {
|
|
152
152
|
const disposable = ( new DisposableStore());
|
|
153
|
-
const label =
|
|
154
|
-
const
|
|
153
|
+
const label = observableValue(`${controllerId}.label`, _label);
|
|
154
|
+
const capabilities = observableValue(`${controllerId}.cap`, _capabilities);
|
|
155
155
|
const controller = {
|
|
156
156
|
id: controllerId,
|
|
157
157
|
label,
|
|
158
|
-
|
|
158
|
+
capabilities,
|
|
159
159
|
syncTests: () => this.proxy.$syncTests(),
|
|
160
160
|
refreshTests: token => this.proxy.$refreshTests(controllerId, token),
|
|
161
161
|
configureRunProfile: id => this.proxy.$configureRunProfile(controllerId, id),
|
|
162
162
|
runTests: (reqs, token) => this.proxy.$runControllerTests(reqs, token),
|
|
163
163
|
startContinuousRun: (reqs, token) => this.proxy.$startContinuousRun(reqs, token),
|
|
164
164
|
expandTest: (testId, levels) => this.proxy.$expandTest(testId, isFinite(levels) ? levels : -1),
|
|
165
|
+
getRelatedCode: (testId, token) => this.proxy.$getCodeRelatedToTest(testId, token).then(locations => ( locations.map(l => ({
|
|
166
|
+
uri: URI.revive(l.uri),
|
|
167
|
+
range: Range.lift(l.range)
|
|
168
|
+
})))),
|
|
165
169
|
};
|
|
166
170
|
disposable.add(toDisposable(() => this.testProfiles.removeProfile(controllerId)));
|
|
167
171
|
disposable.add(this.testService.registerTestController(controllerId, controller));
|
|
168
172
|
this.testProviderRegistrations.set(controllerId, {
|
|
169
173
|
instance: controller,
|
|
170
174
|
label,
|
|
171
|
-
|
|
175
|
+
capabilities,
|
|
172
176
|
disposable
|
|
173
177
|
});
|
|
174
178
|
}
|
|
@@ -177,12 +181,14 @@ let MainThreadTesting = class MainThreadTesting extends Disposable {
|
|
|
177
181
|
if (!controller) {
|
|
178
182
|
return;
|
|
179
183
|
}
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
184
|
+
transaction(tx => {
|
|
185
|
+
if (patch.label !== undefined) {
|
|
186
|
+
controller.label.set(patch.label, tx);
|
|
187
|
+
}
|
|
188
|
+
if (patch.capabilities !== undefined) {
|
|
189
|
+
controller.capabilities.set(patch.capabilities, tx);
|
|
190
|
+
}
|
|
191
|
+
});
|
|
186
192
|
}
|
|
187
193
|
$unregisterTestController(controllerId) {
|
|
188
194
|
this.testProviderRegistrations.get(controllerId)?.disposable.dispose();
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __decorate, __param } from 'vscode/external/tslib/tslib.es6.js';
|
|
2
|
-
import {
|
|
2
|
+
import { localize } from 'vscode/vscode/vs/nls';
|
|
3
3
|
import { ExtHostContext, CandidatePortSource, MainContext } from 'vscode/vscode/vs/workbench/api/common/extHost.protocol';
|
|
4
4
|
import { TunnelDtoConverter } from 'vscode/vscode/vs/workbench/api/common/extHostTunnelService';
|
|
5
5
|
import { extHostNamedCustomer } from '../../services/extensions/common/extHostCustomers.js';
|
|
@@ -19,7 +19,6 @@ import { IContextKeyService } from 'vscode/vscode/vs/platform/contextkey/common/
|
|
|
19
19
|
import { TunnelSource, TunnelCloseReason, makeAddress, forwardedPortsViewEnabled } from 'vscode/vscode/vs/workbench/services/remote/common/tunnelModel';
|
|
20
20
|
import Severity$1 from 'vscode/vscode/vs/base/common/severity';
|
|
21
21
|
|
|
22
|
-
const _moduleId = "vs/workbench/api/browser/mainThreadTunnelService";
|
|
23
22
|
let MainThreadTunnelService = class MainThreadTunnelService extends Disposable {
|
|
24
23
|
constructor(extHostContext, remoteExplorerService, tunnelService, notificationService, configurationService, logService, remoteAgentService, contextKeyService) {
|
|
25
24
|
super();
|
|
@@ -109,15 +108,14 @@ let MainThreadTunnelService = class MainThreadTunnelService extends Disposable {
|
|
|
109
108
|
return TunnelDtoConverter.fromServiceTunnel(tunnel);
|
|
110
109
|
}
|
|
111
110
|
async elevationPrompt(tunnelOptions, tunnel, source) {
|
|
112
|
-
return this.notificationService.prompt(Severity$1.Info, (
|
|
113
|
-
|
|
114
|
-
0,
|
|
111
|
+
return this.notificationService.prompt(Severity$1.Info, ( localize(
|
|
112
|
+
5203,
|
|
115
113
|
"The extension {0} has forwarded port {1}. You'll need to run as superuser to use port {2} locally.",
|
|
116
114
|
source,
|
|
117
115
|
tunnelOptions.remoteAddress.port,
|
|
118
116
|
tunnelOptions.localAddressPort
|
|
119
117
|
)), [{
|
|
120
|
-
label: (
|
|
118
|
+
label: ( localize(5204, "Use Port {0} as Sudo...", tunnel.tunnelRemotePort)),
|
|
121
119
|
run: async () => {
|
|
122
120
|
this.elevateionRetry = true;
|
|
123
121
|
await this.remoteExplorerService.close({ host: tunnel.tunnelRemoteHost, port: tunnel.tunnelRemotePort }, TunnelCloseReason.Other);
|
|
@@ -3,7 +3,7 @@ import { Action } from 'vscode/vscode/vs/base/common/actions';
|
|
|
3
3
|
import { isCancellationError } from 'vscode/vscode/vs/base/common/errors';
|
|
4
4
|
import { Disposable } from 'vscode/vscode/vs/base/common/lifecycle';
|
|
5
5
|
import { Schemas } from 'vscode/vscode/vs/base/common/network';
|
|
6
|
-
import {
|
|
6
|
+
import { localize } from 'vscode/vscode/vs/nls';
|
|
7
7
|
import 'vscode/vscode/vs/platform/notification/common/notification';
|
|
8
8
|
import { INotificationService } from 'vscode/vscode/vs/platform/notification/common/notification.service';
|
|
9
9
|
import { IOpenerService } from 'vscode/vscode/vs/platform/opener/common/opener.service';
|
|
@@ -16,7 +16,6 @@ import { IExtensionService } from 'vscode/vscode/vs/workbench/services/extension
|
|
|
16
16
|
import { extHostNamedCustomer } from '../../services/extensions/common/extHostCustomers.js';
|
|
17
17
|
import Severity$1 from 'vscode/vscode/vs/base/common/severity';
|
|
18
18
|
|
|
19
|
-
const _moduleId = "vs/workbench/api/browser/mainThreadUriOpeners";
|
|
20
19
|
let MainThreadUriOpeners = class MainThreadUriOpeners extends Disposable {
|
|
21
20
|
constructor(context, storageService, externalUriOpenerService, extensionService, openerService, notificationService) {
|
|
22
21
|
super();
|
|
@@ -52,7 +51,7 @@ let MainThreadUriOpeners = class MainThreadUriOpeners extends Disposable {
|
|
|
52
51
|
}
|
|
53
52
|
catch (e) {
|
|
54
53
|
if (!isCancellationError(e)) {
|
|
55
|
-
const openDefaultAction = ( (new Action('default', (
|
|
54
|
+
const openDefaultAction = ( (new Action('default', ( localize(5193, "Open using default opener")), undefined, undefined, async () => {
|
|
56
55
|
await this.openerService.open(uri, {
|
|
57
56
|
allowTunneling: false,
|
|
58
57
|
allowContributedOpeners: defaultExternalUriOpenerId,
|
|
@@ -61,9 +60,8 @@ let MainThreadUriOpeners = class MainThreadUriOpeners extends Disposable {
|
|
|
61
60
|
openDefaultAction.tooltip = ( (uri.toString()));
|
|
62
61
|
this.notificationService.notify({
|
|
63
62
|
severity: Severity$1.Error,
|
|
64
|
-
message: (
|
|
65
|
-
|
|
66
|
-
1,
|
|
63
|
+
message: ( localize(
|
|
64
|
+
5194,
|
|
67
65
|
'Could not open uri with \'{0}\': {1}',
|
|
68
66
|
id,
|
|
69
67
|
(e.toString())
|
|
@@ -4,7 +4,7 @@ import { Schemas } from 'vscode/vscode/vs/base/common/network';
|
|
|
4
4
|
import { isWeb } from 'vscode/vscode/vs/base/common/platform';
|
|
5
5
|
import { escape } from 'vscode/vscode/vs/base/common/strings';
|
|
6
6
|
import { URI } from 'vscode/vscode/vs/base/common/uri';
|
|
7
|
-
import {
|
|
7
|
+
import { localize } from 'vscode/vscode/vs/nls';
|
|
8
8
|
import { IOpenerService } from 'vscode/vscode/vs/platform/opener/common/opener.service';
|
|
9
9
|
import { IProductService } from 'vscode/vscode/vs/platform/product/common/productService.service';
|
|
10
10
|
import { ExtHostContext } from 'vscode/vscode/vs/workbench/api/common/extHost.protocol';
|
|
@@ -12,7 +12,6 @@ import { deserializeWebviewMessage, serializeWebviewMessage } from 'vscode/vscod
|
|
|
12
12
|
import { SerializableObjectWithBuffers } from 'vscode/vscode/vs/workbench/services/extensions/common/proxyIdentifier';
|
|
13
13
|
|
|
14
14
|
var MainThreadWebviews_1;
|
|
15
|
-
const _moduleId = "vs/workbench/api/browser/mainThreadWebviews";
|
|
16
15
|
let MainThreadWebviews = class MainThreadWebviews extends Disposable {
|
|
17
16
|
static { MainThreadWebviews_1 = this; }
|
|
18
17
|
static { this.standardSupportedLinkSchemes = ( (new Set([
|
|
@@ -104,12 +103,7 @@ let MainThreadWebviews = class MainThreadWebviews extends Disposable {
|
|
|
104
103
|
<meta http-equiv="Content-type" content="text/html;charset=UTF-8">
|
|
105
104
|
<meta http-equiv="Content-Security-Policy" content="default-src 'none';">
|
|
106
105
|
</head>
|
|
107
|
-
<body>${(
|
|
108
|
-
_moduleId,
|
|
109
|
-
0,
|
|
110
|
-
"An error occurred while loading view: {0}",
|
|
111
|
-
escape(viewType)
|
|
112
|
-
))}</body>
|
|
106
|
+
<body>${( localize(9922, "An error occurred while loading view: {0}", escape(viewType)))}</body>
|
|
113
107
|
</html>`;
|
|
114
108
|
}
|
|
115
109
|
};
|
|
@@ -3,7 +3,7 @@ import { isCancellationError } from 'vscode/vscode/vs/base/common/errors';
|
|
|
3
3
|
import { DisposableStore } from 'vscode/vscode/vs/base/common/lifecycle';
|
|
4
4
|
import { isNative } from 'vscode/vscode/vs/base/common/platform';
|
|
5
5
|
import { URI } from 'vscode/vscode/vs/base/common/uri';
|
|
6
|
-
import {
|
|
6
|
+
import { localize } from 'vscode/vscode/vs/nls';
|
|
7
7
|
import { IEnvironmentService } from 'vscode/vscode/vs/platform/environment/common/environment.service';
|
|
8
8
|
import { IFileService } from 'vscode/vscode/vs/platform/files/common/files.service';
|
|
9
9
|
import { IInstantiationService } from 'vscode/vscode/vs/platform/instantiation/common/instantiation';
|
|
@@ -25,7 +25,6 @@ import { SideBySideEditor, SaveReason, EditorResourceAccessor } from 'vscode/vsc
|
|
|
25
25
|
import { firstOrDefault, coalesce } from 'vscode/vscode/vs/base/common/arrays';
|
|
26
26
|
import { ICanonicalUriService } from 'vscode/vscode/vs/platform/workspace/common/canonicalUri.service';
|
|
27
27
|
|
|
28
|
-
const _moduleId = "vs/workbench/api/browser/mainThreadWorkspace";
|
|
29
28
|
let MainThreadWorkspace = class MainThreadWorkspace {
|
|
30
29
|
constructor(extHostContext, _searchService, _contextService, _editSessionIdentityService, _canonicalUriService, _editorService, _workspaceEditingService, _notificationService, _requestService, _instantiationService, _labelService, _environmentService, fileService, _workspaceTrustManagementService, _workspaceTrustRequestService) {
|
|
31
30
|
this._searchService = _searchService;
|
|
@@ -76,17 +75,11 @@ let MainThreadWorkspace = class MainThreadWorkspace {
|
|
|
76
75
|
const wantsToDelete = removeCount > 0;
|
|
77
76
|
if (wantsToAdd && !wantsToDelete) {
|
|
78
77
|
if (addCount === 1) {
|
|
79
|
-
message = (
|
|
80
|
-
_moduleId,
|
|
81
|
-
0,
|
|
82
|
-
"Extension '{0}' added 1 folder to the workspace",
|
|
83
|
-
extensionName
|
|
84
|
-
));
|
|
78
|
+
message = ( localize(5195, "Extension '{0}' added 1 folder to the workspace", extensionName));
|
|
85
79
|
}
|
|
86
80
|
else {
|
|
87
|
-
message = (
|
|
88
|
-
|
|
89
|
-
1,
|
|
81
|
+
message = ( localize(
|
|
82
|
+
5196,
|
|
90
83
|
"Extension '{0}' added {1} folders to the workspace",
|
|
91
84
|
extensionName,
|
|
92
85
|
addCount
|
|
@@ -95,17 +88,11 @@ let MainThreadWorkspace = class MainThreadWorkspace {
|
|
|
95
88
|
}
|
|
96
89
|
else if (wantsToDelete && !wantsToAdd) {
|
|
97
90
|
if (removeCount === 1) {
|
|
98
|
-
message = (
|
|
99
|
-
_moduleId,
|
|
100
|
-
2,
|
|
101
|
-
"Extension '{0}' removed 1 folder from the workspace",
|
|
102
|
-
extensionName
|
|
103
|
-
));
|
|
91
|
+
message = ( localize(5197, "Extension '{0}' removed 1 folder from the workspace", extensionName));
|
|
104
92
|
}
|
|
105
93
|
else {
|
|
106
|
-
message = (
|
|
107
|
-
|
|
108
|
-
3,
|
|
94
|
+
message = ( localize(
|
|
95
|
+
5198,
|
|
109
96
|
"Extension '{0}' removed {1} folders from the workspace",
|
|
110
97
|
extensionName,
|
|
111
98
|
removeCount
|
|
@@ -113,12 +100,7 @@ let MainThreadWorkspace = class MainThreadWorkspace {
|
|
|
113
100
|
}
|
|
114
101
|
}
|
|
115
102
|
else {
|
|
116
|
-
message = (
|
|
117
|
-
_moduleId,
|
|
118
|
-
4,
|
|
119
|
-
"Extension '{0}' changed folders of the workspace",
|
|
120
|
-
extensionName
|
|
121
|
-
));
|
|
103
|
+
message = ( localize(5199, "Extension '{0}' changed folders of the workspace", extensionName));
|
|
122
104
|
}
|
|
123
105
|
return message;
|
|
124
106
|
}
|
|
@@ -201,6 +183,12 @@ let MainThreadWorkspace = class MainThreadWorkspace {
|
|
|
201
183
|
$resolveProxy(url) {
|
|
202
184
|
return this._requestService.resolveProxy(url);
|
|
203
185
|
}
|
|
186
|
+
$lookupAuthorization(authInfo) {
|
|
187
|
+
return this._requestService.lookupAuthorization(authInfo);
|
|
188
|
+
}
|
|
189
|
+
$lookupKerberosAuthorization(url) {
|
|
190
|
+
return this._requestService.lookupKerberosAuthorization(url);
|
|
191
|
+
}
|
|
204
192
|
$loadCertificates() {
|
|
205
193
|
return this._requestService.loadCertificates();
|
|
206
194
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __decorate, __param } from 'vscode/external/tslib/tslib.es6.js';
|
|
2
|
-
import {
|
|
2
|
+
import { localize, localize2 } from 'vscode/vscode/vs/nls';
|
|
3
3
|
import { IExtensionManagementService, IGlobalExtensionEnablementService } from 'vscode/vscode/vs/platform/extensionManagement/common/extensionManagement.service';
|
|
4
4
|
import { StorageScope, StorageTarget } from 'vscode/vscode/vs/platform/storage/common/storage';
|
|
5
5
|
import { IStorageService } from 'vscode/vscode/vs/platform/storage/common/storage.service';
|
|
@@ -26,7 +26,6 @@ import { IExtensionBisectService } from 'vscode/vscode/vs/workbench/services/ext
|
|
|
26
26
|
import Severity$1 from 'vscode/vscode/vs/base/common/severity';
|
|
27
27
|
|
|
28
28
|
var ExtensionBisectService_1, ExtensionBisectUi_1;
|
|
29
|
-
const _moduleId = "vs/workbench/services/extensionManagement/browser/extensionBisect";
|
|
30
29
|
class BisectState {
|
|
31
30
|
static fromJSON(raw) {
|
|
32
31
|
if (!raw) {
|
|
@@ -142,11 +141,11 @@ let ExtensionBisectUi = class ExtensionBisectUi {
|
|
|
142
141
|
}
|
|
143
142
|
_showBisectPrompt() {
|
|
144
143
|
const goodPrompt = {
|
|
145
|
-
label: (
|
|
144
|
+
label: ( localize(1578, "I can't reproduce")),
|
|
146
145
|
run: () => this._commandService.executeCommand('extension.bisect.next', false)
|
|
147
146
|
};
|
|
148
147
|
const badPrompt = {
|
|
149
|
-
label: (
|
|
148
|
+
label: ( localize(1579, "I can reproduce")),
|
|
150
149
|
run: () => this._commandService.executeCommand('extension.bisect.next', true)
|
|
151
150
|
};
|
|
152
151
|
const stop = {
|
|
@@ -154,14 +153,12 @@ let ExtensionBisectUi = class ExtensionBisectUi {
|
|
|
154
153
|
run: () => this._commandService.executeCommand('extension.bisect.stop')
|
|
155
154
|
};
|
|
156
155
|
const message = this._extensionBisectService.disabledCount === 1
|
|
157
|
-
? (
|
|
158
|
-
|
|
159
|
-
2,
|
|
156
|
+
? ( localize(
|
|
157
|
+
1580,
|
|
160
158
|
"Extension Bisect is active and has disabled 1 extension. Check if you can still reproduce the problem and proceed by selecting from these options."
|
|
161
159
|
))
|
|
162
|
-
: (
|
|
163
|
-
|
|
164
|
-
3,
|
|
160
|
+
: ( localize(
|
|
161
|
+
1581,
|
|
165
162
|
"Extension Bisect is active and has disabled {0} extensions. Check if you can still reproduce the problem and proceed by selecting from these options.",
|
|
166
163
|
this._extensionBisectService.disabledCount
|
|
167
164
|
));
|
|
@@ -179,7 +176,7 @@ registerAction2(class extends Action2 {
|
|
|
179
176
|
constructor() {
|
|
180
177
|
super({
|
|
181
178
|
id: 'extension.bisect.start',
|
|
182
|
-
title: (
|
|
179
|
+
title: ( localize2(1582, 'Start Extension Bisect')),
|
|
183
180
|
category: Categories.Help,
|
|
184
181
|
f1: true,
|
|
185
182
|
precondition: ( (ExtensionBisectUi.ctxIsBisectActive.negate())),
|
|
@@ -199,14 +196,13 @@ registerAction2(class extends Action2 {
|
|
|
199
196
|
const extensionsBisect = accessor.get(IExtensionBisectService);
|
|
200
197
|
const extensions = (await extensionManagement.getInstalled(ExtensionType.User)).filter(ext => extensionEnablementService.isEnabled(ext));
|
|
201
198
|
const res = await dialogService.confirm({
|
|
202
|
-
message: (
|
|
203
|
-
detail: (
|
|
204
|
-
|
|
205
|
-
6,
|
|
199
|
+
message: ( localize(1583, "Extension Bisect")),
|
|
200
|
+
detail: ( localize(
|
|
201
|
+
1584,
|
|
206
202
|
"Extension Bisect will use binary search to find an extension that causes a problem. During the process the window reloads repeatedly (~{0} times). Each time you must confirm if you are still seeing problems.",
|
|
207
203
|
2 + Math.log2(extensions.length) | 0
|
|
208
204
|
)),
|
|
209
|
-
primaryButton: (
|
|
205
|
+
primaryButton: ( localize(1585, "&&Start Extension Bisect"))
|
|
210
206
|
});
|
|
211
207
|
if (res.confirmed) {
|
|
212
208
|
await extensionsBisect.start(extensions);
|
|
@@ -218,7 +214,7 @@ registerAction2(class extends Action2 {
|
|
|
218
214
|
constructor() {
|
|
219
215
|
super({
|
|
220
216
|
id: 'extension.bisect.next',
|
|
221
|
-
title: (
|
|
217
|
+
title: ( localize2(1586, 'Continue Extension Bisect')),
|
|
222
218
|
category: Categories.Help,
|
|
223
219
|
f1: true,
|
|
224
220
|
precondition: ExtensionBisectUi.ctxIsBisectActive
|
|
@@ -252,9 +248,8 @@ registerAction2(class extends Action2 {
|
|
|
252
248
|
return;
|
|
253
249
|
}
|
|
254
250
|
if (done.bad) {
|
|
255
|
-
await dialogService.info((
|
|
256
|
-
|
|
257
|
-
10,
|
|
251
|
+
await dialogService.info(( localize(1587, "Extension Bisect")), ( localize(
|
|
252
|
+
1588,
|
|
258
253
|
"Extension Bisect is done but no extension has been identified. This might be a problem with {0}.",
|
|
259
254
|
productService.nameShort
|
|
260
255
|
)));
|
|
@@ -262,16 +257,15 @@ registerAction2(class extends Action2 {
|
|
|
262
257
|
else {
|
|
263
258
|
const res = await dialogService.confirm({
|
|
264
259
|
type: Severity$1.Info,
|
|
265
|
-
message: (
|
|
266
|
-
primaryButton: (
|
|
267
|
-
cancelButton: (
|
|
268
|
-
detail: (
|
|
269
|
-
|
|
270
|
-
13,
|
|
260
|
+
message: ( localize(1588, "Extension Bisect")),
|
|
261
|
+
primaryButton: ( localize(1589, "&&Report Issue & Continue")),
|
|
262
|
+
cancelButton: ( localize(1590, "Continue")),
|
|
263
|
+
detail: ( localize(
|
|
264
|
+
1591,
|
|
271
265
|
"Extension Bisect is done and has identified {0} as the extension causing the problem.",
|
|
272
266
|
done.id
|
|
273
267
|
)),
|
|
274
|
-
checkbox: { label: (
|
|
268
|
+
checkbox: { label: ( localize(1592, "Keep this extension disabled")), checked: true }
|
|
275
269
|
});
|
|
276
270
|
if (res.checkboxChecked) {
|
|
277
271
|
await extensionEnablementService.disableExtension({ id: done.id }, undefined);
|
|
@@ -286,29 +280,28 @@ registerAction2(class extends Action2 {
|
|
|
286
280
|
async _checkForBad(dialogService, bisectService) {
|
|
287
281
|
const { result } = await dialogService.prompt({
|
|
288
282
|
type: Severity$1.Info,
|
|
289
|
-
message: (
|
|
290
|
-
detail: (
|
|
291
|
-
|
|
292
|
-
16,
|
|
283
|
+
message: ( localize(1593, "Extension Bisect")),
|
|
284
|
+
detail: ( localize(
|
|
285
|
+
1594,
|
|
293
286
|
"Extension Bisect is active and has disabled {0} extensions. Check if you can still reproduce the problem and proceed by selecting from these options.",
|
|
294
287
|
bisectService.disabledCount
|
|
295
288
|
)),
|
|
296
289
|
buttons: [
|
|
297
290
|
{
|
|
298
|
-
label: (
|
|
291
|
+
label: ( localize(1595, "I ca&&n't reproduce")),
|
|
299
292
|
run: () => false
|
|
300
293
|
},
|
|
301
294
|
{
|
|
302
|
-
label: (
|
|
295
|
+
label: ( localize(1596, "I can &&reproduce")),
|
|
303
296
|
run: () => true
|
|
304
297
|
},
|
|
305
298
|
{
|
|
306
|
-
label: (
|
|
299
|
+
label: ( localize(1597, "&&Stop Bisect")),
|
|
307
300
|
run: () => undefined
|
|
308
301
|
}
|
|
309
302
|
],
|
|
310
303
|
cancelButton: {
|
|
311
|
-
label: (
|
|
304
|
+
label: ( localize(1598, "&&Cancel Bisect")),
|
|
312
305
|
run: () => null
|
|
313
306
|
}
|
|
314
307
|
});
|
|
@@ -319,7 +312,7 @@ registerAction2(class extends Action2 {
|
|
|
319
312
|
constructor() {
|
|
320
313
|
super({
|
|
321
314
|
id: 'extension.bisect.stop',
|
|
322
|
-
title: (
|
|
315
|
+
title: ( localize2(1599, 'Stop Extension Bisect')),
|
|
323
316
|
category: Categories.Help,
|
|
324
317
|
f1: true,
|
|
325
318
|
precondition: ExtensionBisectUi.ctxIsBisectActive
|
|
@@ -140,6 +140,22 @@ let WebWorkerExtensionHost = class WebWorkerExtensionHost extends Disposable {
|
|
|
140
140
|
err.stack = stack;
|
|
141
141
|
return rejectBarrier(ExtensionHostExitCode.UnexpectedError, err);
|
|
142
142
|
}
|
|
143
|
+
if (event.data.type === 'vscode.bootstrap.nls') {
|
|
144
|
+
const factoryModuleId = 'vs/base/worker/workerMain.js';
|
|
145
|
+
const baseUrl = require.toUrl(factoryModuleId).slice(0, -factoryModuleId.length);
|
|
146
|
+
iframe.contentWindow.postMessage({
|
|
147
|
+
type: event.data.type,
|
|
148
|
+
data: {
|
|
149
|
+
baseUrl,
|
|
150
|
+
workerUrl: require.toUrl(factoryModuleId),
|
|
151
|
+
nls: {
|
|
152
|
+
messages: globalThis._VSCODE_NLS_MESSAGES,
|
|
153
|
+
language: globalThis._VSCODE_NLS_LANGUAGE
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}, '*');
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
143
159
|
const { data } = event.data;
|
|
144
160
|
if (barrier.isOpen() || !(data instanceof MessagePort)) {
|
|
145
161
|
console.warn('UNEXPECTED message', event);
|
|
@@ -10,7 +10,7 @@ import { isCI } from 'vscode/vscode/vs/base/common/platform';
|
|
|
10
10
|
import { isEqualOrParent } from 'vscode/vscode/vs/base/common/resources';
|
|
11
11
|
import { StopWatch } from 'vscode/vscode/vs/base/common/stopwatch';
|
|
12
12
|
import { isDefined } from 'vscode/vscode/vs/base/common/types';
|
|
13
|
-
import {
|
|
13
|
+
import { localize } from 'vscode/vscode/vs/nls';
|
|
14
14
|
import { IConfigurationService } from 'vscode/vscode/vs/platform/configuration/common/configuration.service';
|
|
15
15
|
import { IDialogService } from 'vscode/vscode/vs/platform/dialogs/common/dialogs.service';
|
|
16
16
|
import { InstallOperation } from 'vscode/vscode/vs/platform/extensionManagement/common/extensionManagement';
|
|
@@ -45,12 +45,12 @@ import { ExtensionsRegistry, ExtensionMessageCollector } from 'vscode/vscode/vs/
|
|
|
45
45
|
import { LazyCreateExtensionHostManager } from './lazyCreateExtensionHostManager.js';
|
|
46
46
|
import { ResponsiveState } from 'vscode/vscode/vs/workbench/services/extensions/common/rpcProtocol';
|
|
47
47
|
import { checkGlobFileExists, checkActivateWorkspaceContainsExtension } from 'vscode/vscode/vs/workbench/services/extensions/common/workspaceContains';
|
|
48
|
+
import { WillShutdownJoinerOrder } from 'vscode/vscode/vs/workbench/services/lifecycle/common/lifecycle';
|
|
48
49
|
import { ILifecycleService } from 'vscode/vscode/vs/workbench/services/lifecycle/common/lifecycle.service';
|
|
49
50
|
import { IRemoteAgentService } from 'vscode/vscode/vs/workbench/services/remote/common/remoteAgentService.service';
|
|
50
51
|
import Severity$1 from 'vscode/vscode/vs/base/common/severity';
|
|
51
52
|
|
|
52
53
|
var AbstractExtensionService_1;
|
|
53
|
-
const _moduleId = "vs/workbench/services/extensions/common/abstractExtensionService";
|
|
54
54
|
const hasOwnProperty = Object.hasOwnProperty;
|
|
55
55
|
const NO_OP_VOID_PROMISE = Promise.resolve(undefined);
|
|
56
56
|
let AbstractExtensionService = AbstractExtensionService_1 = class AbstractExtensionService extends Disposable {
|
|
@@ -165,6 +165,15 @@ let AbstractExtensionService = AbstractExtensionService_1 = class AbstractExtens
|
|
|
165
165
|
this._handleDeltaExtensions(( (new DeltaExtensionsQueueItem([], [event.identifier.id]))));
|
|
166
166
|
}
|
|
167
167
|
}));
|
|
168
|
+
this._register(this._lifecycleService.onWillShutdown(event => {
|
|
169
|
+
if (this._remoteAgentService.getConnection()) {
|
|
170
|
+
event.join(() => this._remoteAgentService.endConnection(), {
|
|
171
|
+
id: 'join.disconnectRemote',
|
|
172
|
+
label: ( localize(1566, "Disconnect Remote Agent")),
|
|
173
|
+
order: WillShutdownJoinerOrder.Last
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
}));
|
|
168
177
|
this._register(this._lifecycleService.onDidShutdown(() => {
|
|
169
178
|
const connection = this._remoteAgentService.getConnection();
|
|
170
179
|
connection?.dispose();
|
|
@@ -236,9 +245,8 @@ let AbstractExtensionService = AbstractExtensionService_1 = class AbstractExtens
|
|
|
236
245
|
if (result.removedDueToLooping.length > 0) {
|
|
237
246
|
this._notificationService.notify({
|
|
238
247
|
severity: Severity$1.Error,
|
|
239
|
-
message: (
|
|
240
|
-
|
|
241
|
-
0,
|
|
248
|
+
message: ( localize(
|
|
249
|
+
1567,
|
|
242
250
|
"The following extensions contain dependency loops and have been disabled: {0}",
|
|
243
251
|
( (result.removedDueToLooping.map(e => `'${e.identifier.value}'`))).join(', ')
|
|
244
252
|
))
|
|
@@ -391,9 +399,8 @@ let AbstractExtensionService = AbstractExtensionService_1 = class AbstractExtens
|
|
|
391
399
|
if (result.removedDueToLooping.length > 0) {
|
|
392
400
|
this._notificationService.notify({
|
|
393
401
|
severity: Severity$1.Error,
|
|
394
|
-
message: (
|
|
395
|
-
|
|
396
|
-
0,
|
|
402
|
+
message: ( localize(
|
|
403
|
+
1567,
|
|
397
404
|
"The following extensions contain dependency loops and have been disabled: {0}",
|
|
398
405
|
( (result.removedDueToLooping.map(e => `'${e.identifier.value}'`))).join(', ')
|
|
399
406
|
))
|
|
@@ -407,9 +414,8 @@ let AbstractExtensionService = AbstractExtensionService_1 = class AbstractExtens
|
|
|
407
414
|
}
|
|
408
415
|
const extensionHostManager = this.findTestExtensionHost(this._environmentService.extensionTestsLocationURI);
|
|
409
416
|
if (!extensionHostManager) {
|
|
410
|
-
const msg = (
|
|
411
|
-
|
|
412
|
-
1,
|
|
417
|
+
const msg = ( localize(
|
|
418
|
+
1568,
|
|
413
419
|
"No extension host found that can launch the test runner at {0}.",
|
|
414
420
|
(this._environmentService.extensionTestsLocationURI.toString())
|
|
415
421
|
));
|
|
@@ -575,7 +581,7 @@ let AbstractExtensionService = AbstractExtensionService_1 = class AbstractExtens
|
|
|
575
581
|
vetoReasons.add(reason);
|
|
576
582
|
}
|
|
577
583
|
}).catch(error => {
|
|
578
|
-
vetoReasons.add((
|
|
584
|
+
vetoReasons.add(( localize(1569, "{0} (Error: {1})", reason, toErrorMessage(error))));
|
|
579
585
|
});
|
|
580
586
|
}
|
|
581
587
|
}
|
|
@@ -588,16 +594,10 @@ let AbstractExtensionService = AbstractExtensionService_1 = class AbstractExtens
|
|
|
588
594
|
if (!auto) {
|
|
589
595
|
const vetoReasonsArray = Array.from(vetoReasons);
|
|
590
596
|
this._logService.warn(`Extension host was not stopped because of veto (stop reason: ${reason}, veto reason: ${vetoReasonsArray.join(', ')})`);
|
|
591
|
-
await this._dialogService.warn((
|
|
592
|
-
(
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
"The reason for blocking the operation: {0}",
|
|
596
|
-
vetoReasonsArray[0]
|
|
597
|
-
)) :
|
|
598
|
-
( localizeWithPath(
|
|
599
|
-
_moduleId,
|
|
600
|
-
5,
|
|
597
|
+
await this._dialogService.warn(( localize(1570, "The following operation was blocked: {0}", reason)), vetoReasonsArray.length === 1 ?
|
|
598
|
+
( localize(1571, "The reason for blocking the operation: {0}", vetoReasonsArray[0])) :
|
|
599
|
+
( localize(
|
|
600
|
+
1572,
|
|
601
601
|
"The reasons for blocking the operation:\n- {0}",
|
|
602
602
|
vetoReasonsArray.join('\n -')
|
|
603
603
|
)));
|
|
@@ -695,20 +695,15 @@ let AbstractExtensionService = AbstractExtensionService_1 = class AbstractExtens
|
|
|
695
695
|
this._remoteCrashTracker.registerCrash();
|
|
696
696
|
if (this._remoteCrashTracker.shouldAutomaticallyRestart()) {
|
|
697
697
|
this._logService.info(`Automatically restarting the remote extension host.`);
|
|
698
|
-
this._notificationService.status((
|
|
699
|
-
_moduleId,
|
|
700
|
-
6,
|
|
701
|
-
"The remote extension host terminated unexpectedly. Restarting..."
|
|
702
|
-
)), { hideAfter: 5000 });
|
|
698
|
+
this._notificationService.status(( localize(1573, "The remote extension host terminated unexpectedly. Restarting...")), { hideAfter: 5000 });
|
|
703
699
|
this._startExtensionHostsIfNecessary(false, Array.from(( (this._allRequestedActivateEvents.keys()))));
|
|
704
700
|
}
|
|
705
701
|
else {
|
|
706
|
-
this._notificationService.prompt(Severity$1.Error, (
|
|
707
|
-
|
|
708
|
-
7,
|
|
702
|
+
this._notificationService.prompt(Severity$1.Error, ( localize(
|
|
703
|
+
1574,
|
|
709
704
|
"Remote Extension host terminated unexpectedly 3 times within the last 5 minutes."
|
|
710
705
|
)), [{
|
|
711
|
-
label: (
|
|
706
|
+
label: ( localize(1575, "Restart Remote Extension Host")),
|
|
712
707
|
run: () => {
|
|
713
708
|
this._startExtensionHostsIfNecessary(false, Array.from(( (this._allRequestedActivateEvents.keys()))));
|
|
714
709
|
}
|
|
@@ -1185,7 +1180,7 @@ class ActivationFeatureMarkdowneRenderer extends Disposable {
|
|
|
1185
1180
|
}
|
|
1186
1181
|
( (Registry.as(Extensions.ExtensionFeaturesRegistry))).registerExtensionFeature({
|
|
1187
1182
|
id: 'activationEvents',
|
|
1188
|
-
label: (
|
|
1183
|
+
label: ( localize(1576, "Activation Events")),
|
|
1189
1184
|
access: {
|
|
1190
1185
|
canToggle: false
|
|
1191
1186
|
},
|