@codingame/monaco-vscode-extensions-service-override 25.1.2 → 26.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/index.js +7 -0
- package/package.json +3 -3
- package/vscode/src/vs/base/common/console.js +24 -15
- package/vscode/src/vs/platform/extensionManagement/common/extensionManagementCLI.d.ts +4 -1
- package/vscode/src/vs/platform/extensionManagement/common/extensionManagementCLI.js +149 -84
- package/vscode/src/vs/platform/extensionResourceLoader/browser/extensionResourceLoaderService.js +20 -12
- package/vscode/src/vs/platform/extensionResourceLoader/common/extensionResourceLoader.js +38 -21
- package/vscode/src/vs/platform/remote/common/managedSocket.js +7 -10
- package/vscode/src/vs/workbench/api/browser/mainThreadAiEmbeddingVector.js +5 -2
- package/vscode/src/vs/workbench/api/browser/mainThreadAiRelatedInformation.js +5 -2
- package/vscode/src/vs/workbench/api/browser/mainThreadAiSettingsSearch.js +4 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadAuthentication.js +200 -143
- package/vscode/src/vs/workbench/api/browser/mainThreadBulkEdits.js +10 -14
- package/vscode/src/vs/workbench/api/browser/mainThreadCLICommands.js +41 -31
- package/vscode/src/vs/workbench/api/browser/mainThreadChatAgents2.d.ts +9 -12
- package/vscode/src/vs/workbench/api/browser/mainThreadChatAgents2.js +168 -115
- package/vscode/src/vs/workbench/api/browser/mainThreadChatCodeMapper.js +11 -13
- package/vscode/src/vs/workbench/api/browser/mainThreadChatContext.d.ts +5 -5
- package/vscode/src/vs/workbench/api/browser/mainThreadChatContext.js +42 -15
- package/vscode/src/vs/workbench/api/browser/mainThreadChatOutputRenderer.js +8 -7
- package/vscode/src/vs/workbench/api/browser/mainThreadChatSessions.d.ts +4 -2
- package/vscode/src/vs/workbench/api/browser/mainThreadChatSessions.js +170 -99
- package/vscode/src/vs/workbench/api/browser/mainThreadChatStatus.js +2 -5
- package/vscode/src/vs/workbench/api/browser/mainThreadClipboard.js +4 -9
- package/vscode/src/vs/workbench/api/browser/mainThreadCodeInsets.js +13 -12
- package/vscode/src/vs/workbench/api/browser/mainThreadCommands.js +16 -19
- package/vscode/src/vs/workbench/api/browser/mainThreadComments.js +127 -70
- package/vscode/src/vs/workbench/api/browser/mainThreadConfiguration.js +80 -26
- package/vscode/src/vs/workbench/api/browser/mainThreadConsole.js +5 -11
- package/vscode/src/vs/workbench/api/browser/mainThreadCustomEditors.js +199 -97
- package/vscode/src/vs/workbench/api/browser/mainThreadDataChannels.js +1 -4
- package/vscode/src/vs/workbench/api/browser/mainThreadDebugService.js +88 -73
- package/vscode/src/vs/workbench/api/browser/mainThreadDecorations.js +5 -5
- package/vscode/src/vs/workbench/api/browser/mainThreadDiagnostics.js +16 -12
- package/vscode/src/vs/workbench/api/browser/mainThreadDialogs.js +10 -8
- package/vscode/src/vs/workbench/api/browser/mainThreadDocumentContentProviders.js +14 -6
- package/vscode/src/vs/workbench/api/browser/mainThreadDocuments.js +52 -37
- package/vscode/src/vs/workbench/api/browser/mainThreadDocumentsAndEditors.js +78 -58
- package/vscode/src/vs/workbench/api/browser/mainThreadEditSessionIdentityParticipant.js +5 -7
- package/vscode/src/vs/workbench/api/browser/mainThreadEditor.js +75 -63
- package/vscode/src/vs/workbench/api/browser/mainThreadEditorTabs.js +99 -91
- package/vscode/src/vs/workbench/api/browser/mainThreadEditors.js +93 -55
- package/vscode/src/vs/workbench/api/browser/mainThreadEmbeddings.js +3 -7
- package/vscode/src/vs/workbench/api/browser/mainThreadExtensionService.js +85 -60
- package/vscode/src/vs/workbench/api/browser/mainThreadFileSystem.js +49 -45
- package/vscode/src/vs/workbench/api/browser/mainThreadFileSystemEventService.js +114 -72
- package/vscode/src/vs/workbench/api/browser/mainThreadInteractive.js +4 -7
- package/vscode/src/vs/workbench/api/browser/mainThreadLabelService.js +1 -4
- package/vscode/src/vs/workbench/api/browser/mainThreadLanguageFeatures.d.ts +2 -2
- package/vscode/src/vs/workbench/api/browser/mainThreadLanguageFeatures.js +381 -238
- package/vscode/src/vs/workbench/api/browser/mainThreadLanguageModelTools.d.ts +7 -3
- package/vscode/src/vs/workbench/api/browser/mainThreadLanguageModelTools.js +90 -13
- package/vscode/src/vs/workbench/api/browser/mainThreadLanguageModels.js +81 -58
- package/vscode/src/vs/workbench/api/browser/mainThreadLanguages.js +9 -10
- package/vscode/src/vs/workbench/api/browser/mainThreadLocalization.js +2 -7
- package/vscode/src/vs/workbench/api/browser/mainThreadLogService.js +6 -10
- package/vscode/src/vs/workbench/api/browser/mainThreadManagedSockets.js +12 -10
- package/vscode/src/vs/workbench/api/browser/mainThreadMcp.d.ts +3 -2
- package/vscode/src/vs/workbench/api/browser/mainThreadMcp.js +162 -97
- package/vscode/src/vs/workbench/api/browser/mainThreadMessageService.js +32 -26
- package/vscode/src/vs/workbench/api/browser/mainThreadNotebook.js +38 -32
- package/vscode/src/vs/workbench/api/browser/mainThreadNotebookDocuments.js +48 -46
- package/vscode/src/vs/workbench/api/browser/mainThreadNotebookDocumentsAndEditors.js +22 -18
- package/vscode/src/vs/workbench/api/browser/mainThreadNotebookDto.js +5 -8
- package/vscode/src/vs/workbench/api/browser/mainThreadNotebookEditors.js +35 -21
- package/vscode/src/vs/workbench/api/browser/mainThreadNotebookKernels.js +31 -28
- package/vscode/src/vs/workbench/api/browser/mainThreadNotebookSaveParticipant.js +5 -7
- package/vscode/src/vs/workbench/api/browser/mainThreadOutputService.js +47 -23
- package/vscode/src/vs/workbench/api/browser/mainThreadProfileContentHandlers.js +15 -12
- package/vscode/src/vs/workbench/api/browser/mainThreadProgress.js +17 -18
- package/vscode/src/vs/workbench/api/browser/mainThreadQuickDiff.js +6 -7
- package/vscode/src/vs/workbench/api/browser/mainThreadQuickOpen.js +83 -66
- package/vscode/src/vs/workbench/api/browser/mainThreadRemoteConnectionData.js +1 -5
- package/vscode/src/vs/workbench/api/browser/mainThreadSCM.js +250 -92
- package/vscode/src/vs/workbench/api/browser/mainThreadSaveParticipant.js +6 -8
- package/vscode/src/vs/workbench/api/browser/mainThreadSearch.js +37 -26
- package/vscode/src/vs/workbench/api/browser/mainThreadSecretState.js +34 -21
- package/vscode/src/vs/workbench/api/browser/mainThreadShare.js +3 -6
- package/vscode/src/vs/workbench/api/browser/mainThreadSpeech.js +19 -14
- package/vscode/src/vs/workbench/api/browser/mainThreadStatusBar.js +41 -16
- package/vscode/src/vs/workbench/api/browser/mainThreadStorage.js +18 -17
- package/vscode/src/vs/workbench/api/browser/mainThreadTask.js +145 -145
- package/vscode/src/vs/workbench/api/browser/mainThreadTelemetry.js +19 -11
- package/vscode/src/vs/workbench/api/browser/mainThreadTerminalService.js +176 -80
- package/vscode/src/vs/workbench/api/browser/mainThreadTerminalShellIntegration.js +52 -21
- package/vscode/src/vs/workbench/api/browser/mainThreadTesting.js +26 -24
- package/vscode/src/vs/workbench/api/browser/mainThreadTheming.js +1 -4
- package/vscode/src/vs/workbench/api/browser/mainThreadTimeline.js +5 -8
- package/vscode/src/vs/workbench/api/browser/mainThreadTreeViews.d.ts +4 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadTreeViews.js +106 -46
- package/vscode/src/vs/workbench/api/browser/mainThreadTunnelService.js +83 -65
- package/vscode/src/vs/workbench/api/browser/mainThreadUriOpeners.js +20 -20
- package/vscode/src/vs/workbench/api/browser/mainThreadUrls.js +14 -9
- package/vscode/src/vs/workbench/api/browser/mainThreadWebviewManager.js +17 -9
- package/vscode/src/vs/workbench/api/browser/mainThreadWebviewPanels.js +49 -38
- package/vscode/src/vs/workbench/api/browser/mainThreadWebviewViews.js +10 -13
- package/vscode/src/vs/workbench/api/browser/mainThreadWebviews.js +38 -27
- package/vscode/src/vs/workbench/api/browser/mainThreadWindow.js +5 -11
- package/vscode/src/vs/workbench/api/browser/mainThreadWorkspace.d.ts +4 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadWorkspace.js +73 -43
- package/vscode/src/vs/workbench/api/common/shared/dataTransferCache.js +2 -2
- package/vscode/src/vs/workbench/contrib/customEditor/common/customTextEditorModel.js +17 -10
- package/vscode/src/vs/workbench/contrib/externalUriOpener/common/contributedOpeners.js +17 -11
- package/vscode/src/vs/workbench/services/extensionManagement/browser/extensionBisect.js +107 -80
- package/vscode/src/vs/workbench/services/extensionManagement/browser/webExtensionsScannerService.js +336 -175
- package/vscode/src/vs/workbench/services/extensions/browser/extensionService.js +126 -71
- package/vscode/src/vs/workbench/services/extensions/browser/webWorkerExtensionHost.js +76 -54
- package/vscode/src/vs/workbench/services/extensions/browser/webWorkerFileSystemProvider.js +1 -2
- package/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.d.ts +2 -0
- package/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.js +343 -192
- package/vscode/src/vs/workbench/services/extensions/common/extHostCustomers.js +5 -3
- package/vscode/src/vs/workbench/services/extensions/common/extensionHostManager.d.ts +0 -1
- package/vscode/src/vs/workbench/services/extensions/common/extensionHostManager.js +75 -68
- package/vscode/src/vs/workbench/services/extensions/common/extensionRunningLocationTracker.js +135 -36
- package/vscode/src/vs/workbench/services/extensions/common/extensionsProposedApi.js +22 -18
- package/vscode/src/vs/workbench/services/extensions/common/extensionsUtil.js +14 -12
- package/vscode/src/vs/workbench/services/extensions/common/lazyCreateExtensionHostManager.js +21 -9
- package/vscode/src/vs/workbench/services/extensions/common/remoteExtensionHost.js +48 -25
- package/vscode/src/vs/workbench/services/themes/browser/cssExtensionPoint.d.ts +24 -0
- package/vscode/src/vs/workbench/services/themes/browser/cssExtensionPoint.js +300 -0
|
@@ -20,7 +20,13 @@ import { transaction } from '@codingame/monaco-vscode-api/vscode/vs/base/common/
|
|
|
20
20
|
import { observableValue } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableValue';
|
|
21
21
|
|
|
22
22
|
let MainThreadTesting = class MainThreadTesting extends Disposable {
|
|
23
|
-
constructor(
|
|
23
|
+
constructor(
|
|
24
|
+
extHostContext,
|
|
25
|
+
uriIdentityService,
|
|
26
|
+
testService,
|
|
27
|
+
testProfiles,
|
|
28
|
+
resultService
|
|
29
|
+
) {
|
|
24
30
|
super();
|
|
25
31
|
this.uriIdentityService = uriIdentityService;
|
|
26
32
|
this.testService = testService;
|
|
@@ -33,14 +39,23 @@ let MainThreadTesting = class MainThreadTesting extends Disposable {
|
|
|
33
39
|
provideTestFollowups: (req, token) => this.proxy.$provideTestFollowups(req, token),
|
|
34
40
|
executeTestFollowup: id => this.proxy.$executeTestFollowup(id),
|
|
35
41
|
disposeTestFollowups: ids => this.proxy.$disposeTestFollowups(ids),
|
|
36
|
-
getTestsRelatedToCode: (uri, position, token) => this.proxy.$getTestsRelatedToCode(uri, position, token)
|
|
42
|
+
getTestsRelatedToCode: (uri, position, token) => this.proxy.$getTestsRelatedToCode(uri, position, token)
|
|
37
43
|
}));
|
|
38
|
-
this._register(this.testService.onDidCancelTestRun((
|
|
44
|
+
this._register(this.testService.onDidCancelTestRun((
|
|
45
|
+
{
|
|
46
|
+
runId,
|
|
47
|
+
taskId
|
|
48
|
+
}
|
|
49
|
+
) => {
|
|
39
50
|
this.proxy.$cancelExtensionTestRun(runId, taskId);
|
|
40
51
|
}));
|
|
41
52
|
this._register(Event.debounce(testProfiles.onDidChange, (_last, e) => e)(() => {
|
|
42
53
|
const obj = {};
|
|
43
|
-
for (const group of [
|
|
54
|
+
for (const group of [
|
|
55
|
+
TestRunProfileBitset.Run,
|
|
56
|
+
TestRunProfileBitset.Debug,
|
|
57
|
+
TestRunProfileBitset.Coverage
|
|
58
|
+
]) {
|
|
44
59
|
for (const profile of this.testProfiles.getGroupDefaultProfiles(group)) {
|
|
45
60
|
obj[profile.controllerId] ??= [];
|
|
46
61
|
obj[profile.controllerId].push(profile.profileId);
|
|
@@ -49,13 +64,12 @@ let MainThreadTesting = class MainThreadTesting extends Disposable {
|
|
|
49
64
|
this.proxy.$setDefaultRunProfiles(obj);
|
|
50
65
|
}));
|
|
51
66
|
this._register(resultService.onResultsChanged(evt => {
|
|
52
|
-
if (
|
|
67
|
+
if ("completed" in evt) {
|
|
53
68
|
const serialized = evt.completed.toJSONWithMessages();
|
|
54
69
|
if (serialized) {
|
|
55
70
|
this.proxy.$publishTestResults([serialized]);
|
|
56
71
|
}
|
|
57
|
-
}
|
|
58
|
-
else if ('removed' in evt) {
|
|
72
|
+
} else if ("removed" in evt) {
|
|
59
73
|
evt.removed.forEach(r => {
|
|
60
74
|
if (r instanceof LiveTestResult) {
|
|
61
75
|
this.proxy.$disposeRun(r.id);
|
|
@@ -104,13 +118,11 @@ let MainThreadTesting = class MainThreadTesting extends Disposable {
|
|
|
104
118
|
let value = task.coverage.read(undefined);
|
|
105
119
|
if (!value) {
|
|
106
120
|
value = ( new TestCoverage(run, taskId, this.uriIdentityService, {
|
|
107
|
-
getCoverageDetails: (id, testId, token) => this.proxy.$getCoverageDetails(id, testId, token)
|
|
108
|
-
.then(r => ( r.map(CoverageDetails.deserialize))),
|
|
121
|
+
getCoverageDetails: (id, testId, token) => this.proxy.$getCoverageDetails(id, testId, token).then(r => ( r.map(CoverageDetails.deserialize)))
|
|
109
122
|
}));
|
|
110
123
|
value.append(deserialized, tx);
|
|
111
124
|
task.coverage.set(value, tx);
|
|
112
|
-
}
|
|
113
|
-
else {
|
|
125
|
+
} else {
|
|
114
126
|
value.append(deserialized, tx);
|
|
115
127
|
}
|
|
116
128
|
});
|
|
@@ -163,7 +175,7 @@ let MainThreadTesting = class MainThreadTesting extends Disposable {
|
|
|
163
175
|
getRelatedCode: (testId, token) => this.proxy.$getCodeRelatedToTest(testId, token).then(locations => ( locations.map(l => ({
|
|
164
176
|
uri: URI.revive(l.uri),
|
|
165
177
|
range: Range.lift(l.range)
|
|
166
|
-
}))))
|
|
178
|
+
}))))
|
|
167
179
|
};
|
|
168
180
|
disposable.add(toDisposable(() => this.testProfiles.removeProfile(controllerId)));
|
|
169
181
|
disposable.add(this.testService.registerTestController(controllerId, controller));
|
|
@@ -207,11 +219,7 @@ let MainThreadTesting = class MainThreadTesting extends Disposable {
|
|
|
207
219
|
return result.id;
|
|
208
220
|
}
|
|
209
221
|
async $getCoverageDetails(resultId, taskIndex, uri, token) {
|
|
210
|
-
const details = await this.resultService.getResult(resultId)
|
|
211
|
-
?.tasks[taskIndex]
|
|
212
|
-
?.coverage.get()
|
|
213
|
-
?.getUri(( URI.from(uri)))
|
|
214
|
-
?.details(token);
|
|
222
|
+
const details = await this.resultService.getResult(resultId)?.tasks[taskIndex]?.coverage.get()?.getUri(( URI.from(uri)))?.details(token);
|
|
215
223
|
return details || [];
|
|
216
224
|
}
|
|
217
225
|
dispose() {
|
|
@@ -226,12 +234,6 @@ let MainThreadTesting = class MainThreadTesting extends Disposable {
|
|
|
226
234
|
return r && r instanceof LiveTestResult ? fn(r) : undefined;
|
|
227
235
|
}
|
|
228
236
|
};
|
|
229
|
-
MainThreadTesting = __decorate([
|
|
230
|
-
extHostNamedCustomer(MainContext.MainThreadTesting),
|
|
231
|
-
( __param(1, IUriIdentityService)),
|
|
232
|
-
( __param(2, ITestService)),
|
|
233
|
-
( __param(3, ITestProfileService)),
|
|
234
|
-
( __param(4, ITestResultService))
|
|
235
|
-
], MainThreadTesting);
|
|
237
|
+
MainThreadTesting = __decorate([extHostNamedCustomer(MainContext.MainThreadTesting), ( __param(1, IUriIdentityService)), ( __param(2, ITestService)), ( __param(3, ITestProfileService)), ( __param(4, ITestResultService))], MainThreadTesting);
|
|
236
238
|
|
|
237
239
|
export { MainThreadTesting };
|
|
@@ -17,9 +17,6 @@ let MainThreadTheming = class MainThreadTheming {
|
|
|
17
17
|
this._themeChangeListener.dispose();
|
|
18
18
|
}
|
|
19
19
|
};
|
|
20
|
-
MainThreadTheming = __decorate([
|
|
21
|
-
extHostNamedCustomer(MainContext.MainThreadTheming),
|
|
22
|
-
( __param(1, IThemeService))
|
|
23
|
-
], MainThreadTheming);
|
|
20
|
+
MainThreadTheming = __decorate([extHostNamedCustomer(MainContext.MainThreadTheming), ( __param(1, IThemeService))], MainThreadTheming);
|
|
24
21
|
|
|
25
22
|
export { MainThreadTheming };
|
|
@@ -40,17 +40,14 @@ let MainThreadTimeline = class MainThreadTimeline {
|
|
|
40
40
|
this._timelineService.unregisterTimelineProvider(id);
|
|
41
41
|
}
|
|
42
42
|
$emitTimelineChangeEvent(e) {
|
|
43
|
-
this.logService.trace(
|
|
43
|
+
this.logService.trace(
|
|
44
|
+
`MainThreadTimeline#emitChangeEvent: id=${e.id}, uri=${e.uri?.toString(true)}`
|
|
45
|
+
);
|
|
44
46
|
const emitter = this._providerEmitters.get(e.id);
|
|
45
47
|
emitter?.fire(e);
|
|
46
48
|
}
|
|
47
|
-
dispose() {
|
|
48
|
-
}
|
|
49
|
+
dispose() {}
|
|
49
50
|
};
|
|
50
|
-
MainThreadTimeline = __decorate([
|
|
51
|
-
extHostNamedCustomer(MainContext.MainThreadTimeline),
|
|
52
|
-
( __param(1, ILogService)),
|
|
53
|
-
( __param(2, ITimelineService))
|
|
54
|
-
], MainThreadTimeline);
|
|
51
|
+
MainThreadTimeline = __decorate([extHostNamedCustomer(MainContext.MainThreadTimeline), ( __param(1, ILogService)), ( __param(2, ITimelineService))], MainThreadTimeline);
|
|
55
52
|
|
|
56
53
|
export { MainThreadTimeline };
|
|
@@ -8,15 +8,17 @@ import { ILogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/log
|
|
|
8
8
|
import { VSBuffer } from "@codingame/monaco-vscode-api/vscode/vs/base/common/buffer";
|
|
9
9
|
import { IMarkdownString } from "@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent";
|
|
10
10
|
import { IViewsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/views/common/viewsService.service";
|
|
11
|
+
import { ITelemetryService } from "@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service";
|
|
11
12
|
export declare class MainThreadTreeViews extends Disposable implements MainThreadTreeViewsShape {
|
|
12
13
|
private readonly viewsService;
|
|
13
14
|
private readonly notificationService;
|
|
14
15
|
private readonly extensionService;
|
|
15
16
|
private readonly logService;
|
|
17
|
+
private readonly telemetryService;
|
|
16
18
|
private readonly _proxy;
|
|
17
19
|
private readonly _dataProviders;
|
|
18
20
|
private readonly _dndControllers;
|
|
19
|
-
constructor(extHostContext: IExtHostContext, viewsService: IViewsService, notificationService: INotificationService, extensionService: IExtensionService, logService: ILogService);
|
|
21
|
+
constructor(extHostContext: IExtHostContext, viewsService: IViewsService, notificationService: INotificationService, extensionService: IExtensionService, logService: ILogService, telemetryService: ITelemetryService);
|
|
20
22
|
$registerTreeViewDataProvider(treeViewId: string, options: {
|
|
21
23
|
showCollapseAll: boolean;
|
|
22
24
|
canSelectMany: boolean;
|
|
@@ -38,6 +40,7 @@ export declare class MainThreadTreeViews extends Disposable implements MainThrea
|
|
|
38
40
|
$setBadge(treeViewId: string, badge: IViewBadge | undefined): void;
|
|
39
41
|
$resolveDropFileData(destinationViewId: string, requestId: number, dataItemId: string): Promise<VSBuffer>;
|
|
40
42
|
$disposeTree(treeViewId: string): Promise<void>;
|
|
43
|
+
$logResolveTreeNodeRetry(extensionId: string, retryCount: number, exhausted: boolean): void;
|
|
41
44
|
private reveal;
|
|
42
45
|
private registerListeners;
|
|
43
46
|
private getTreeView;
|
|
@@ -14,26 +14,37 @@ import { VSDataTransfer, createStringDataTransferItem } from '@codingame/monaco-
|
|
|
14
14
|
import { DataTransferFileCache } from '../common/shared/dataTransferCache.js';
|
|
15
15
|
import { DataTransfer } from '@codingame/monaco-vscode-api/vscode/vs/workbench/api/common/extHostTypeConverters';
|
|
16
16
|
import { IViewsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/views/common/viewsService.service';
|
|
17
|
+
import { ITelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service';
|
|
17
18
|
|
|
18
19
|
let MainThreadTreeViews = class MainThreadTreeViews extends Disposable {
|
|
19
|
-
constructor(
|
|
20
|
+
constructor(
|
|
21
|
+
extHostContext,
|
|
22
|
+
viewsService,
|
|
23
|
+
notificationService,
|
|
24
|
+
extensionService,
|
|
25
|
+
logService,
|
|
26
|
+
telemetryService
|
|
27
|
+
) {
|
|
20
28
|
super();
|
|
21
29
|
this.viewsService = viewsService;
|
|
22
30
|
this.notificationService = notificationService;
|
|
23
31
|
this.extensionService = extensionService;
|
|
24
32
|
this.logService = logService;
|
|
33
|
+
this.telemetryService = telemetryService;
|
|
25
34
|
this._dataProviders = this._register(( new DisposableMap()));
|
|
26
35
|
this._dndControllers = ( new Map());
|
|
27
36
|
this._proxy = ( extHostContext.getProxy(ExtHostContext.ExtHostTreeViews));
|
|
28
37
|
}
|
|
29
38
|
async $registerTreeViewDataProvider(treeViewId, options) {
|
|
30
|
-
this.logService.trace(
|
|
39
|
+
this.logService.trace("MainThreadTreeViews#$registerTreeViewDataProvider", treeViewId, options);
|
|
31
40
|
this.extensionService.whenInstalledExtensionsRegistered().then(() => {
|
|
32
41
|
const dataProvider = ( new TreeViewDataProvider(treeViewId, this._proxy, this.notificationService));
|
|
33
42
|
const disposables = ( new DisposableStore());
|
|
34
|
-
this._dataProviders.set(treeViewId, {
|
|
35
|
-
|
|
36
|
-
|
|
43
|
+
this._dataProviders.set(treeViewId, {
|
|
44
|
+
dataProvider,
|
|
45
|
+
dispose: () => disposables.dispose()
|
|
46
|
+
});
|
|
47
|
+
const dndController = (options.hasHandleDrag || options.hasHandleDrop) ? ( new TreeViewDragAndDropController(
|
|
37
48
|
treeViewId,
|
|
38
49
|
options.dropMimeTypes,
|
|
39
50
|
options.dragMimeTypes,
|
|
@@ -52,42 +63,55 @@ let MainThreadTreeViews = class MainThreadTreeViews extends Disposable {
|
|
|
52
63
|
viewer.dataProvider = dataProvider;
|
|
53
64
|
this.registerListeners(treeViewId, viewer, disposables);
|
|
54
65
|
this._proxy.$setVisible(treeViewId, viewer.visible);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
this.notificationService.error('No view is registered with id: ' + treeViewId);
|
|
66
|
+
} else {
|
|
67
|
+
this.notificationService.error("No view is registered with id: " + treeViewId);
|
|
58
68
|
}
|
|
59
69
|
});
|
|
60
70
|
}
|
|
61
71
|
$reveal(treeViewId, itemInfo, options) {
|
|
62
|
-
this.logService.trace(
|
|
63
|
-
|
|
64
|
-
|
|
72
|
+
this.logService.trace(
|
|
73
|
+
"MainThreadTreeViews#$reveal",
|
|
74
|
+
treeViewId,
|
|
75
|
+
itemInfo?.item,
|
|
76
|
+
itemInfo?.parentChain,
|
|
77
|
+
options
|
|
78
|
+
);
|
|
79
|
+
return this.viewsService.openView(treeViewId, options.focus).then(() => {
|
|
65
80
|
const viewer = this.getTreeView(treeViewId);
|
|
66
81
|
if (viewer && itemInfo) {
|
|
67
|
-
return this.reveal(
|
|
82
|
+
return this.reveal(
|
|
83
|
+
viewer,
|
|
84
|
+
this._dataProviders.get(treeViewId).dataProvider,
|
|
85
|
+
itemInfo.item,
|
|
86
|
+
itemInfo.parentChain,
|
|
87
|
+
options
|
|
88
|
+
);
|
|
68
89
|
}
|
|
69
90
|
return undefined;
|
|
70
91
|
});
|
|
71
92
|
}
|
|
72
93
|
$refresh(treeViewId, itemsToRefreshByHandle) {
|
|
73
|
-
this.logService.trace(
|
|
94
|
+
this.logService.trace("MainThreadTreeViews#$refresh", treeViewId, itemsToRefreshByHandle);
|
|
74
95
|
const viewer = this.getTreeView(treeViewId);
|
|
75
96
|
const dataProvider = this._dataProviders.get(treeViewId);
|
|
76
97
|
if (viewer && dataProvider) {
|
|
77
98
|
const itemsToRefresh = dataProvider.dataProvider.getItemsToRefresh(itemsToRefreshByHandle);
|
|
78
|
-
return viewer.refresh(
|
|
99
|
+
return viewer.refresh(
|
|
100
|
+
itemsToRefresh.items.length ? itemsToRefresh.items : undefined,
|
|
101
|
+
itemsToRefresh.checkboxes.length ? itemsToRefresh.checkboxes : undefined
|
|
102
|
+
);
|
|
79
103
|
}
|
|
80
104
|
return Promise.resolve();
|
|
81
105
|
}
|
|
82
106
|
$setMessage(treeViewId, message) {
|
|
83
|
-
this.logService.trace(
|
|
107
|
+
this.logService.trace("MainThreadTreeViews#$setMessage", treeViewId, ( message.toString()));
|
|
84
108
|
const viewer = this.getTreeView(treeViewId);
|
|
85
109
|
if (viewer) {
|
|
86
110
|
viewer.message = message;
|
|
87
111
|
}
|
|
88
112
|
}
|
|
89
113
|
$setTitle(treeViewId, title, description) {
|
|
90
|
-
this.logService.trace(
|
|
114
|
+
this.logService.trace("MainThreadTreeViews#$setTitle", treeViewId, title, description);
|
|
91
115
|
const viewer = this.getTreeView(treeViewId);
|
|
92
116
|
if (viewer) {
|
|
93
117
|
viewer.title = title;
|
|
@@ -95,7 +119,7 @@ let MainThreadTreeViews = class MainThreadTreeViews extends Disposable {
|
|
|
95
119
|
}
|
|
96
120
|
}
|
|
97
121
|
$setBadge(treeViewId, badge) {
|
|
98
|
-
this.logService.trace(
|
|
122
|
+
this.logService.trace("MainThreadTreeViews#$setBadge", treeViewId, badge?.value, badge?.tooltip);
|
|
99
123
|
const viewer = this.getTreeView(treeViewId);
|
|
100
124
|
if (viewer) {
|
|
101
125
|
viewer.badge = badge;
|
|
@@ -104,7 +128,7 @@ let MainThreadTreeViews = class MainThreadTreeViews extends Disposable {
|
|
|
104
128
|
$resolveDropFileData(destinationViewId, requestId, dataItemId) {
|
|
105
129
|
const controller = this._dndControllers.get(destinationViewId);
|
|
106
130
|
if (!controller) {
|
|
107
|
-
throw ( new Error(
|
|
131
|
+
throw ( new Error("Unknown tree"));
|
|
108
132
|
}
|
|
109
133
|
return controller.resolveDropFileData(requestId, dataItemId);
|
|
110
134
|
}
|
|
@@ -115,11 +139,24 @@ let MainThreadTreeViews = class MainThreadTreeViews extends Disposable {
|
|
|
115
139
|
}
|
|
116
140
|
this._dataProviders.deleteAndDispose(treeViewId);
|
|
117
141
|
}
|
|
142
|
+
$logResolveTreeNodeRetry(extensionId, retryCount, exhausted) {
|
|
143
|
+
this.telemetryService.publicLog2("treeView.resolveRetry", {
|
|
144
|
+
extensionId,
|
|
145
|
+
retryCount,
|
|
146
|
+
exhausted
|
|
147
|
+
});
|
|
148
|
+
}
|
|
118
149
|
async reveal(treeView, dataProvider, itemIn, parentChain, options) {
|
|
119
|
-
options = options ? options : {
|
|
150
|
+
options = options ? options : {
|
|
151
|
+
select: false,
|
|
152
|
+
focus: false
|
|
153
|
+
};
|
|
120
154
|
const select = isUndefinedOrNull(options.select) ? false : options.select;
|
|
121
155
|
const focus = isUndefinedOrNull(options.focus) ? false : options.focus;
|
|
122
|
-
let expand = Math.min(
|
|
156
|
+
let expand = Math.min(
|
|
157
|
+
isNumber(options.expand) ? options.expand : options.expand === true ? 1 : 0,
|
|
158
|
+
3
|
|
159
|
+
);
|
|
123
160
|
if (dataProvider.isEmpty()) {
|
|
124
161
|
await treeView.refresh();
|
|
125
162
|
}
|
|
@@ -137,8 +174,7 @@ let MainThreadTreeViews = class MainThreadTreeViews extends Disposable {
|
|
|
137
174
|
}
|
|
138
175
|
if (focus === false) {
|
|
139
176
|
treeView.setFocus();
|
|
140
|
-
}
|
|
141
|
-
else if (focus) {
|
|
177
|
+
} else if (focus) {
|
|
142
178
|
treeView.setFocus(item);
|
|
143
179
|
}
|
|
144
180
|
let itemsToExpand = [item];
|
|
@@ -155,13 +191,28 @@ let MainThreadTreeViews = class MainThreadTreeViews extends Disposable {
|
|
|
155
191
|
}
|
|
156
192
|
}
|
|
157
193
|
registerListeners(treeViewId, treeView, disposables) {
|
|
158
|
-
disposables.add(
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
disposables.add(
|
|
194
|
+
disposables.add(
|
|
195
|
+
treeView.onDidExpandItem(item => this._proxy.$setExpanded(treeViewId, item.handle, true))
|
|
196
|
+
);
|
|
197
|
+
disposables.add(
|
|
198
|
+
treeView.onDidCollapseItem(item => this._proxy.$setExpanded(treeViewId, item.handle, false))
|
|
199
|
+
);
|
|
200
|
+
disposables.add(
|
|
201
|
+
treeView.onDidChangeSelectionAndFocus(items => this._proxy.$setSelectionAndFocus(treeViewId, ( items.selection.map((
|
|
202
|
+
{
|
|
203
|
+
handle
|
|
204
|
+
}
|
|
205
|
+
) => handle)), items.focus.handle))
|
|
206
|
+
);
|
|
207
|
+
disposables.add(
|
|
208
|
+
treeView.onDidChangeVisibility(isVisible => this._proxy.$setVisible(treeViewId, isVisible))
|
|
209
|
+
);
|
|
162
210
|
disposables.add(treeView.onDidChangeCheckboxState(items => {
|
|
163
211
|
this._proxy.$changeCheckboxState(treeViewId, ( items.map(item => {
|
|
164
|
-
return {
|
|
212
|
+
return {
|
|
213
|
+
treeItemHandle: item.handle,
|
|
214
|
+
newState: item.checkbox?.isChecked ?? false
|
|
215
|
+
};
|
|
165
216
|
})));
|
|
166
217
|
}));
|
|
167
218
|
}
|
|
@@ -181,13 +232,7 @@ let MainThreadTreeViews = class MainThreadTreeViews extends Disposable {
|
|
|
181
232
|
super.dispose();
|
|
182
233
|
}
|
|
183
234
|
};
|
|
184
|
-
MainThreadTreeViews = __decorate([
|
|
185
|
-
extHostNamedCustomer(MainContext.MainThreadTreeViews),
|
|
186
|
-
( __param(1, IViewsService)),
|
|
187
|
-
( __param(2, INotificationService)),
|
|
188
|
-
( __param(3, IExtensionService)),
|
|
189
|
-
( __param(4, ILogService))
|
|
190
|
-
], MainThreadTreeViews);
|
|
235
|
+
MainThreadTreeViews = __decorate([extHostNamedCustomer(MainContext.MainThreadTreeViews), ( __param(1, IViewsService)), ( __param(2, INotificationService)), ( __param(3, IExtensionService)), ( __param(4, ILogService)), ( __param(5, ITelemetryService))], MainThreadTreeViews);
|
|
191
236
|
class TreeViewDragAndDropController {
|
|
192
237
|
constructor(treeViewId, dropMimeTypes, dragMimeTypes, hasWillDrop, _proxy) {
|
|
193
238
|
this.treeViewId = treeViewId;
|
|
@@ -197,16 +242,31 @@ class TreeViewDragAndDropController {
|
|
|
197
242
|
this._proxy = _proxy;
|
|
198
243
|
this.dataTransfersCache = ( new DataTransferFileCache());
|
|
199
244
|
}
|
|
200
|
-
async handleDrop(
|
|
245
|
+
async handleDrop(
|
|
246
|
+
dataTransfer,
|
|
247
|
+
targetTreeItem,
|
|
248
|
+
token,
|
|
249
|
+
operationUuid,
|
|
250
|
+
sourceTreeId,
|
|
251
|
+
sourceTreeItemHandles
|
|
252
|
+
) {
|
|
201
253
|
const request = this.dataTransfersCache.add(dataTransfer);
|
|
202
254
|
try {
|
|
203
255
|
const dataTransferDto = await DataTransfer.fromList(dataTransfer);
|
|
204
256
|
if (token.isCancellationRequested) {
|
|
205
257
|
return;
|
|
206
258
|
}
|
|
207
|
-
return await this._proxy.$handleDrop(
|
|
208
|
-
|
|
209
|
-
|
|
259
|
+
return await this._proxy.$handleDrop(
|
|
260
|
+
this.treeViewId,
|
|
261
|
+
request.id,
|
|
262
|
+
dataTransferDto,
|
|
263
|
+
targetTreeItem?.handle,
|
|
264
|
+
token,
|
|
265
|
+
operationUuid,
|
|
266
|
+
sourceTreeId,
|
|
267
|
+
sourceTreeItemHandles
|
|
268
|
+
);
|
|
269
|
+
} finally {
|
|
210
270
|
request.dispose();
|
|
211
271
|
}
|
|
212
272
|
}
|
|
@@ -244,8 +304,7 @@ class TreeViewDataProvider {
|
|
|
244
304
|
if (!treeItems) {
|
|
245
305
|
this.itemsMap.clear();
|
|
246
306
|
}
|
|
247
|
-
return this._proxy.$getChildren(this.treeViewId, treeItems ? ( treeItems.map(item => item.handle)) : undefined)
|
|
248
|
-
.then(children => {
|
|
307
|
+
return this._proxy.$getChildren(this.treeViewId, treeItems ? ( treeItems.map(item => item.handle)) : undefined).then(children => {
|
|
249
308
|
const convertedChildren = this.convertTransferChildren(treeItems ?? [], children);
|
|
250
309
|
return this.postGetChildren(convertedChildren);
|
|
251
310
|
}, err => {
|
|
@@ -279,8 +338,7 @@ class TreeViewDataProvider {
|
|
|
279
338
|
this.updateTreeItem(currentTreeItem, newTreeItem);
|
|
280
339
|
if (newTreeItemHandle === newTreeItem.handle) {
|
|
281
340
|
itemsToRefresh.push(currentTreeItem);
|
|
282
|
-
}
|
|
283
|
-
else {
|
|
341
|
+
} else {
|
|
284
342
|
this.itemsMap.delete(newTreeItemHandle);
|
|
285
343
|
this.itemsMap.set(currentTreeItem.handle, currentTreeItem);
|
|
286
344
|
const parent = newTreeItem.parentHandle ? this.itemsMap.get(newTreeItem.parentHandle) : null;
|
|
@@ -291,7 +349,10 @@ class TreeViewDataProvider {
|
|
|
291
349
|
}
|
|
292
350
|
}
|
|
293
351
|
}
|
|
294
|
-
return {
|
|
352
|
+
return {
|
|
353
|
+
items: itemsToRefresh,
|
|
354
|
+
checkboxes: checkboxesToRefresh
|
|
355
|
+
};
|
|
295
356
|
}
|
|
296
357
|
getItem(treeItemHandle) {
|
|
297
358
|
return this.itemsMap.get(treeItemHandle);
|
|
@@ -313,7 +374,7 @@ class TreeViewDataProvider {
|
|
|
313
374
|
continue;
|
|
314
375
|
}
|
|
315
376
|
for (const element of elements) {
|
|
316
|
-
const resolvable = ( new ResolvableTreeItem(element, hasResolve ?
|
|
377
|
+
const resolvable = ( new ResolvableTreeItem(element, hasResolve ? token => {
|
|
317
378
|
return this._proxy.$resolve(this.treeViewId, element.handle, token);
|
|
318
379
|
} : undefined));
|
|
319
380
|
this.itemsMap.set(element.handle, resolvable);
|
|
@@ -326,8 +387,7 @@ class TreeViewDataProvider {
|
|
|
326
387
|
updateTreeItem(current, treeItem) {
|
|
327
388
|
treeItem.children = treeItem.children ? treeItem.children : undefined;
|
|
328
389
|
if (current) {
|
|
329
|
-
const properties = distinct([...( Object.keys(current instanceof ResolvableTreeItem ? current.asTreeItem() : current)),
|
|
330
|
-
...( Object.keys(treeItem))]);
|
|
390
|
+
const properties = distinct([...( Object.keys(current instanceof ResolvableTreeItem ? current.asTreeItem() : current)), ...( Object.keys(treeItem))]);
|
|
331
391
|
for (const property of properties) {
|
|
332
392
|
current[property] = treeItem[property];
|
|
333
393
|
}
|