@codingame/monaco-vscode-user-data-profile-service-override 31.0.0 → 32.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 +2 -2
- package/vscode/src/vs/platform/userDataProfile/common/userDataProfileStorageService.d.ts +3 -2
- package/vscode/src/vs/platform/userDataProfile/common/userDataProfileStorageService.js +17 -12
- package/vscode/src/vs/workbench/contrib/userDataProfile/browser/userDataProfile.d.ts +0 -1
- package/vscode/src/vs/workbench/contrib/userDataProfile/browser/userDataProfile.js +43 -39
- package/vscode/src/vs/workbench/contrib/userDataProfile/browser/userDataProfileActions.js +3 -3
- package/vscode/src/vs/workbench/contrib/userDataProfile/browser/userDataProfilesEditor.js +82 -82
- package/vscode/src/vs/workbench/contrib/userDataProfile/browser/userDataProfilesEditorModel.js +30 -30
- package/vscode/src/vs/workbench/services/userDataProfile/browser/extensionsResource.js +5 -5
- package/vscode/src/vs/workbench/services/userDataProfile/browser/globalStateResource.js +1 -1
- package/vscode/src/vs/workbench/services/userDataProfile/browser/keybindingsResource.js +1 -1
- package/vscode/src/vs/workbench/services/userDataProfile/browser/mcpProfileResource.js +1 -1
- package/vscode/src/vs/workbench/services/userDataProfile/browser/settingsResource.js +1 -1
- package/vscode/src/vs/workbench/services/userDataProfile/browser/snippetsResource.js +2 -2
- package/vscode/src/vs/workbench/services/userDataProfile/browser/tasksResource.js +1 -1
- package/vscode/src/vs/workbench/services/userDataProfile/browser/userDataProfileImportExportService.js +40 -39
- package/vscode/src/vs/workbench/services/userDataProfile/browser/userDataProfileManagement.js +8 -8
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codingame/monaco-vscode-user-data-profile-service-override",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "32.0.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "VSCode public API plugged on the monaco editor - user-data-profile service-override",
|
|
6
6
|
"keywords": [],
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
},
|
|
16
16
|
"type": "module",
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@codingame/monaco-vscode-api": "
|
|
18
|
+
"@codingame/monaco-vscode-api": "32.0.0"
|
|
19
19
|
},
|
|
20
20
|
"main": "index.js",
|
|
21
21
|
"module": "index.js",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
|
|
2
2
|
import { IStorageDatabase } from "@codingame/monaco-vscode-api/vscode/vs/base/parts/storage/common/storage";
|
|
3
|
-
import { IStorageValueChangeEvent, StorageTarget } from "@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage";
|
|
3
|
+
import { IStorageValueChangeEvent, StorageScope, StorageTarget } from "@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage";
|
|
4
4
|
import { IStorageService } from "@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service";
|
|
5
5
|
import { Event } from "@codingame/monaco-vscode-api/vscode/vs/base/common/event";
|
|
6
6
|
import { IRemoteService } from "@codingame/monaco-vscode-api/vscode/vs/platform/ipc/common/services";
|
|
@@ -19,6 +19,7 @@ export interface IProfileStorageChanges {
|
|
|
19
19
|
export interface IStorageValue {
|
|
20
20
|
readonly value: string | undefined;
|
|
21
21
|
readonly target: StorageTarget;
|
|
22
|
+
readonly scope?: StorageScope;
|
|
22
23
|
}
|
|
23
24
|
export declare abstract class AbstractUserDataProfileStorageService extends Disposable implements IUserDataProfileStorageService {
|
|
24
25
|
protected readonly storageService: IStorageService;
|
|
@@ -27,7 +28,7 @@ export declare abstract class AbstractUserDataProfileStorageService extends Disp
|
|
|
27
28
|
private readonly storageServicesMap;
|
|
28
29
|
constructor(persistStorages: boolean, storageService: IStorageService);
|
|
29
30
|
readStorageData(profile: IUserDataProfile): Promise<Map<string, IStorageValue>>;
|
|
30
|
-
updateStorageData(profile: IUserDataProfile, data: Map<string, string | undefined | null>, target: StorageTarget): Promise<void>;
|
|
31
|
+
updateStorageData(profile: IUserDataProfile, data: Map<string, string | undefined | null>, target: StorageTarget, scope?: StorageScope): Promise<void>;
|
|
31
32
|
withProfileScopedStorageService<T>(profile: IUserDataProfile, fn: (storageService: IStorageService) => Promise<T>): Promise<T>;
|
|
32
33
|
private getItems;
|
|
33
34
|
private writeItems;
|
|
@@ -16,12 +16,12 @@ let AbstractUserDataProfileStorageService = class AbstractUserDataProfileStorage
|
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
18
|
async readStorageData(profile) {
|
|
19
|
-
return this.withProfileScopedStorageService(profile, async storageService => this.getItems(storageService));
|
|
19
|
+
return this.withProfileScopedStorageService(profile, async storageService => this.getItems(storageService, profile));
|
|
20
20
|
}
|
|
21
|
-
async updateStorageData(profile, data, target) {
|
|
21
|
+
async updateStorageData(profile, data, target, scope = StorageScope.PROFILE) {
|
|
22
22
|
return this.withProfileScopedStorageService(
|
|
23
23
|
profile,
|
|
24
|
-
async storageService => this.writeItems(storageService, data, target)
|
|
24
|
+
async storageService => this.writeItems(storageService, data, target, scope)
|
|
25
25
|
);
|
|
26
26
|
}
|
|
27
27
|
async withProfileScopedStorageService(profile, fn) {
|
|
@@ -53,25 +53,30 @@ let AbstractUserDataProfileStorageService = class AbstractUserDataProfileStorage
|
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
|
-
getItems(storageService) {
|
|
56
|
+
getItems(storageService, profile) {
|
|
57
57
|
const result = ( new Map());
|
|
58
|
-
const populate = target => {
|
|
59
|
-
for (const key of ( storageService.keys(
|
|
58
|
+
const populate = (scope, target) => {
|
|
59
|
+
for (const key of ( storageService.keys(scope, target))) {
|
|
60
60
|
result.set(key, {
|
|
61
|
-
value: storageService.get(key,
|
|
62
|
-
target
|
|
61
|
+
value: storageService.get(key, scope),
|
|
62
|
+
target,
|
|
63
|
+
scope
|
|
63
64
|
});
|
|
64
65
|
}
|
|
65
66
|
};
|
|
66
|
-
populate(StorageTarget.USER);
|
|
67
|
-
populate(StorageTarget.MACHINE);
|
|
67
|
+
populate(StorageScope.PROFILE, StorageTarget.USER);
|
|
68
|
+
populate(StorageScope.PROFILE, StorageTarget.MACHINE);
|
|
69
|
+
if (profile.isDefault) {
|
|
70
|
+
populate(StorageScope.APPLICATION_SHARED, StorageTarget.USER);
|
|
71
|
+
populate(StorageScope.APPLICATION_SHARED, StorageTarget.MACHINE);
|
|
72
|
+
}
|
|
68
73
|
return result;
|
|
69
74
|
}
|
|
70
|
-
writeItems(storageService, items, target) {
|
|
75
|
+
writeItems(storageService, items, target, scope = StorageScope.PROFILE) {
|
|
71
76
|
storageService.storeAll(( Array.from(items.entries()).map(([key, value]) => ({
|
|
72
77
|
key,
|
|
73
78
|
value,
|
|
74
|
-
scope
|
|
79
|
+
scope,
|
|
75
80
|
target
|
|
76
81
|
}))), true);
|
|
77
82
|
}
|
|
@@ -28,7 +28,6 @@ export declare class UserDataProfilesWorkbenchContribution extends Disposable im
|
|
|
28
28
|
private readonly urlService;
|
|
29
29
|
static readonly ID = "workbench.contrib.userDataProfiles";
|
|
30
30
|
private readonly currentProfileContext;
|
|
31
|
-
private readonly isCurrentProfileTransientContext;
|
|
32
31
|
private readonly hasProfilesContext;
|
|
33
32
|
constructor(userDataProfileService: IUserDataProfileService, userDataProfilesService: IUserDataProfilesService, userDataProfileManagementService: IUserDataProfileManagementService, telemetryService: ITelemetryService, workspaceContextService: IWorkspaceContextService, workspaceTagsService: IWorkspaceTagsService, contextKeyService: IContextKeyService, editorService: IEditorService, instantiationService: IInstantiationService, lifecycleService: ILifecycleService, urlService: IURLService, environmentService: IBrowserWorkbenchEnvironmentService);
|
|
34
33
|
handleURL(uri: URI): Promise<boolean>;
|
|
@@ -10,7 +10,7 @@ import { IContextKeyService } from '@codingame/monaco-vscode-api/vscode/vs/platf
|
|
|
10
10
|
import { IUserDataProfilesService } from '@codingame/monaco-vscode-api/vscode/vs/platform/userDataProfile/common/userDataProfile.service';
|
|
11
11
|
import { LifecyclePhase } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/lifecycle/common/lifecycle';
|
|
12
12
|
import { ILifecycleService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/lifecycle/common/lifecycle.service';
|
|
13
|
-
import { CURRENT_PROFILE_CONTEXT,
|
|
13
|
+
import { CURRENT_PROFILE_CONTEXT, HAS_PROFILES_CONTEXT, isProfileURL, PROFILE_EXTENSION, PROFILES_CATEGORY, PROFILES_TITLE } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/userDataProfile/common/userDataProfile';
|
|
14
14
|
import { IUserDataProfileImportExportService, IUserDataProfileService, IUserDataProfileManagementService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/userDataProfile/common/userDataProfile.service';
|
|
15
15
|
import { IQuickInputService } from '@codingame/monaco-vscode-api/vscode/vs/platform/quickinput/common/quickInput.service';
|
|
16
16
|
import { INotificationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/notification/common/notification.service';
|
|
@@ -67,18 +67,19 @@ let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContr
|
|
|
67
67
|
this.urlService = urlService;
|
|
68
68
|
this.profilesDisposable = this._register(( new MutableDisposable()));
|
|
69
69
|
this.currentProfileContext = CURRENT_PROFILE_CONTEXT.bindTo(contextKeyService);
|
|
70
|
-
this.isCurrentProfileTransientContext = IS_CURRENT_PROFILE_TRANSIENT_CONTEXT.bindTo(contextKeyService);
|
|
71
70
|
this.currentProfileContext.set(this.userDataProfileService.currentProfile.id);
|
|
72
|
-
this.isCurrentProfileTransientContext.set(!!this.userDataProfileService.currentProfile.isTransient);
|
|
73
71
|
this._register(this.userDataProfileService.onDidChangeCurrentProfile(e => {
|
|
74
72
|
this.currentProfileContext.set(this.userDataProfileService.currentProfile.id);
|
|
75
|
-
this.isCurrentProfileTransientContext.set(!!this.userDataProfileService.currentProfile.isTransient);
|
|
76
73
|
}));
|
|
77
74
|
this.hasProfilesContext = HAS_PROFILES_CONTEXT.bindTo(contextKeyService);
|
|
78
|
-
this.hasProfilesContext.set(
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
75
|
+
this.hasProfilesContext.set(
|
|
76
|
+
this.userDataProfilesService.profiles.filter(p => !p.isInternal).length > 1
|
|
77
|
+
);
|
|
78
|
+
this._register(
|
|
79
|
+
this.userDataProfilesService.onDidChangeProfiles(e => this.hasProfilesContext.set(
|
|
80
|
+
this.userDataProfilesService.profiles.filter(p => !p.isInternal).length > 1
|
|
81
|
+
))
|
|
82
|
+
);
|
|
82
83
|
this.registerEditor();
|
|
83
84
|
this.registerActions();
|
|
84
85
|
this._register(this.urlService.registerHandler(this));
|
|
@@ -109,7 +110,7 @@ let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContr
|
|
|
109
110
|
}
|
|
110
111
|
registerEditor() {
|
|
111
112
|
( Registry.as(EditorExtensions.EditorPane)).registerEditorPane(
|
|
112
|
-
EditorPaneDescriptor.create(UserDataProfilesEditor, UserDataProfilesEditor.ID, ( localize(
|
|
113
|
+
EditorPaneDescriptor.create(UserDataProfilesEditor, UserDataProfilesEditor.ID, ( localize(15387, "Profiles Editor"))),
|
|
113
114
|
[( new SyncDescriptor(UserDataProfilesEditorInput))]
|
|
114
115
|
);
|
|
115
116
|
( Registry.as(EditorExtensions.EditorFactory)).registerEditorSerializer(UserDataProfilesEditorInput.ID, UserDataProfilesEditorInputSerializer);
|
|
@@ -127,7 +128,7 @@ let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContr
|
|
|
127
128
|
if (uriIdentityService.extUri.extname(resource) === `.${PROFILE_EXTENSION}`) {
|
|
128
129
|
const template = await userDataProfileImportExportService.resolveProfileTemplate(resource);
|
|
129
130
|
if (!template) {
|
|
130
|
-
notificationService.warn(( localize(
|
|
131
|
+
notificationService.warn(( localize(15388, "The dropped profile is invalid.")));
|
|
131
132
|
editorService.openEditor(textEditorService.createTextEditor({
|
|
132
133
|
resource
|
|
133
134
|
}));
|
|
@@ -165,7 +166,7 @@ let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContr
|
|
|
165
166
|
}
|
|
166
167
|
registerProfileSubMenu() {
|
|
167
168
|
const getProfilesTitle = () => {
|
|
168
|
-
return localize(
|
|
169
|
+
return localize(15389, "Profile ({0})", this.userDataProfileService.currentProfile.name);
|
|
169
170
|
};
|
|
170
171
|
MenuRegistry.appendMenuItem(MenuId.GlobalActivity, {
|
|
171
172
|
get title() {
|
|
@@ -188,17 +189,16 @@ let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContr
|
|
|
188
189
|
}
|
|
189
190
|
registerOpenProfileSubMenu() {
|
|
190
191
|
MenuRegistry.appendMenuItem(MenuId.MenubarFileMenu, {
|
|
191
|
-
title: ( localize(
|
|
192
|
+
title: ( localize(15390, "New Window with Profile")),
|
|
192
193
|
submenu: OpenProfileMenu,
|
|
193
194
|
group: "1_new",
|
|
194
|
-
order: 4
|
|
195
|
-
when: ( IsSessionsWindowContext.negate())
|
|
195
|
+
order: 4
|
|
196
196
|
});
|
|
197
197
|
}
|
|
198
198
|
registerProfilesActions() {
|
|
199
199
|
this.profilesDisposable.value = ( new DisposableStore());
|
|
200
200
|
for (const profile of this.userDataProfilesService.profiles) {
|
|
201
|
-
if (!profile.
|
|
201
|
+
if (!profile.isInternal) {
|
|
202
202
|
this.profilesDisposable.value.add(this.registerProfileEntryAction(profile));
|
|
203
203
|
this.profilesDisposable.value.add(this.registerNewWindowAction(profile));
|
|
204
204
|
}
|
|
@@ -212,7 +212,7 @@ let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContr
|
|
|
212
212
|
id: `workbench.profiles.actions.profileEntry.${profile.id}`,
|
|
213
213
|
title: profile.name,
|
|
214
214
|
metadata: {
|
|
215
|
-
description: ( localize2(
|
|
215
|
+
description: ( localize2(15391, "Switch to {0} profile", profile.name))
|
|
216
216
|
},
|
|
217
217
|
toggled: ( ContextKeyExpr.equals(CURRENT_PROFILE_CONTEXT.key, profile.id)),
|
|
218
218
|
menu: [{
|
|
@@ -233,7 +233,7 @@ let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContr
|
|
|
233
233
|
constructor() {
|
|
234
234
|
super({
|
|
235
235
|
id: `workbench.profiles.actions.newWindowWithProfile`,
|
|
236
|
-
title: ( localize2(
|
|
236
|
+
title: ( localize2(15392, "New Window with Profile...")),
|
|
237
237
|
category: PROFILES_CATEGORY,
|
|
238
238
|
precondition: HAS_PROFILES_CONTEXT,
|
|
239
239
|
f1: true
|
|
@@ -243,12 +243,12 @@ let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContr
|
|
|
243
243
|
const quickInputService = accessor.get(IQuickInputService);
|
|
244
244
|
const userDataProfilesService = accessor.get(IUserDataProfilesService);
|
|
245
245
|
const hostService = accessor.get(IHostService);
|
|
246
|
-
const pick = await quickInputService.pick(( userDataProfilesService.profiles.map(profile => ({
|
|
246
|
+
const pick = await quickInputService.pick(( userDataProfilesService.profiles.filter(profile => !profile.isInternal).map(profile => ({
|
|
247
247
|
label: profile.name,
|
|
248
248
|
profile
|
|
249
249
|
}))), {
|
|
250
|
-
title: ( localize(
|
|
251
|
-
placeHolder: ( localize(
|
|
250
|
+
title: ( localize(15393, "New Window with Profile")),
|
|
251
|
+
placeHolder: ( localize(15394, "Select Profile")),
|
|
252
252
|
canPickMany: false
|
|
253
253
|
});
|
|
254
254
|
if (pick) {
|
|
@@ -268,9 +268,9 @@ let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContr
|
|
|
268
268
|
constructor() {
|
|
269
269
|
super({
|
|
270
270
|
id,
|
|
271
|
-
title: ( localize2(
|
|
271
|
+
title: ( localize2(15395, "{0}", profile.name)),
|
|
272
272
|
metadata: {
|
|
273
|
-
description: ( localize2(
|
|
273
|
+
description: ( localize2(15396, "Open New Window with {0} Profile", profile.name))
|
|
274
274
|
},
|
|
275
275
|
menu: {
|
|
276
276
|
id: OpenProfileMenu,
|
|
@@ -291,7 +291,7 @@ let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContr
|
|
|
291
291
|
command: {
|
|
292
292
|
id,
|
|
293
293
|
category: PROFILES_CATEGORY,
|
|
294
|
-
title: ( localize2(
|
|
294
|
+
title: ( localize2(15397, "Open {0} Profile", profile.name)),
|
|
295
295
|
precondition
|
|
296
296
|
}
|
|
297
297
|
}));
|
|
@@ -303,7 +303,7 @@ let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContr
|
|
|
303
303
|
constructor() {
|
|
304
304
|
super({
|
|
305
305
|
id: `workbench.profiles.actions.switchProfile`,
|
|
306
|
-
title: ( localize2(
|
|
306
|
+
title: ( localize2(15398, "Switch Profile...")),
|
|
307
307
|
category: PROFILES_CATEGORY,
|
|
308
308
|
f1: true
|
|
309
309
|
});
|
|
@@ -312,6 +312,9 @@ let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContr
|
|
|
312
312
|
const quickInputService = accessor.get(IQuickInputService);
|
|
313
313
|
const items = [];
|
|
314
314
|
for (const profile of that.userDataProfilesService.profiles) {
|
|
315
|
+
if (profile.isInternal) {
|
|
316
|
+
continue;
|
|
317
|
+
}
|
|
315
318
|
items.push({
|
|
316
319
|
id: profile.id,
|
|
317
320
|
label: profile.id === that.userDataProfileService.currentProfile.id ? `$(check) ${profile.name}` : profile.name,
|
|
@@ -319,7 +322,7 @@ let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContr
|
|
|
319
322
|
});
|
|
320
323
|
}
|
|
321
324
|
const result = await quickInputService.pick(items.sort((a, b) => a.profile.name.localeCompare(b.profile.name)), {
|
|
322
|
-
placeHolder: ( localize(
|
|
325
|
+
placeHolder: ( localize(15399, "Select Profile"))
|
|
323
326
|
});
|
|
324
327
|
if (result) {
|
|
325
328
|
await that.userDataProfileManagementService.switchProfile(result.profile);
|
|
@@ -334,8 +337,8 @@ let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContr
|
|
|
334
337
|
super({
|
|
335
338
|
id: `workbench.profiles.actions.manageProfiles`,
|
|
336
339
|
title: {
|
|
337
|
-
...( localize2(
|
|
338
|
-
mnemonicTitle: ( localize(
|
|
340
|
+
...( localize2(15400, "Profiles")),
|
|
341
|
+
mnemonicTitle: ( localize(15401, "&&Profiles"))
|
|
339
342
|
},
|
|
340
343
|
menu: [{
|
|
341
344
|
id: MenuId.GlobalActivity,
|
|
@@ -364,7 +367,7 @@ let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContr
|
|
|
364
367
|
command: {
|
|
365
368
|
id: "workbench.profiles.actions.manageProfiles",
|
|
366
369
|
category: Categories.Preferences,
|
|
367
|
-
title: ( localize2(
|
|
370
|
+
title: ( localize2(15402, "Open Profiles (UI)"))
|
|
368
371
|
}
|
|
369
372
|
}));
|
|
370
373
|
return disposables;
|
|
@@ -377,7 +380,7 @@ let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContr
|
|
|
377
380
|
constructor() {
|
|
378
381
|
super({
|
|
379
382
|
id,
|
|
380
|
-
title: ( localize2(
|
|
383
|
+
title: ( localize2(15403, "Export Profile...")),
|
|
381
384
|
category: PROFILES_CATEGORY,
|
|
382
385
|
f1: true
|
|
383
386
|
});
|
|
@@ -391,7 +394,7 @@ let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContr
|
|
|
391
394
|
command: {
|
|
392
395
|
id,
|
|
393
396
|
title: ( localize2(
|
|
394
|
-
|
|
397
|
+
15404,
|
|
395
398
|
"Export Profile ({0})...",
|
|
396
399
|
that.userDataProfileService.currentProfile.name
|
|
397
400
|
))
|
|
@@ -405,7 +408,7 @@ let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContr
|
|
|
405
408
|
constructor() {
|
|
406
409
|
super({
|
|
407
410
|
id: "workbench.profiles.actions.createFromCurrentProfile",
|
|
408
|
-
title: ( localize2(
|
|
411
|
+
title: ( localize2(15405, "Save Current Profile As...")),
|
|
409
412
|
category: PROFILES_CATEGORY,
|
|
410
413
|
f1: true
|
|
411
414
|
});
|
|
@@ -422,7 +425,7 @@ let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContr
|
|
|
422
425
|
constructor() {
|
|
423
426
|
super({
|
|
424
427
|
id: "workbench.profiles.actions.createProfile",
|
|
425
|
-
title: ( localize2(
|
|
428
|
+
title: ( localize2(15406, "New Profile...")),
|
|
426
429
|
category: PROFILES_CATEGORY,
|
|
427
430
|
f1: true,
|
|
428
431
|
menu: [{
|
|
@@ -443,7 +446,7 @@ let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContr
|
|
|
443
446
|
constructor() {
|
|
444
447
|
super({
|
|
445
448
|
id: "workbench.profiles.actions.deleteProfile",
|
|
446
|
-
title: ( localize2(
|
|
449
|
+
title: ( localize2(15407, "Delete Profile...")),
|
|
447
450
|
category: PROFILES_CATEGORY,
|
|
448
451
|
f1: true,
|
|
449
452
|
precondition: HAS_PROFILES_CONTEXT
|
|
@@ -455,15 +458,15 @@ let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContr
|
|
|
455
458
|
const userDataProfilesService = accessor.get(IUserDataProfilesService);
|
|
456
459
|
const userDataProfileManagementService = accessor.get(IUserDataProfileManagementService);
|
|
457
460
|
const notificationService = accessor.get(INotificationService);
|
|
458
|
-
const profiles = userDataProfilesService.profiles.filter(p => !p.isDefault && !p.
|
|
461
|
+
const profiles = userDataProfilesService.profiles.filter(p => !p.isDefault && !p.isInternal);
|
|
459
462
|
if (profiles.length) {
|
|
460
463
|
const picks = await quickInputService.pick(( profiles.map(profile => ({
|
|
461
464
|
label: profile.name,
|
|
462
|
-
description: profile.id === userDataProfileService.currentProfile.id ? ( localize(
|
|
465
|
+
description: profile.id === userDataProfileService.currentProfile.id ? ( localize(15408, "Current")) : undefined,
|
|
463
466
|
profile
|
|
464
467
|
}))), {
|
|
465
|
-
title: ( localize(
|
|
466
|
-
placeHolder: ( localize(
|
|
468
|
+
title: ( localize(15409, "Delete Profile...")),
|
|
469
|
+
placeHolder: ( localize(15410, "Select Profiles to Delete")),
|
|
467
470
|
canPickMany: true
|
|
468
471
|
});
|
|
469
472
|
if (picks) {
|
|
@@ -496,9 +499,10 @@ let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContr
|
|
|
496
499
|
}
|
|
497
500
|
async reportWorkspaceProfileInfo() {
|
|
498
501
|
await this.lifecycleService.when(LifecyclePhase.Eventually);
|
|
499
|
-
|
|
502
|
+
const count = this.userDataProfilesService.profiles.filter(p => !p.isInternal).length - 1;
|
|
503
|
+
if (count > 0) {
|
|
500
504
|
this.telemetryService.publicLog2("profiles:count", {
|
|
501
|
-
count
|
|
505
|
+
count
|
|
502
506
|
});
|
|
503
507
|
}
|
|
504
508
|
const workspaceId = await this.workspaceTagsService.getTelemetryWorkspaceId(
|
|
@@ -11,7 +11,7 @@ class CreateTransientProfileAction extends Action2 {
|
|
|
11
11
|
this.ID = "workbench.profiles.actions.createTemporaryProfile";
|
|
12
12
|
}
|
|
13
13
|
static {
|
|
14
|
-
this.TITLE = ( localize2(
|
|
14
|
+
this.TITLE = ( localize2(15411, "New Window with Temporary Profile"));
|
|
15
15
|
}
|
|
16
16
|
constructor() {
|
|
17
17
|
super({
|
|
@@ -32,7 +32,7 @@ registerAction2(class CleanupProfilesAction extends Action2 {
|
|
|
32
32
|
constructor() {
|
|
33
33
|
super({
|
|
34
34
|
id: "workbench.profiles.actions.cleanupProfiles",
|
|
35
|
-
title: ( localize2(
|
|
35
|
+
title: ( localize2(15412, "Cleanup Profiles")),
|
|
36
36
|
category: Categories.Developer,
|
|
37
37
|
f1: true
|
|
38
38
|
});
|
|
@@ -45,7 +45,7 @@ registerAction2(class ResetWorkspacesAction extends Action2 {
|
|
|
45
45
|
constructor() {
|
|
46
46
|
super({
|
|
47
47
|
id: "workbench.profiles.actions.resetWorkspaces",
|
|
48
|
-
title: ( localize2(
|
|
48
|
+
title: ( localize2(15413, "Reset Workspace Profiles Associations")),
|
|
49
49
|
category: Categories.Developer,
|
|
50
50
|
f1: true
|
|
51
51
|
});
|