@codingame/monaco-vscode-user-data-profile-service-override 25.1.2 → 26.0.1
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/browser/userDataProfile.js +18 -15
- package/vscode/src/vs/platform/userDataProfile/common/userDataProfileStorageService.js +31 -19
- package/vscode/src/vs/workbench/contrib/userDataProfile/browser/media/userDataProfilesEditor.css +9 -4
- package/vscode/src/vs/workbench/contrib/userDataProfile/browser/userDataProfile.js +144 -115
- package/vscode/src/vs/workbench/contrib/userDataProfile/browser/userDataProfileActions.js +16 -10
- package/vscode/src/vs/workbench/contrib/userDataProfile/browser/userDataProfilesEditor.js +889 -623
- package/vscode/src/vs/workbench/contrib/userDataProfile/browser/userDataProfilesEditorModel.js +449 -296
- package/vscode/src/vs/workbench/services/userData/browser/userDataInit.js +6 -8
- package/vscode/src/vs/workbench/services/userDataProfile/browser/extensionsResource.js +135 -77
- package/vscode/src/vs/workbench/services/userDataProfile/browser/globalStateResource.js +33 -32
- package/vscode/src/vs/workbench/services/userDataProfile/browser/keybindingsResource.js +33 -34
- package/vscode/src/vs/workbench/services/userDataProfile/browser/mcpProfileResource.js +28 -33
- package/vscode/src/vs/workbench/services/userDataProfile/browser/settingsResource.js +42 -40
- package/vscode/src/vs/workbench/services/userDataProfile/browser/snippetsResource.js +23 -28
- package/vscode/src/vs/workbench/services/userDataProfile/browser/tasksResource.js +28 -33
- package/vscode/src/vs/workbench/services/userDataProfile/browser/userDataProfileImportExportService.js +209 -153
- package/vscode/src/vs/workbench/services/userDataProfile/browser/userDataProfileInit.js +28 -25
- package/vscode/src/vs/workbench/services/userDataProfile/browser/userDataProfileManagement.js +55 -41
- package/vscode/src/vs/workbench/services/userDataProfile/browser/userDataProfileStorageService.js +20 -9
- package/vscode/src/vs/workbench/services/userDataSync/browser/userDataSyncInit.js +111 -73
- package/vscode/src/vs/workbench/services/userDataSync/common/userDataSyncUtil.js +20 -15
- package/vscode/src/vs/base/browser/ui/radio/radio.css +0 -69
- package/vscode/src/vs/base/browser/ui/radio/radio.d.ts +0 -37
- package/vscode/src/vs/base/browser/ui/radio/radio.js +0 -72
|
@@ -10,7 +10,7 @@ import { IUserDataProfilesService } from '@codingame/monaco-vscode-api/vscode/vs
|
|
|
10
10
|
import { LifecyclePhase } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/lifecycle/common/lifecycle';
|
|
11
11
|
import { ILifecycleService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/lifecycle/common/lifecycle.service';
|
|
12
12
|
import { CURRENT_PROFILE_CONTEXT, IS_CURRENT_PROFILE_TRANSIENT_CONTEXT, HAS_PROFILES_CONTEXT, isProfileURL, PROFILE_EXTENSION, PROFILES_CATEGORY, PROFILES_TITLE } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/userDataProfile/common/userDataProfile';
|
|
13
|
-
import { IUserDataProfileService, IUserDataProfileManagementService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/userDataProfile/common/userDataProfile.service';
|
|
13
|
+
import { IUserDataProfileImportExportService, IUserDataProfileService, IUserDataProfileManagementService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/userDataProfile/common/userDataProfile.service';
|
|
14
14
|
import { IQuickInputService } from '@codingame/monaco-vscode-api/vscode/vs/platform/quickinput/common/quickInput.service';
|
|
15
15
|
import { INotificationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/notification/common/notification.service';
|
|
16
16
|
import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
|
|
@@ -31,12 +31,28 @@ import { IURLService } from '@codingame/monaco-vscode-api/vscode/vs/platform/url
|
|
|
31
31
|
import { IBrowserWorkbenchEnvironmentService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/environment/browser/environmentService.service';
|
|
32
32
|
import { Extensions } from '@codingame/monaco-vscode-api/vscode/vs/platform/dnd/browser/dnd';
|
|
33
33
|
import { IUriIdentityService } from '@codingame/monaco-vscode-api/vscode/vs/platform/uriIdentity/common/uriIdentity.service';
|
|
34
|
+
import { ITextEditorService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/textfile/common/textEditorService.service';
|
|
34
35
|
|
|
35
|
-
const OpenProfileMenu = ( new MenuId(
|
|
36
|
-
const ProfilesMenu = ( new MenuId(
|
|
36
|
+
const OpenProfileMenu = ( new MenuId("OpenProfile"));
|
|
37
|
+
const ProfilesMenu = ( new MenuId("Profiles"));
|
|
37
38
|
let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContribution extends Disposable {
|
|
38
|
-
static {
|
|
39
|
-
|
|
39
|
+
static {
|
|
40
|
+
this.ID = "workbench.contrib.userDataProfiles";
|
|
41
|
+
}
|
|
42
|
+
constructor(
|
|
43
|
+
userDataProfileService,
|
|
44
|
+
userDataProfilesService,
|
|
45
|
+
userDataProfileManagementService,
|
|
46
|
+
telemetryService,
|
|
47
|
+
workspaceContextService,
|
|
48
|
+
workspaceTagsService,
|
|
49
|
+
contextKeyService,
|
|
50
|
+
editorGroupsService,
|
|
51
|
+
instantiationService,
|
|
52
|
+
lifecycleService,
|
|
53
|
+
urlService,
|
|
54
|
+
environmentService
|
|
55
|
+
) {
|
|
40
56
|
super();
|
|
41
57
|
this.userDataProfileService = userDataProfileService;
|
|
42
58
|
this.userDataProfilesService = userDataProfilesService;
|
|
@@ -59,7 +75,9 @@ let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContr
|
|
|
59
75
|
}));
|
|
60
76
|
this.hasProfilesContext = HAS_PROFILES_CONTEXT.bindTo(contextKeyService);
|
|
61
77
|
this.hasProfilesContext.set(this.userDataProfilesService.profiles.length > 1);
|
|
62
|
-
this._register(this.userDataProfilesService.onDidChangeProfiles(
|
|
78
|
+
this._register(this.userDataProfilesService.onDidChangeProfiles(
|
|
79
|
+
e => this.hasProfilesContext.set(this.userDataProfilesService.profiles.length > 1)
|
|
80
|
+
));
|
|
63
81
|
this.registerEditor();
|
|
64
82
|
this.registerActions();
|
|
65
83
|
this._register(this.urlService.registerHandler(this));
|
|
@@ -68,7 +86,9 @@ let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContr
|
|
|
68
86
|
}
|
|
69
87
|
this.reportWorkspaceProfileInfo();
|
|
70
88
|
if (environmentService.options?.profileToPreview) {
|
|
71
|
-
lifecycleService.when(LifecyclePhase.Restored).then(
|
|
89
|
+
lifecycleService.when(LifecyclePhase.Restored).then(
|
|
90
|
+
() => this.handleURL(URI.revive(environmentService.options.profileToPreview))
|
|
91
|
+
);
|
|
72
92
|
}
|
|
73
93
|
this.registerDropHandler();
|
|
74
94
|
}
|
|
@@ -87,9 +107,10 @@ let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContr
|
|
|
87
107
|
return editor;
|
|
88
108
|
}
|
|
89
109
|
registerEditor() {
|
|
90
|
-
( Registry.as(EditorExtensions.EditorPane)).registerEditorPane(
|
|
91
|
-
(
|
|
92
|
-
|
|
110
|
+
( Registry.as(EditorExtensions.EditorPane)).registerEditorPane(
|
|
111
|
+
EditorPaneDescriptor.create(UserDataProfilesEditor, UserDataProfilesEditor.ID, ( localize(13285, "Profiles Editor"))),
|
|
112
|
+
[( new SyncDescriptor(UserDataProfilesEditorInput))]
|
|
113
|
+
);
|
|
93
114
|
( Registry.as(EditorExtensions.EditorFactory)).registerEditorSerializer(UserDataProfilesEditorInput.ID, UserDataProfilesEditorInputSerializer);
|
|
94
115
|
}
|
|
95
116
|
registerDropHandler() {
|
|
@@ -98,16 +119,32 @@ let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContr
|
|
|
98
119
|
this._register(dndRegistry.registerDropHandler(new (class UserDataProfileDropHandler {
|
|
99
120
|
async handleDrop(resource, accessor) {
|
|
100
121
|
const uriIdentityService = accessor.get(IUriIdentityService);
|
|
122
|
+
const userDataProfileImportExportService = accessor.get(IUserDataProfileImportExportService);
|
|
123
|
+
const editorGroupsService = accessor.get(IEditorGroupsService);
|
|
124
|
+
const textEditorService = accessor.get(ITextEditorService);
|
|
125
|
+
const notificationService = accessor.get(INotificationService);
|
|
101
126
|
if (uriIdentityService.extUri.extname(resource) === `.${PROFILE_EXTENSION}`) {
|
|
127
|
+
const template = await userDataProfileImportExportService.resolveProfileTemplate(resource);
|
|
128
|
+
if (!template) {
|
|
129
|
+
notificationService.warn(( localize(13286, "The dropped profile is invalid.")));
|
|
130
|
+
editorGroupsService.activeGroup.openEditor(textEditorService.createTextEditor({
|
|
131
|
+
resource
|
|
132
|
+
}));
|
|
133
|
+
return true;
|
|
134
|
+
}
|
|
102
135
|
const editor = await that.openProfilesEditor();
|
|
103
136
|
if (editor) {
|
|
104
|
-
|
|
137
|
+
try {
|
|
138
|
+
await editor.createNewProfile(resource);
|
|
139
|
+
} catch (error) {
|
|
140
|
+
return false;
|
|
141
|
+
}
|
|
105
142
|
}
|
|
106
143
|
return true;
|
|
107
144
|
}
|
|
108
145
|
return false;
|
|
109
146
|
}
|
|
110
|
-
})));
|
|
147
|
+
})()));
|
|
111
148
|
}
|
|
112
149
|
registerActions() {
|
|
113
150
|
this.registerProfileSubMenu();
|
|
@@ -116,7 +153,9 @@ let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContr
|
|
|
116
153
|
this.registerOpenProfileSubMenu();
|
|
117
154
|
this.registerNewWindowWithProfileAction();
|
|
118
155
|
this.registerProfilesActions();
|
|
119
|
-
this._register(
|
|
156
|
+
this._register(
|
|
157
|
+
this.userDataProfilesService.onDidChangeProfiles(() => this.registerProfilesActions())
|
|
158
|
+
);
|
|
120
159
|
this._register(this.registerExportCurrentProfileAction());
|
|
121
160
|
this.registerCreateFromCurrentProfileAction();
|
|
122
161
|
this.registerNewProfileAction();
|
|
@@ -125,14 +164,14 @@ let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContr
|
|
|
125
164
|
}
|
|
126
165
|
registerProfileSubMenu() {
|
|
127
166
|
const getProfilesTitle = () => {
|
|
128
|
-
return localize(
|
|
167
|
+
return localize(13287, "Profile ({0})", this.userDataProfileService.currentProfile.name);
|
|
129
168
|
};
|
|
130
169
|
MenuRegistry.appendMenuItem(MenuId.GlobalActivity, {
|
|
131
170
|
get title() {
|
|
132
171
|
return getProfilesTitle();
|
|
133
172
|
},
|
|
134
173
|
submenu: ProfilesMenu,
|
|
135
|
-
group:
|
|
174
|
+
group: "2_configuration",
|
|
136
175
|
order: 1,
|
|
137
176
|
when: HAS_PROFILES_CONTEXT
|
|
138
177
|
});
|
|
@@ -141,17 +180,17 @@ let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContr
|
|
|
141
180
|
return getProfilesTitle();
|
|
142
181
|
},
|
|
143
182
|
submenu: ProfilesMenu,
|
|
144
|
-
group:
|
|
183
|
+
group: "2_configuration",
|
|
145
184
|
order: 1,
|
|
146
185
|
when: HAS_PROFILES_CONTEXT
|
|
147
186
|
});
|
|
148
187
|
}
|
|
149
188
|
registerOpenProfileSubMenu() {
|
|
150
189
|
MenuRegistry.appendMenuItem(MenuId.MenubarFileMenu, {
|
|
151
|
-
title: ( localize(
|
|
190
|
+
title: ( localize(13288, "New Window with Profile")),
|
|
152
191
|
submenu: OpenProfileMenu,
|
|
153
|
-
group:
|
|
154
|
-
order: 4
|
|
192
|
+
group: "1_new",
|
|
193
|
+
order: 4
|
|
155
194
|
});
|
|
156
195
|
}
|
|
157
196
|
registerProfilesActions() {
|
|
@@ -171,15 +210,13 @@ let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContr
|
|
|
171
210
|
id: `workbench.profiles.actions.profileEntry.${profile.id}`,
|
|
172
211
|
title: profile.name,
|
|
173
212
|
metadata: {
|
|
174
|
-
description: ( localize2(
|
|
213
|
+
description: ( localize2(13289, "Switch to {0} profile", profile.name))
|
|
175
214
|
},
|
|
176
215
|
toggled: ( ContextKeyExpr.equals(CURRENT_PROFILE_CONTEXT.key, profile.id)),
|
|
177
|
-
menu: [
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
}
|
|
182
|
-
]
|
|
216
|
+
menu: [{
|
|
217
|
+
id: ProfilesMenu,
|
|
218
|
+
group: "0_profiles"
|
|
219
|
+
}]
|
|
183
220
|
});
|
|
184
221
|
}
|
|
185
222
|
async run(accessor) {
|
|
@@ -194,10 +231,10 @@ let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContr
|
|
|
194
231
|
constructor() {
|
|
195
232
|
super({
|
|
196
233
|
id: `workbench.profiles.actions.newWindowWithProfile`,
|
|
197
|
-
title: ( localize2(
|
|
234
|
+
title: ( localize2(13290, "New Window with Profile...")),
|
|
198
235
|
category: PROFILES_CATEGORY,
|
|
199
236
|
precondition: HAS_PROFILES_CONTEXT,
|
|
200
|
-
f1: true
|
|
237
|
+
f1: true
|
|
201
238
|
});
|
|
202
239
|
}
|
|
203
240
|
async run(accessor) {
|
|
@@ -208,46 +245,53 @@ let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContr
|
|
|
208
245
|
label: profile.name,
|
|
209
246
|
profile
|
|
210
247
|
}))), {
|
|
211
|
-
title: ( localize(
|
|
212
|
-
placeHolder: ( localize(
|
|
248
|
+
title: ( localize(13291, "New Window with Profile")),
|
|
249
|
+
placeHolder: ( localize(13292, "Select Profile")),
|
|
213
250
|
canPickMany: false
|
|
214
251
|
});
|
|
215
252
|
if (pick) {
|
|
216
|
-
return hostService.openWindow({
|
|
253
|
+
return hostService.openWindow({
|
|
254
|
+
remoteAuthority: null,
|
|
255
|
+
forceProfile: pick.profile.name
|
|
256
|
+
});
|
|
217
257
|
}
|
|
218
258
|
}
|
|
219
259
|
});
|
|
220
260
|
}
|
|
221
261
|
registerNewWindowAction(profile) {
|
|
222
262
|
const disposables = ( new DisposableStore());
|
|
223
|
-
const id = `workbench.action.openProfile.${profile.name.replace(
|
|
263
|
+
const id = `workbench.action.openProfile.${profile.name.replace("/s+/", "_")}`;
|
|
264
|
+
const precondition = HAS_PROFILES_CONTEXT;
|
|
224
265
|
disposables.add(registerAction2(class NewWindowAction extends Action2 {
|
|
225
266
|
constructor() {
|
|
226
267
|
super({
|
|
227
268
|
id,
|
|
228
|
-
title: ( localize2(
|
|
269
|
+
title: ( localize2(13293, "{0}", profile.name)),
|
|
229
270
|
metadata: {
|
|
230
|
-
description: ( localize2(
|
|
271
|
+
description: ( localize2(13294, "Open New Window with {0} Profile", profile.name))
|
|
231
272
|
},
|
|
232
273
|
menu: {
|
|
233
274
|
id: OpenProfileMenu,
|
|
234
|
-
group:
|
|
235
|
-
when:
|
|
275
|
+
group: "0_profiles",
|
|
276
|
+
when: precondition
|
|
236
277
|
}
|
|
237
278
|
});
|
|
238
279
|
}
|
|
239
280
|
run(accessor) {
|
|
240
281
|
const hostService = accessor.get(IHostService);
|
|
241
|
-
return hostService.openWindow({
|
|
282
|
+
return hostService.openWindow({
|
|
283
|
+
remoteAuthority: null,
|
|
284
|
+
forceProfile: profile.name
|
|
285
|
+
});
|
|
242
286
|
}
|
|
243
287
|
}));
|
|
244
288
|
disposables.add(MenuRegistry.appendMenuItem(MenuId.CommandPalette, {
|
|
245
289
|
command: {
|
|
246
290
|
id,
|
|
247
291
|
category: PROFILES_CATEGORY,
|
|
248
|
-
title: ( localize2(
|
|
249
|
-
precondition
|
|
250
|
-
}
|
|
292
|
+
title: ( localize2(13295, "Open {0} Profile", profile.name)),
|
|
293
|
+
precondition
|
|
294
|
+
}
|
|
251
295
|
}));
|
|
252
296
|
return disposables;
|
|
253
297
|
}
|
|
@@ -257,9 +301,9 @@ let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContr
|
|
|
257
301
|
constructor() {
|
|
258
302
|
super({
|
|
259
303
|
id: `workbench.profiles.actions.switchProfile`,
|
|
260
|
-
title: ( localize2(
|
|
304
|
+
title: ( localize2(13296, "Switch Profile...")),
|
|
261
305
|
category: PROFILES_CATEGORY,
|
|
262
|
-
f1: true
|
|
306
|
+
f1: true
|
|
263
307
|
});
|
|
264
308
|
}
|
|
265
309
|
async run(accessor) {
|
|
@@ -269,11 +313,11 @@ let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContr
|
|
|
269
313
|
items.push({
|
|
270
314
|
id: profile.id,
|
|
271
315
|
label: profile.id === that.userDataProfileService.currentProfile.id ? `$(check) ${profile.name}` : profile.name,
|
|
272
|
-
profile
|
|
316
|
+
profile
|
|
273
317
|
});
|
|
274
318
|
}
|
|
275
319
|
const result = await quickInputService.pick(items.sort((a, b) => a.profile.name.localeCompare(b.profile.name)), {
|
|
276
|
-
placeHolder: ( localize(
|
|
320
|
+
placeHolder: ( localize(13297, "Select Profile"))
|
|
277
321
|
});
|
|
278
322
|
if (result) {
|
|
279
323
|
await that.userDataProfileManagementService.switchProfile(result.profile);
|
|
@@ -288,28 +332,24 @@ let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContr
|
|
|
288
332
|
super({
|
|
289
333
|
id: `workbench.profiles.actions.manageProfiles`,
|
|
290
334
|
title: {
|
|
291
|
-
...( localize2(
|
|
292
|
-
mnemonicTitle: ( localize(
|
|
335
|
+
...( localize2(13298, "Profiles")),
|
|
336
|
+
mnemonicTitle: ( localize(13299, "&&Profiles"))
|
|
293
337
|
},
|
|
294
|
-
menu: [
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
group: '1_manage',
|
|
310
|
-
order: 1,
|
|
311
|
-
},
|
|
312
|
-
]
|
|
338
|
+
menu: [{
|
|
339
|
+
id: MenuId.GlobalActivity,
|
|
340
|
+
group: "2_configuration",
|
|
341
|
+
order: 1,
|
|
342
|
+
when: ( HAS_PROFILES_CONTEXT.negate())
|
|
343
|
+
}, {
|
|
344
|
+
id: MenuId.MenubarPreferencesMenu,
|
|
345
|
+
group: "2_configuration",
|
|
346
|
+
order: 1,
|
|
347
|
+
when: ( HAS_PROFILES_CONTEXT.negate())
|
|
348
|
+
}, {
|
|
349
|
+
id: ProfilesMenu,
|
|
350
|
+
group: "1_manage",
|
|
351
|
+
order: 1
|
|
352
|
+
}]
|
|
313
353
|
});
|
|
314
354
|
}
|
|
315
355
|
run(accessor) {
|
|
@@ -320,24 +360,24 @@ let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContr
|
|
|
320
360
|
}));
|
|
321
361
|
disposables.add(MenuRegistry.appendMenuItem(MenuId.CommandPalette, {
|
|
322
362
|
command: {
|
|
323
|
-
id:
|
|
363
|
+
id: "workbench.profiles.actions.manageProfiles",
|
|
324
364
|
category: Categories.Preferences,
|
|
325
|
-
title: ( localize2(
|
|
326
|
-
}
|
|
365
|
+
title: ( localize2(13300, "Open Profiles (UI)"))
|
|
366
|
+
}
|
|
327
367
|
}));
|
|
328
368
|
return disposables;
|
|
329
369
|
}
|
|
330
370
|
registerExportCurrentProfileAction() {
|
|
331
371
|
const that = this;
|
|
332
372
|
const disposables = ( new DisposableStore());
|
|
333
|
-
const id =
|
|
373
|
+
const id = "workbench.profiles.actions.exportProfile";
|
|
334
374
|
disposables.add(registerAction2(class ExportProfileAction extends Action2 {
|
|
335
375
|
constructor() {
|
|
336
376
|
super({
|
|
337
377
|
id,
|
|
338
|
-
title: ( localize2(
|
|
378
|
+
title: ( localize2(13301, "Export Profile...")),
|
|
339
379
|
category: PROFILES_CATEGORY,
|
|
340
|
-
f1: true
|
|
380
|
+
f1: true
|
|
341
381
|
});
|
|
342
382
|
}
|
|
343
383
|
async run() {
|
|
@@ -349,11 +389,11 @@ let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContr
|
|
|
349
389
|
command: {
|
|
350
390
|
id,
|
|
351
391
|
title: ( localize2(
|
|
352
|
-
|
|
392
|
+
13302,
|
|
353
393
|
"Export Profile ({0})...",
|
|
354
394
|
that.userDataProfileService.currentProfile.name
|
|
355
|
-
))
|
|
356
|
-
}
|
|
395
|
+
))
|
|
396
|
+
}
|
|
357
397
|
}));
|
|
358
398
|
return disposables;
|
|
359
399
|
}
|
|
@@ -362,10 +402,10 @@ let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContr
|
|
|
362
402
|
this._register(registerAction2(class CreateFromCurrentProfileAction extends Action2 {
|
|
363
403
|
constructor() {
|
|
364
404
|
super({
|
|
365
|
-
id:
|
|
366
|
-
title: ( localize2(
|
|
405
|
+
id: "workbench.profiles.actions.createFromCurrentProfile",
|
|
406
|
+
title: ( localize2(13303, "Save Current Profile As...")),
|
|
367
407
|
category: PROFILES_CATEGORY,
|
|
368
|
-
f1: true
|
|
408
|
+
f1: true
|
|
369
409
|
});
|
|
370
410
|
}
|
|
371
411
|
async run() {
|
|
@@ -379,17 +419,15 @@ let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContr
|
|
|
379
419
|
this._register(registerAction2(class CreateProfileAction extends Action2 {
|
|
380
420
|
constructor() {
|
|
381
421
|
super({
|
|
382
|
-
id:
|
|
383
|
-
title: ( localize2(
|
|
422
|
+
id: "workbench.profiles.actions.createProfile",
|
|
423
|
+
title: ( localize2(13304, "New Profile...")),
|
|
384
424
|
category: PROFILES_CATEGORY,
|
|
385
425
|
f1: true,
|
|
386
|
-
menu: [
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
}
|
|
392
|
-
]
|
|
426
|
+
menu: [{
|
|
427
|
+
id: OpenProfileMenu,
|
|
428
|
+
group: "1_manage_profiles",
|
|
429
|
+
order: 1
|
|
430
|
+
}]
|
|
393
431
|
});
|
|
394
432
|
}
|
|
395
433
|
async run(accessor) {
|
|
@@ -402,11 +440,11 @@ let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContr
|
|
|
402
440
|
this._register(registerAction2(class DeleteProfileAction extends Action2 {
|
|
403
441
|
constructor() {
|
|
404
442
|
super({
|
|
405
|
-
id:
|
|
406
|
-
title: ( localize2(
|
|
443
|
+
id: "workbench.profiles.actions.deleteProfile",
|
|
444
|
+
title: ( localize2(13305, "Delete Profile...")),
|
|
407
445
|
category: PROFILES_CATEGORY,
|
|
408
446
|
f1: true,
|
|
409
|
-
precondition: HAS_PROFILES_CONTEXT
|
|
447
|
+
precondition: HAS_PROFILES_CONTEXT
|
|
410
448
|
});
|
|
411
449
|
}
|
|
412
450
|
async run(accessor) {
|
|
@@ -419,18 +457,17 @@ let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContr
|
|
|
419
457
|
if (profiles.length) {
|
|
420
458
|
const picks = await quickInputService.pick(( profiles.map(profile => ({
|
|
421
459
|
label: profile.name,
|
|
422
|
-
description: profile.id === userDataProfileService.currentProfile.id ? ( localize(
|
|
460
|
+
description: profile.id === userDataProfileService.currentProfile.id ? ( localize(13306, "Current")) : undefined,
|
|
423
461
|
profile
|
|
424
462
|
}))), {
|
|
425
|
-
title: ( localize(
|
|
426
|
-
placeHolder: ( localize(
|
|
463
|
+
title: ( localize(13307, "Delete Profile...")),
|
|
464
|
+
placeHolder: ( localize(13308, "Select Profiles to Delete")),
|
|
427
465
|
canPickMany: true
|
|
428
466
|
});
|
|
429
467
|
if (picks) {
|
|
430
468
|
try {
|
|
431
469
|
await Promise.all(( picks.map(pick => userDataProfileManagementService.removeProfile(pick.profile))));
|
|
432
|
-
}
|
|
433
|
-
catch (error) {
|
|
470
|
+
} catch (error) {
|
|
434
471
|
notificationService.error(error);
|
|
435
472
|
}
|
|
436
473
|
}
|
|
@@ -442,44 +479,36 @@ let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContr
|
|
|
442
479
|
this._register(registerAction2(class HelpAction extends Action2 {
|
|
443
480
|
constructor() {
|
|
444
481
|
super({
|
|
445
|
-
id:
|
|
482
|
+
id: "workbench.profiles.actions.help",
|
|
446
483
|
title: PROFILES_TITLE,
|
|
447
484
|
category: Categories.Help,
|
|
448
485
|
menu: [{
|
|
449
|
-
|
|
450
|
-
|
|
486
|
+
id: MenuId.CommandPalette
|
|
487
|
+
}]
|
|
451
488
|
});
|
|
452
489
|
}
|
|
453
490
|
run(accessor) {
|
|
454
|
-
return accessor.get(IOpenerService).open(( URI.parse(
|
|
491
|
+
return accessor.get(IOpenerService).open(( URI.parse("https://aka.ms/vscode-profiles-help")));
|
|
455
492
|
}
|
|
456
493
|
}));
|
|
457
494
|
}
|
|
458
495
|
async reportWorkspaceProfileInfo() {
|
|
459
496
|
await this.lifecycleService.when(LifecyclePhase.Eventually);
|
|
460
497
|
if (this.userDataProfilesService.profiles.length > 1) {
|
|
461
|
-
this.telemetryService.publicLog2(
|
|
498
|
+
this.telemetryService.publicLog2("profiles:count", {
|
|
499
|
+
count: this.userDataProfilesService.profiles.length - 1
|
|
500
|
+
});
|
|
462
501
|
}
|
|
463
|
-
const workspaceId = await this.workspaceTagsService.getTelemetryWorkspaceId(
|
|
464
|
-
|
|
502
|
+
const workspaceId = await this.workspaceTagsService.getTelemetryWorkspaceId(
|
|
503
|
+
this.workspaceContextService.getWorkspace(),
|
|
504
|
+
this.workspaceContextService.getWorkbenchState()
|
|
505
|
+
);
|
|
506
|
+
this.telemetryService.publicLog2("workspaceProfileInfo", {
|
|
465
507
|
workspaceId,
|
|
466
508
|
defaultProfile: this.userDataProfileService.currentProfile.isDefault
|
|
467
509
|
});
|
|
468
510
|
}
|
|
469
511
|
};
|
|
470
|
-
UserDataProfilesWorkbenchContribution = ( __decorate([
|
|
471
|
-
( __param(0, IUserDataProfileService)),
|
|
472
|
-
( __param(1, IUserDataProfilesService)),
|
|
473
|
-
( __param(2, IUserDataProfileManagementService)),
|
|
474
|
-
( __param(3, ITelemetryService)),
|
|
475
|
-
( __param(4, IWorkspaceContextService)),
|
|
476
|
-
( __param(5, IWorkspaceTagsService)),
|
|
477
|
-
( __param(6, IContextKeyService)),
|
|
478
|
-
( __param(7, IEditorGroupsService)),
|
|
479
|
-
( __param(8, IInstantiationService)),
|
|
480
|
-
( __param(9, ILifecycleService)),
|
|
481
|
-
( __param(10, IURLService)),
|
|
482
|
-
( __param(11, IBrowserWorkbenchEnvironmentService))
|
|
483
|
-
], UserDataProfilesWorkbenchContribution));
|
|
512
|
+
UserDataProfilesWorkbenchContribution = ( __decorate([( __param(0, IUserDataProfileService)), ( __param(1, IUserDataProfilesService)), ( __param(2, IUserDataProfileManagementService)), ( __param(3, ITelemetryService)), ( __param(4, IWorkspaceContextService)), ( __param(5, IWorkspaceTagsService)), ( __param(6, IContextKeyService)), ( __param(7, IEditorGroupsService)), ( __param(8, IInstantiationService)), ( __param(9, ILifecycleService)), ( __param(10, IURLService)), ( __param(11, IBrowserWorkbenchEnvironmentService))], UserDataProfilesWorkbenchContribution));
|
|
484
513
|
|
|
485
514
|
export { OpenProfileMenu, UserDataProfilesWorkbenchContribution };
|
|
@@ -7,28 +7,34 @@ import { IHostService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/s
|
|
|
7
7
|
import { PROFILES_CATEGORY } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/userDataProfile/common/userDataProfile';
|
|
8
8
|
|
|
9
9
|
class CreateTransientProfileAction extends Action2 {
|
|
10
|
-
static {
|
|
11
|
-
|
|
10
|
+
static {
|
|
11
|
+
this.ID = "workbench.profiles.actions.createTemporaryProfile";
|
|
12
|
+
}
|
|
13
|
+
static {
|
|
14
|
+
this.TITLE = ( localize2(13309, "New Window with Temporary Profile"));
|
|
15
|
+
}
|
|
12
16
|
constructor() {
|
|
13
17
|
super({
|
|
14
18
|
id: CreateTransientProfileAction.ID,
|
|
15
19
|
title: CreateTransientProfileAction.TITLE,
|
|
16
20
|
category: PROFILES_CATEGORY,
|
|
17
|
-
f1: true
|
|
21
|
+
f1: true
|
|
18
22
|
});
|
|
19
23
|
}
|
|
20
24
|
async run(accessor) {
|
|
21
|
-
accessor.get(IHostService).openWindow({
|
|
25
|
+
accessor.get(IHostService).openWindow({
|
|
26
|
+
forceTempProfile: true
|
|
27
|
+
});
|
|
22
28
|
}
|
|
23
29
|
}
|
|
24
30
|
registerAction2(CreateTransientProfileAction);
|
|
25
31
|
registerAction2(class CleanupProfilesAction extends Action2 {
|
|
26
32
|
constructor() {
|
|
27
33
|
super({
|
|
28
|
-
id:
|
|
29
|
-
title: ( localize2(
|
|
34
|
+
id: "workbench.profiles.actions.cleanupProfiles",
|
|
35
|
+
title: ( localize2(13310, "Cleanup Profiles")),
|
|
30
36
|
category: Categories.Developer,
|
|
31
|
-
f1: true
|
|
37
|
+
f1: true
|
|
32
38
|
});
|
|
33
39
|
}
|
|
34
40
|
async run(accessor) {
|
|
@@ -38,10 +44,10 @@ registerAction2(class CleanupProfilesAction extends Action2 {
|
|
|
38
44
|
registerAction2(class ResetWorkspacesAction extends Action2 {
|
|
39
45
|
constructor() {
|
|
40
46
|
super({
|
|
41
|
-
id:
|
|
42
|
-
title: ( localize2(
|
|
47
|
+
id: "workbench.profiles.actions.resetWorkspaces",
|
|
48
|
+
title: ( localize2(13311, "Reset Workspace Profiles Associations")),
|
|
43
49
|
category: Categories.Developer,
|
|
44
|
-
f1: true
|
|
50
|
+
f1: true
|
|
45
51
|
});
|
|
46
52
|
}
|
|
47
53
|
async run(accessor) {
|