@codingame/monaco-vscode-extensions-service-override 5.3.0 → 6.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/extensions.js +4 -4
- package/package.json +3 -3
- package/vscode/src/vs/base/common/console.js +2 -0
- package/vscode/src/vs/platform/extensionManagement/common/extensionManagementCLI.js +6 -6
- package/vscode/src/vs/platform/extensionResourceLoader/browser/extensionResourceLoaderService.js +1 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadAuthentication.js +35 -21
- package/vscode/src/vs/workbench/api/browser/mainThreadBulkEdits.js +2 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadChatAgents2.js +72 -8
- package/vscode/src/vs/workbench/api/browser/mainThreadChatVariables.js +3 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadComments.js +25 -16
- package/vscode/src/vs/workbench/api/browser/mainThreadConfiguration.js +11 -9
- package/vscode/src/vs/workbench/api/browser/mainThreadCustomEditors.js +22 -14
- package/vscode/src/vs/workbench/api/browser/mainThreadDebugService.js +18 -7
- package/vscode/src/vs/workbench/api/browser/mainThreadDocuments.js +3 -2
- package/vscode/src/vs/workbench/api/browser/mainThreadDocumentsAndEditors.js +12 -6
- package/vscode/src/vs/workbench/api/browser/mainThreadEditor.js +14 -16
- package/vscode/src/vs/workbench/api/browser/mainThreadEditorTabs.js +38 -38
- package/vscode/src/vs/workbench/api/browser/mainThreadEmbeddings.js +73 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadExtensionService.js +9 -7
- package/vscode/src/vs/workbench/api/browser/mainThreadFileSystem.js +5 -5
- package/vscode/src/vs/workbench/api/browser/mainThreadFileSystemEventService.js +18 -15
- package/vscode/src/vs/workbench/api/browser/mainThreadLanguageFeatures.js +28 -26
- package/vscode/src/vs/workbench/api/browser/mainThreadLanguageModels.js +8 -16
- package/vscode/src/vs/workbench/api/browser/mainThreadManagedSockets.js +4 -2
- package/vscode/src/vs/workbench/api/browser/mainThreadNotebookDto.js +2 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadProgress.js +3 -2
- package/vscode/src/vs/workbench/api/browser/mainThreadSCM.js +42 -14
- package/vscode/src/vs/workbench/api/browser/mainThreadSearch.js +6 -17
- package/vscode/src/vs/workbench/api/browser/mainThreadSpeech.js +34 -0
- package/vscode/src/vs/workbench/api/browser/mainThreadStatusBar.js +4 -3
- package/vscode/src/vs/workbench/api/browser/mainThreadStorage.js +2 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadTask.js +16 -16
- package/vscode/src/vs/workbench/api/browser/mainThreadTelemetry.js +2 -2
- package/vscode/src/vs/workbench/api/browser/mainThreadTerminalService.js +4 -3
- package/vscode/src/vs/workbench/api/browser/mainThreadTerminalShellIntegration.js +5 -4
- package/vscode/src/vs/workbench/api/browser/mainThreadTesting.js +8 -3
- package/vscode/src/vs/workbench/api/browser/mainThreadTunnelService.js +6 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadWebviewPanels.js +3 -3
- package/vscode/src/vs/workbench/api/browser/mainThreadWorkspace.js +4 -4
- package/vscode/src/vs/workbench/contrib/customEditor/common/customTextEditorModel.js +2 -1
- package/vscode/src/vs/workbench/contrib/externalUriOpener/common/contributedOpeners.js +2 -1
- package/vscode/src/vs/workbench/services/extensionManagement/browser/extensionBisect.js +12 -10
- package/vscode/src/vs/workbench/services/extensions/browser/extensionService.js +27 -21
- package/vscode/src/vs/workbench/services/extensions/browser/webWorkerExtensionHost.js +15 -11
- package/vscode/src/vs/workbench/services/extensions/browser/webWorkerFileSystemProvider.js +2 -2
- package/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.js +19 -16
- package/vscode/src/vs/workbench/services/extensions/common/extensionHostManager.js +7 -6
- package/vscode/src/vs/workbench/services/extensions/common/extensionRunningLocationTracker.js +12 -12
- package/vscode/src/vs/workbench/services/extensions/common/extensionStorageMigration.js +3 -2
- package/vscode/src/vs/workbench/services/extensions/common/extensionsUtil.js +15 -2
- package/vscode/src/vs/workbench/services/extensions/common/lazyCreateExtensionHostManager.js +2 -2
- package/vscode/src/vs/workbench/services/extensions/common/remoteExtensionHost.js +10 -7
- package/vscode/src/vs/workbench/api/browser/mainThreadInlineChat.js +0 -72
package/vscode/src/vs/workbench/services/extensions/common/extensionRunningLocationTracker.js
CHANGED
|
@@ -4,7 +4,7 @@ import { IConfigurationService } from 'vscode/vscode/vs/platform/configuration/c
|
|
|
4
4
|
import { ExtensionIdentifierMap } from 'vscode/vscode/vs/platform/extensions/common/extensions';
|
|
5
5
|
import { ILogService } from 'vscode/vscode/vs/platform/log/common/log.service';
|
|
6
6
|
import { IWorkbenchEnvironmentService } from 'vscode/vscode/vs/workbench/services/environment/common/environmentService.service';
|
|
7
|
-
import { determineExtensionHostKinds } from 'vscode/vscode/vs/workbench/services/extensions/common/extensionHostKind';
|
|
7
|
+
import { determineExtensionHostKinds, ExtensionHostKind, ExtensionRunningPreference } from 'vscode/vscode/vs/workbench/services/extensions/common/extensionHostKind';
|
|
8
8
|
import { IExtensionManifestPropertiesService } from 'vscode/vscode/vs/workbench/services/extensions/common/extensionManifestPropertiesService.service';
|
|
9
9
|
import { RemoteRunningLocation, LocalProcessRunningLocation, LocalWebWorkerRunningLocation } from 'vscode/vscode/vs/workbench/services/extensions/common/extensionRunningLocation';
|
|
10
10
|
|
|
@@ -171,29 +171,29 @@ let ExtensionRunningLocationTracker = class ExtensionRunningLocationTracker {
|
|
|
171
171
|
const localWebWorkerExtensions = [];
|
|
172
172
|
for (const [extensionIdKey, extensionHostKind] of extensionHostKinds) {
|
|
173
173
|
let runningLocation = null;
|
|
174
|
-
if (extensionHostKind ===
|
|
174
|
+
if (extensionHostKind === ExtensionHostKind.LocalProcess) {
|
|
175
175
|
const extensionDescription = extensions.get(extensionIdKey);
|
|
176
176
|
if (extensionDescription) {
|
|
177
177
|
localProcessExtensions.push(extensionDescription);
|
|
178
178
|
}
|
|
179
179
|
}
|
|
180
|
-
else if (extensionHostKind ===
|
|
180
|
+
else if (extensionHostKind === ExtensionHostKind.LocalWebWorker) {
|
|
181
181
|
const extensionDescription = extensions.get(extensionIdKey);
|
|
182
182
|
if (extensionDescription) {
|
|
183
183
|
localWebWorkerExtensions.push(extensionDescription);
|
|
184
184
|
}
|
|
185
185
|
}
|
|
186
|
-
else if (extensionHostKind ===
|
|
186
|
+
else if (extensionHostKind === ExtensionHostKind.Remote) {
|
|
187
187
|
runningLocation = ( new RemoteRunningLocation());
|
|
188
188
|
}
|
|
189
189
|
result.set(extensionIdKey, runningLocation);
|
|
190
190
|
}
|
|
191
|
-
const { affinities, maxAffinity } = this._computeAffinity(localProcessExtensions,
|
|
191
|
+
const { affinities, maxAffinity } = this._computeAffinity(localProcessExtensions, ExtensionHostKind.LocalProcess, isInitialAllocation);
|
|
192
192
|
for (const extension of localProcessExtensions) {
|
|
193
193
|
const affinity = affinities.get(extension.identifier) || 0;
|
|
194
194
|
result.set(extension.identifier, ( new LocalProcessRunningLocation(affinity)));
|
|
195
195
|
}
|
|
196
|
-
const { affinities: localWebWorkerAffinities, maxAffinity: maxLocalWebWorkerAffinity } = this._computeAffinity(localWebWorkerExtensions,
|
|
196
|
+
const { affinities: localWebWorkerAffinities, maxAffinity: maxLocalWebWorkerAffinity } = this._computeAffinity(localWebWorkerExtensions, ExtensionHostKind.LocalWebWorker, isInitialAllocation);
|
|
197
197
|
for (const extension of localWebWorkerExtensions) {
|
|
198
198
|
const affinity = localWebWorkerAffinities.get(extension.identifier) || 0;
|
|
199
199
|
result.set(extension.identifier, ( new LocalWebWorkerRunningLocation(affinity)));
|
|
@@ -227,25 +227,25 @@ let ExtensionRunningLocationTracker = class ExtensionRunningLocationTracker {
|
|
|
227
227
|
for (const extension of toAdd) {
|
|
228
228
|
const extensionKind = this.readExtensionKinds(extension);
|
|
229
229
|
const isRemote = extension.extensionLocation.scheme === Schemas.vscodeRemote;
|
|
230
|
-
const extensionHostKind = this._extensionHostKindPicker.pickExtensionHostKind(extension.identifier, extensionKind, !isRemote, isRemote,
|
|
230
|
+
const extensionHostKind = this._extensionHostKindPicker.pickExtensionHostKind(extension.identifier, extensionKind, !isRemote, isRemote, ExtensionRunningPreference.None);
|
|
231
231
|
let runningLocation = null;
|
|
232
|
-
if (extensionHostKind ===
|
|
232
|
+
if (extensionHostKind === ExtensionHostKind.LocalProcess) {
|
|
233
233
|
localProcessExtensions.push(extension);
|
|
234
234
|
}
|
|
235
|
-
else if (extensionHostKind ===
|
|
235
|
+
else if (extensionHostKind === ExtensionHostKind.LocalWebWorker) {
|
|
236
236
|
localWebWorkerExtensions.push(extension);
|
|
237
237
|
}
|
|
238
|
-
else if (extensionHostKind ===
|
|
238
|
+
else if (extensionHostKind === ExtensionHostKind.Remote) {
|
|
239
239
|
runningLocation = ( new RemoteRunningLocation());
|
|
240
240
|
}
|
|
241
241
|
this._runningLocation.set(extension.identifier, runningLocation);
|
|
242
242
|
}
|
|
243
|
-
const { affinities } = this._computeAffinity(localProcessExtensions,
|
|
243
|
+
const { affinities } = this._computeAffinity(localProcessExtensions, ExtensionHostKind.LocalProcess, false);
|
|
244
244
|
for (const extension of localProcessExtensions) {
|
|
245
245
|
const affinity = affinities.get(extension.identifier) || 0;
|
|
246
246
|
this._runningLocation.set(extension.identifier, ( new LocalProcessRunningLocation(affinity)));
|
|
247
247
|
}
|
|
248
|
-
const { affinities: webWorkerExtensionsAffinities } = this._computeAffinity(localWebWorkerExtensions,
|
|
248
|
+
const { affinities: webWorkerExtensionsAffinities } = this._computeAffinity(localWebWorkerExtensions, ExtensionHostKind.LocalWebWorker, false);
|
|
249
249
|
for (const extension of localWebWorkerExtensions) {
|
|
250
250
|
const affinity = webWorkerExtensionsAffinities.get(extension.identifier) || 0;
|
|
251
251
|
this._runningLocation.set(extension.identifier, ( new LocalWebWorkerRunningLocation(affinity)));
|
|
@@ -4,6 +4,7 @@ import { IExtensionStorageService } from 'vscode/vscode/vs/platform/extensionMan
|
|
|
4
4
|
import { FileSystemProviderErrorCode } from 'vscode/vscode/vs/platform/files/common/files';
|
|
5
5
|
import { IFileService } from 'vscode/vscode/vs/platform/files/common/files.service';
|
|
6
6
|
import { ILogService } from 'vscode/vscode/vs/platform/log/common/log.service';
|
|
7
|
+
import { StorageScope, StorageTarget } from 'vscode/vscode/vs/platform/storage/common/storage';
|
|
7
8
|
import { IStorageService } from 'vscode/vscode/vs/platform/storage/common/storage.service';
|
|
8
9
|
import { IUriIdentityService } from 'vscode/vscode/vs/platform/uriIdentity/common/uriIdentity.service';
|
|
9
10
|
import { IUserDataProfilesService } from 'vscode/vscode/vs/platform/userDataProfile/common/userDataProfile.service';
|
|
@@ -30,7 +31,7 @@ async function migrateExtensionStorage(fromExtensionId, toExtensionId, global, i
|
|
|
30
31
|
}
|
|
31
32
|
return uriIdentityService.extUri.joinPath(environmentService.workspaceStorageHome, workspaceContextService.getWorkspace().id, extensionId);
|
|
32
33
|
};
|
|
33
|
-
const storageScope = global ?
|
|
34
|
+
const storageScope = global ? StorageScope.PROFILE : StorageScope.WORKSPACE;
|
|
34
35
|
if (!storageService.getBoolean(storageMigratedKey, storageScope, false) && !(migrateLowerCaseStorageKey && storageService.getBoolean(migrateLowerCaseStorageKey, storageScope, false))) {
|
|
35
36
|
logService.info(`Migrating ${global ? 'global' : 'workspace'} extension storage from ${fromExtensionId} to ${toExtensionId}...`);
|
|
36
37
|
const value = extensionStorageService.getExtensionState(fromExtensionId, global);
|
|
@@ -51,7 +52,7 @@ async function migrateExtensionStorage(fromExtensionId, toExtensionId, global, i
|
|
|
51
52
|
}
|
|
52
53
|
}
|
|
53
54
|
logService.info(`Migrated ${global ? 'global' : 'workspace'} extension storage from ${fromExtensionId} to ${toExtensionId}`);
|
|
54
|
-
storageService.store(storageMigratedKey, true, storageScope,
|
|
55
|
+
storageService.store(storageMigratedKey, true, storageScope, StorageTarget.MACHINE);
|
|
55
56
|
}
|
|
56
57
|
});
|
|
57
58
|
}
|
|
@@ -3,7 +3,7 @@ import { localizeWithPath } from 'vscode/vscode/vs/nls';
|
|
|
3
3
|
import { semverExports } from 'vscode/external/vscode-semver/semver.js';
|
|
4
4
|
|
|
5
5
|
const _moduleId = "vs/workbench/services/extensions/common/extensionsUtil";
|
|
6
|
-
function dedupExtensions(system, user, development, logService) {
|
|
6
|
+
function dedupExtensions(system, user, workspace, development, logService) {
|
|
7
7
|
const result = ( (new ExtensionIdentifierMap()));
|
|
8
8
|
system.forEach((systemExtension) => {
|
|
9
9
|
const extension = result.get(systemExtension.identifier);
|
|
@@ -44,10 +44,23 @@ function dedupExtensions(system, user, development, logService) {
|
|
|
44
44
|
}
|
|
45
45
|
result.set(userExtension.identifier, userExtension);
|
|
46
46
|
});
|
|
47
|
+
workspace.forEach(workspaceExtension => {
|
|
48
|
+
const extension = result.get(workspaceExtension.identifier);
|
|
49
|
+
if (extension) {
|
|
50
|
+
logService.warn(( localizeWithPath(
|
|
51
|
+
_moduleId,
|
|
52
|
+
1,
|
|
53
|
+
"Overwriting {0} with Workspace Extension {1}.",
|
|
54
|
+
extension.extensionLocation.fsPath,
|
|
55
|
+
workspaceExtension.extensionLocation.fsPath
|
|
56
|
+
)));
|
|
57
|
+
}
|
|
58
|
+
result.set(workspaceExtension.identifier, workspaceExtension);
|
|
59
|
+
});
|
|
47
60
|
development.forEach(developedExtension => {
|
|
48
61
|
logService.info(( localizeWithPath(
|
|
49
62
|
_moduleId,
|
|
50
|
-
|
|
63
|
+
2,
|
|
51
64
|
"Loading development extension at {0}",
|
|
52
65
|
developedExtension.extensionLocation.fsPath
|
|
53
66
|
)));
|
package/vscode/src/vs/workbench/services/extensions/common/lazyCreateExtensionHostManager.js
CHANGED
|
@@ -6,7 +6,7 @@ import { IInstantiationService } from 'vscode/vscode/vs/platform/instantiation/c
|
|
|
6
6
|
import { ILogService } from 'vscode/vscode/vs/platform/log/common/log.service';
|
|
7
7
|
import { RemoteAuthorityResolverErrorCode } from 'vscode/vscode/vs/platform/remote/common/remoteAuthorityResolver';
|
|
8
8
|
import { friendlyExtHostName, ExtensionHostManager } from './extensionHostManager.js';
|
|
9
|
-
import { ExtensionHostExtensions } from 'vscode/vscode/vs/workbench/services/extensions/common/extensions';
|
|
9
|
+
import { ActivationKind, ExtensionHostExtensions } from 'vscode/vscode/vs/workbench/services/extensions/common/extensions';
|
|
10
10
|
|
|
11
11
|
let LazyCreateExtensionHostManager = class LazyCreateExtensionHostManager extends Disposable {
|
|
12
12
|
get pid() {
|
|
@@ -83,7 +83,7 @@ let LazyCreateExtensionHostManager = class LazyCreateExtensionHostManager extend
|
|
|
83
83
|
return false;
|
|
84
84
|
}
|
|
85
85
|
async activateByEvent(activationEvent, activationKind) {
|
|
86
|
-
if (activationKind ===
|
|
86
|
+
if (activationKind === ActivationKind.Immediate) {
|
|
87
87
|
if (this._actual) {
|
|
88
88
|
return this._actual.activateByEvent(activationEvent, activationKind);
|
|
89
89
|
}
|
|
@@ -14,10 +14,12 @@ import { IRemoteSocketFactoryService } from 'vscode/vscode/vs/platform/remote/co
|
|
|
14
14
|
import { ISignService } from 'vscode/vscode/vs/platform/sign/common/sign.service';
|
|
15
15
|
import { ITelemetryService } from 'vscode/vscode/vs/platform/telemetry/common/telemetry.service';
|
|
16
16
|
import { isLoggingOnly } from 'vscode/vscode/vs/platform/telemetry/common/telemetryUtils';
|
|
17
|
+
import { WorkbenchState } from 'vscode/vscode/vs/platform/workspace/common/workspace';
|
|
17
18
|
import { IWorkspaceContextService } from 'vscode/vscode/vs/platform/workspace/common/workspace.service';
|
|
18
19
|
import { IWorkbenchEnvironmentService } from 'vscode/vscode/vs/workbench/services/environment/common/environmentService.service';
|
|
19
20
|
import { parseExtensionDevOptions } from './extensionDevOptions.js';
|
|
20
|
-
import { isMessageOfType, UIKind, createMessageOfType } from 'vscode/vscode/vs/workbench/services/extensions/common/extensionHostProtocol';
|
|
21
|
+
import { isMessageOfType, MessageType, UIKind, createMessageOfType } from 'vscode/vscode/vs/workbench/services/extensions/common/extensionHostProtocol';
|
|
22
|
+
import { ExtensionHostStartup } from 'vscode/vscode/vs/workbench/services/extensions/common/extensions';
|
|
21
23
|
|
|
22
24
|
let RemoteExtensionHost = class RemoteExtensionHost extends Disposable {
|
|
23
25
|
constructor(runningLocation, _initDataProvider, remoteSocketFactoryService, _contextService, _environmentService, _telemetryService, _logService, _loggerService, _labelService, remoteAuthorityResolverService, _extensionHostDebugService, _productService, _signService) {
|
|
@@ -36,7 +38,7 @@ let RemoteExtensionHost = class RemoteExtensionHost extends Disposable {
|
|
|
36
38
|
this._productService = _productService;
|
|
37
39
|
this._signService = _signService;
|
|
38
40
|
this.pid = null;
|
|
39
|
-
this.startup =
|
|
41
|
+
this.startup = ExtensionHostStartup.EagerAutoStart;
|
|
40
42
|
this.extensions = null;
|
|
41
43
|
this._onExit = this._register(( new Emitter()));
|
|
42
44
|
this.onExit = this._onExit.event;
|
|
@@ -100,13 +102,13 @@ let RemoteExtensionHost = class RemoteExtensionHost extends Disposable {
|
|
|
100
102
|
reject('The remote extension host took longer than 60s to send its ready message.');
|
|
101
103
|
}, 60 * 1000);
|
|
102
104
|
const disposable = protocol.onMessage(msg => {
|
|
103
|
-
if (isMessageOfType(msg,
|
|
105
|
+
if (isMessageOfType(msg, MessageType.Ready)) {
|
|
104
106
|
this._createExtHostInitData(isExtensionDevelopmentDebug).then(data => {
|
|
105
107
|
protocol.send(VSBuffer.fromString(JSON.stringify(data)));
|
|
106
108
|
});
|
|
107
109
|
return;
|
|
108
110
|
}
|
|
109
|
-
if (isMessageOfType(msg,
|
|
111
|
+
if (isMessageOfType(msg, MessageType.Initialized)) {
|
|
110
112
|
clearTimeout(handle);
|
|
111
113
|
disposable.dispose();
|
|
112
114
|
this._protocol = protocol;
|
|
@@ -156,7 +158,7 @@ let RemoteExtensionHost = class RemoteExtensionHost extends Disposable {
|
|
|
156
158
|
workspaceStorageHome: remoteInitData.workspaceStorageHome,
|
|
157
159
|
extensionLogLevel: this._environmentService.extensionLogLevel
|
|
158
160
|
},
|
|
159
|
-
workspace: this._contextService.getWorkbenchState() ===
|
|
161
|
+
workspace: this._contextService.getWorkbenchState() === WorkbenchState.EMPTY ? null : {
|
|
160
162
|
configuration: workspace.configuration,
|
|
161
163
|
id: workspace.id,
|
|
162
164
|
name: this._labelService.getWorkspaceLabel(workspace),
|
|
@@ -176,13 +178,14 @@ let RemoteExtensionHost = class RemoteExtensionHost extends Disposable {
|
|
|
176
178
|
sessionId: this._telemetryService.sessionId,
|
|
177
179
|
machineId: this._telemetryService.machineId,
|
|
178
180
|
sqmId: this._telemetryService.sqmId,
|
|
181
|
+
devDeviceId: this._telemetryService.devDeviceId,
|
|
179
182
|
firstSessionDate: this._telemetryService.firstSessionDate,
|
|
180
183
|
msftInternal: this._telemetryService.msftInternal
|
|
181
184
|
},
|
|
182
185
|
logLevel: this._logService.getLevel(),
|
|
183
186
|
loggers: [...this._loggerService.getRegisteredLoggers()],
|
|
184
187
|
logsLocation: remoteInitData.extensionHostLogsPath,
|
|
185
|
-
autoStart: (
|
|
188
|
+
autoStart: (this.startup === ExtensionHostStartup.EagerAutoStart),
|
|
186
189
|
uiKind: isWeb ? UIKind.Web : UIKind.Desktop
|
|
187
190
|
};
|
|
188
191
|
}
|
|
@@ -197,7 +200,7 @@ let RemoteExtensionHost = class RemoteExtensionHost extends Disposable {
|
|
|
197
200
|
this._terminating = true;
|
|
198
201
|
if (this._protocol) {
|
|
199
202
|
const socket = this._protocol.getSocket();
|
|
200
|
-
this._protocol.send(createMessageOfType(
|
|
203
|
+
this._protocol.send(createMessageOfType(MessageType.Terminate));
|
|
201
204
|
this._protocol.sendDisconnect();
|
|
202
205
|
this._protocol.dispose();
|
|
203
206
|
socket.end();
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import { __decorate, __param } from 'vscode/external/tslib/tslib.es6.js';
|
|
2
|
-
import { DisposableMap } from 'vscode/vscode/vs/base/common/lifecycle';
|
|
3
|
-
import { IInlineChatService } from 'vscode/vscode/vs/workbench/contrib/inlineChat/common/inlineChat.service';
|
|
4
|
-
import { IUriIdentityService } from 'vscode/vscode/vs/platform/uriIdentity/common/uriIdentity.service';
|
|
5
|
-
import { reviveWorkspaceEditDto } from './mainThreadBulkEdits.js';
|
|
6
|
-
import { ExtHostContext, MainContext } from 'vscode/vscode/vs/workbench/api/common/extHost.protocol';
|
|
7
|
-
import { extHostNamedCustomer } from '../../services/extensions/common/extHostCustomers.js';
|
|
8
|
-
|
|
9
|
-
let MainThreadInlineChat = class MainThreadInlineChat {
|
|
10
|
-
constructor(extHostContext, _inlineChatService, _uriIdentService) {
|
|
11
|
-
this._inlineChatService = _inlineChatService;
|
|
12
|
-
this._uriIdentService = _uriIdentService;
|
|
13
|
-
this._registrations = ( new DisposableMap());
|
|
14
|
-
this._progresses = ( new Map());
|
|
15
|
-
this._proxy = ( extHostContext.getProxy(ExtHostContext.ExtHostInlineChat));
|
|
16
|
-
}
|
|
17
|
-
dispose() {
|
|
18
|
-
this._registrations.dispose();
|
|
19
|
-
}
|
|
20
|
-
async $registerInteractiveEditorProvider(handle, label, extensionId, supportsFeedback, supportsFollowups, supportIssueReporting) {
|
|
21
|
-
const unreg = this._inlineChatService.addProvider({
|
|
22
|
-
extensionId,
|
|
23
|
-
label,
|
|
24
|
-
supportIssueReporting,
|
|
25
|
-
prepareInlineChatSession: async (model, range, token) => {
|
|
26
|
-
const session = await this._proxy.$prepareSession(handle, model.uri, range, token);
|
|
27
|
-
if (!session) {
|
|
28
|
-
return undefined;
|
|
29
|
-
}
|
|
30
|
-
return {
|
|
31
|
-
...session,
|
|
32
|
-
dispose: () => {
|
|
33
|
-
this._proxy.$releaseSession(handle, session.id);
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
},
|
|
37
|
-
provideResponse: async (item, request, progress, token) => {
|
|
38
|
-
this._progresses.set(request.requestId, progress);
|
|
39
|
-
try {
|
|
40
|
-
const result = await this._proxy.$provideResponse(handle, item, request, token);
|
|
41
|
-
if (result?.type === 'bulkEdit') {
|
|
42
|
-
result.edits = reviveWorkspaceEditDto(result.edits, this._uriIdentService);
|
|
43
|
-
}
|
|
44
|
-
return result;
|
|
45
|
-
}
|
|
46
|
-
finally {
|
|
47
|
-
this._progresses.delete(request.requestId);
|
|
48
|
-
}
|
|
49
|
-
},
|
|
50
|
-
provideFollowups: !supportsFollowups ? undefined : async (session, response, token) => {
|
|
51
|
-
return this._proxy.$provideFollowups(handle, session.id, response.id, token);
|
|
52
|
-
},
|
|
53
|
-
handleInlineChatResponseFeedback: !supportsFeedback ? undefined : async (session, response, kind) => {
|
|
54
|
-
this._proxy.$handleFeedback(handle, session.id, response.id, kind);
|
|
55
|
-
}
|
|
56
|
-
});
|
|
57
|
-
this._registrations.set(handle, unreg);
|
|
58
|
-
}
|
|
59
|
-
async $handleProgressChunk(requestId, chunk) {
|
|
60
|
-
await Promise.resolve(this._progresses.get(requestId)?.report(chunk));
|
|
61
|
-
}
|
|
62
|
-
async $unregisterInteractiveEditorProvider(handle) {
|
|
63
|
-
this._registrations.deleteAndDispose(handle);
|
|
64
|
-
}
|
|
65
|
-
};
|
|
66
|
-
MainThreadInlineChat = __decorate([
|
|
67
|
-
extHostNamedCustomer(MainContext.MainThreadInlineChat),
|
|
68
|
-
( __param(1, IInlineChatService)),
|
|
69
|
-
( __param(2, IUriIdentityService))
|
|
70
|
-
], MainThreadInlineChat);
|
|
71
|
-
|
|
72
|
-
export { MainThreadInlineChat };
|