@codingame/monaco-vscode-user-data-profile-service-override 9.0.0 → 9.0.3
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/userDataSync/common/keybindingsSync.js +2 -2
- package/vscode/src/vs/platform/userDataSync/common/settingsSync.js +1 -1
- package/vscode/src/vs/workbench/contrib/userDataProfile/browser/userDataProfile.js +20 -20
- package/vscode/src/vs/workbench/contrib/userDataProfile/browser/userDataProfileActions.js +3 -3
- package/vscode/src/vs/workbench/contrib/userDataProfile/browser/userDataProfilesEditor.js +56 -56
- 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/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 -40
- 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": "9.0.
|
|
3
|
+
"version": "9.0.3",
|
|
4
4
|
"keywords": [],
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "CodinGame",
|
|
@@ -26,6 +26,6 @@
|
|
|
26
26
|
}
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"vscode": "npm:@codingame/monaco-vscode-api@9.0.
|
|
29
|
+
"vscode": "npm:@codingame/monaco-vscode-api@9.0.3"
|
|
30
30
|
}
|
|
31
31
|
}
|
|
@@ -65,7 +65,7 @@ let KeybindingsSynchroniser = class KeybindingsSynchroniser extends AbstractJson
|
|
|
65
65
|
localContent = localContent || '[]';
|
|
66
66
|
if (this.hasErrors(localContent, true)) {
|
|
67
67
|
throw ( new UserDataSyncError(localize(
|
|
68
|
-
|
|
68
|
+
8488,
|
|
69
69
|
"Unable to sync keybindings because the content in the file is not valid. Please open the file and correct it."
|
|
70
70
|
), UserDataSyncErrorCode.LocalInvalidContent, this.resource));
|
|
71
71
|
}
|
|
@@ -168,7 +168,7 @@ let KeybindingsSynchroniser = class KeybindingsSynchroniser extends AbstractJson
|
|
|
168
168
|
content = content || '[]';
|
|
169
169
|
if (this.hasErrors(content, true)) {
|
|
170
170
|
throw ( new UserDataSyncError(localize(
|
|
171
|
-
|
|
171
|
+
8488,
|
|
172
172
|
"Unable to sync keybindings because the content in the file is not valid. Please open the file and correct it."
|
|
173
173
|
), UserDataSyncErrorCode.LocalInvalidContent, this.resource));
|
|
174
174
|
}
|
|
@@ -272,7 +272,7 @@ let SettingsSynchroniser = class SettingsSynchroniser extends AbstractJsonFileSy
|
|
|
272
272
|
validateContent(content) {
|
|
273
273
|
if (this.hasErrors(content, false)) {
|
|
274
274
|
throw ( new UserDataSyncError(localize(
|
|
275
|
-
|
|
275
|
+
8489,
|
|
276
276
|
"Unable to sync settings as there are errors/warning in settings file."
|
|
277
277
|
), UserDataSyncErrorCode.LocalInvalidContent, this.resource));
|
|
278
278
|
}
|
|
@@ -83,7 +83,7 @@ let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContr
|
|
|
83
83
|
return editor;
|
|
84
84
|
}
|
|
85
85
|
registerEditor() {
|
|
86
|
-
( (Registry.as(EditorExtensions.EditorPane))).registerEditorPane(EditorPaneDescriptor.create(UserDataProfilesEditor, UserDataProfilesEditor.ID, ( localize(
|
|
86
|
+
( (Registry.as(EditorExtensions.EditorPane))).registerEditorPane(EditorPaneDescriptor.create(UserDataProfilesEditor, UserDataProfilesEditor.ID, ( localize(8855, "Profiles Editor"))), [
|
|
87
87
|
( (new SyncDescriptor(UserDataProfilesEditorInput)))
|
|
88
88
|
]);
|
|
89
89
|
( (Registry.as(EditorExtensions.EditorFactory))).registerEditorSerializer(UserDataProfilesEditorInput.ID, UserDataProfilesEditorInputSerializer);
|
|
@@ -103,7 +103,7 @@ let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContr
|
|
|
103
103
|
}
|
|
104
104
|
registerOpenProfileSubMenu() {
|
|
105
105
|
MenuRegistry.appendMenuItem(MenuId.MenubarFileMenu, {
|
|
106
|
-
title: ( localize(
|
|
106
|
+
title: ( localize(8856, "New Window with Profile")),
|
|
107
107
|
submenu: OpenProfileMenu,
|
|
108
108
|
group: '1_new',
|
|
109
109
|
order: 4,
|
|
@@ -122,7 +122,7 @@ let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContr
|
|
|
122
122
|
constructor() {
|
|
123
123
|
super({
|
|
124
124
|
id: `workbench.profiles.actions.newWindowWithProfile`,
|
|
125
|
-
title: ( localize2(
|
|
125
|
+
title: ( localize2(8857, "New Window with Profile...")),
|
|
126
126
|
category: PROFILES_CATEGORY,
|
|
127
127
|
precondition: HAS_PROFILES_CONTEXT,
|
|
128
128
|
f1: true,
|
|
@@ -136,8 +136,8 @@ let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContr
|
|
|
136
136
|
label: profile.name,
|
|
137
137
|
profile
|
|
138
138
|
})))), {
|
|
139
|
-
title: ( localize(
|
|
140
|
-
placeHolder: ( localize(
|
|
139
|
+
title: ( localize(8858, "New Window with Profile")),
|
|
140
|
+
placeHolder: ( localize(8859, "Select Profile")),
|
|
141
141
|
canPickMany: false
|
|
142
142
|
});
|
|
143
143
|
if (pick) {
|
|
@@ -153,7 +153,7 @@ let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContr
|
|
|
153
153
|
constructor() {
|
|
154
154
|
super({
|
|
155
155
|
id,
|
|
156
|
-
title: ( localize2(
|
|
156
|
+
title: ( localize2(8860, "{0}", profile.name)),
|
|
157
157
|
menu: {
|
|
158
158
|
id: OpenProfileMenu,
|
|
159
159
|
group: '0_profiles',
|
|
@@ -170,7 +170,7 @@ let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContr
|
|
|
170
170
|
command: {
|
|
171
171
|
id,
|
|
172
172
|
category: PROFILES_CATEGORY,
|
|
173
|
-
title: ( localize2(
|
|
173
|
+
title: ( localize2(8861, "Open {0} Profile", profile.name)),
|
|
174
174
|
precondition: HAS_PROFILES_CONTEXT
|
|
175
175
|
},
|
|
176
176
|
}));
|
|
@@ -182,7 +182,7 @@ let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContr
|
|
|
182
182
|
constructor() {
|
|
183
183
|
super({
|
|
184
184
|
id: `workbench.profiles.actions.switchProfile`,
|
|
185
|
-
title: ( localize2(
|
|
185
|
+
title: ( localize2(8862, 'Switch Profile...')),
|
|
186
186
|
category: PROFILES_CATEGORY,
|
|
187
187
|
f1: true,
|
|
188
188
|
precondition: PROFILES_ENABLEMENT_CONTEXT,
|
|
@@ -199,7 +199,7 @@ let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContr
|
|
|
199
199
|
});
|
|
200
200
|
}
|
|
201
201
|
const result = await quickInputService.pick(items.sort((a, b) => a.profile.name.localeCompare(b.profile.name)), {
|
|
202
|
-
placeHolder: ( localize(
|
|
202
|
+
placeHolder: ( localize(8863, "Select Profile"))
|
|
203
203
|
});
|
|
204
204
|
if (result) {
|
|
205
205
|
await that.userDataProfileManagementService.switchProfile(result.profile);
|
|
@@ -214,8 +214,8 @@ let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContr
|
|
|
214
214
|
super({
|
|
215
215
|
id: `workbench.profiles.actions.manageProfiles`,
|
|
216
216
|
title: {
|
|
217
|
-
...( localize2(
|
|
218
|
-
mnemonicTitle: ( localize(
|
|
217
|
+
...( localize2(8864, "Profiles")),
|
|
218
|
+
mnemonicTitle: ( localize(8865, "&&Profiles")),
|
|
219
219
|
},
|
|
220
220
|
menu: [
|
|
221
221
|
{
|
|
@@ -241,7 +241,7 @@ let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContr
|
|
|
241
241
|
command: {
|
|
242
242
|
id: 'workbench.profiles.actions.manageProfiles',
|
|
243
243
|
category: Categories.Preferences,
|
|
244
|
-
title: ( localize2(
|
|
244
|
+
title: ( localize2(8866, "Open Profiles (UI)")),
|
|
245
245
|
},
|
|
246
246
|
}));
|
|
247
247
|
return disposables;
|
|
@@ -254,7 +254,7 @@ let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContr
|
|
|
254
254
|
constructor() {
|
|
255
255
|
super({
|
|
256
256
|
id,
|
|
257
|
-
title: ( localize2(
|
|
257
|
+
title: ( localize2(8867, "Export Profile...")),
|
|
258
258
|
category: PROFILES_CATEGORY,
|
|
259
259
|
f1: true,
|
|
260
260
|
});
|
|
@@ -268,7 +268,7 @@ let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContr
|
|
|
268
268
|
command: {
|
|
269
269
|
id,
|
|
270
270
|
title: ( localize2(
|
|
271
|
-
|
|
271
|
+
8868,
|
|
272
272
|
"Export Profile ({0})...",
|
|
273
273
|
that.userDataProfileService.currentProfile.name
|
|
274
274
|
)),
|
|
@@ -283,7 +283,7 @@ let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContr
|
|
|
283
283
|
constructor() {
|
|
284
284
|
super({
|
|
285
285
|
id: 'workbench.profiles.actions.createFromCurrentProfile',
|
|
286
|
-
title: ( localize2(
|
|
286
|
+
title: ( localize2(8869, "Save Current Profile As...")),
|
|
287
287
|
category: PROFILES_CATEGORY,
|
|
288
288
|
f1: true,
|
|
289
289
|
precondition: PROFILES_ENABLEMENT_CONTEXT
|
|
@@ -301,7 +301,7 @@ let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContr
|
|
|
301
301
|
constructor() {
|
|
302
302
|
super({
|
|
303
303
|
id: 'workbench.profiles.actions.createProfile',
|
|
304
|
-
title: ( localize2(
|
|
304
|
+
title: ( localize2(8870, "New Profile...")),
|
|
305
305
|
category: PROFILES_CATEGORY,
|
|
306
306
|
precondition: PROFILES_ENABLEMENT_CONTEXT,
|
|
307
307
|
f1: true,
|
|
@@ -325,7 +325,7 @@ let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContr
|
|
|
325
325
|
constructor() {
|
|
326
326
|
super({
|
|
327
327
|
id: 'workbench.profiles.actions.deleteProfile',
|
|
328
|
-
title: ( localize2(
|
|
328
|
+
title: ( localize2(8871, "Delete Profile...")),
|
|
329
329
|
category: PROFILES_CATEGORY,
|
|
330
330
|
f1: true,
|
|
331
331
|
precondition: ( (ContextKeyExpr.and(PROFILES_ENABLEMENT_CONTEXT, HAS_PROFILES_CONTEXT))),
|
|
@@ -341,11 +341,11 @@ let UserDataProfilesWorkbenchContribution = class UserDataProfilesWorkbenchContr
|
|
|
341
341
|
if (profiles.length) {
|
|
342
342
|
const picks = await quickInputService.pick(( (profiles.map(profile => ({
|
|
343
343
|
label: profile.name,
|
|
344
|
-
description: profile.id === userDataProfileService.currentProfile.id ? ( localize(
|
|
344
|
+
description: profile.id === userDataProfileService.currentProfile.id ? ( localize(8872, "Current")) : undefined,
|
|
345
345
|
profile
|
|
346
346
|
})))), {
|
|
347
|
-
title: ( localize(
|
|
348
|
-
placeHolder: ( localize(
|
|
347
|
+
title: ( localize(8873, "Delete Profile...")),
|
|
348
|
+
placeHolder: ( localize(8874, "Select Profiles to Delete")),
|
|
349
349
|
canPickMany: true
|
|
350
350
|
});
|
|
351
351
|
if (picks) {
|
|
@@ -7,7 +7,7 @@ import { IUserDataProfileManagementService } from 'vscode/vscode/vs/workbench/se
|
|
|
7
7
|
|
|
8
8
|
class CreateTransientProfileAction extends Action2 {
|
|
9
9
|
static { this.ID = 'workbench.profiles.actions.createTemporaryProfile'; }
|
|
10
|
-
static { this.TITLE = ( localize2(
|
|
10
|
+
static { this.TITLE = ( localize2(8875, "Create a Temporary Profile")); }
|
|
11
11
|
constructor() {
|
|
12
12
|
super({
|
|
13
13
|
id: CreateTransientProfileAction.ID,
|
|
@@ -26,7 +26,7 @@ registerAction2(class CleanupProfilesAction extends Action2 {
|
|
|
26
26
|
constructor() {
|
|
27
27
|
super({
|
|
28
28
|
id: 'workbench.profiles.actions.cleanupProfiles',
|
|
29
|
-
title: ( localize2(
|
|
29
|
+
title: ( localize2(8876, "Cleanup Profiles")),
|
|
30
30
|
category: Categories.Developer,
|
|
31
31
|
f1: true,
|
|
32
32
|
precondition: PROFILES_ENABLEMENT_CONTEXT,
|
|
@@ -40,7 +40,7 @@ registerAction2(class ResetWorkspacesAction extends Action2 {
|
|
|
40
40
|
constructor() {
|
|
41
41
|
super({
|
|
42
42
|
id: 'workbench.profiles.actions.resetWorkspaces',
|
|
43
|
-
title: ( localize2(
|
|
43
|
+
title: ( localize2(8877, "Reset Workspace Profiles Associations")),
|
|
44
44
|
category: Categories.Developer,
|
|
45
45
|
f1: true,
|
|
46
46
|
precondition: PROFILES_ENABLEMENT_CONTEXT,
|
|
@@ -64,7 +64,7 @@ import { IUriIdentityService } from 'vscode/vscode/vs/platform/uriIdentity/commo
|
|
|
64
64
|
import { Orientation } from 'vscode/vscode/vs/base/browser/ui/sash/sash';
|
|
65
65
|
|
|
66
66
|
var UserDataProfilesEditor_1, ExistingProfileResourceTreeRenderer_1, NewProfileResourceTreeRenderer_1, ProfileResourceChildTreeItemRenderer_1, UserDataProfilesEditorInput_1;
|
|
67
|
-
const profilesSashBorder = registerColor('profiles.sashBorder', PANEL_BORDER, ( localize(
|
|
67
|
+
const profilesSashBorder = registerColor('profiles.sashBorder', PANEL_BORDER, ( localize(10974, "The color of the Profiles editor splitview sash border.")));
|
|
68
68
|
const listStyles = getListStyles({
|
|
69
69
|
listActiveSelectionBackground: editorBackground,
|
|
70
70
|
listActiveSelectionForeground: foreground,
|
|
@@ -159,7 +159,7 @@ let UserDataProfilesEditor = class UserDataProfilesEditor extends EditorPane {
|
|
|
159
159
|
return profileElement?.name ?? '';
|
|
160
160
|
},
|
|
161
161
|
getWidgetAriaLabel() {
|
|
162
|
-
return ( localize(
|
|
162
|
+
return ( localize(10975, "Profiles"));
|
|
163
163
|
}
|
|
164
164
|
},
|
|
165
165
|
openOnSingleClick: true,
|
|
@@ -180,10 +180,10 @@ let UserDataProfilesEditor = class UserDataProfilesEditor extends EditorPane {
|
|
|
180
180
|
getActions: () => {
|
|
181
181
|
const actions = [];
|
|
182
182
|
if (this.templates.length) {
|
|
183
|
-
actions.push(( (new SubmenuAction('from.template', ( localize(
|
|
183
|
+
actions.push(( (new SubmenuAction('from.template', ( localize(10976, "From Template")), this.getCreateFromTemplateActions()))));
|
|
184
184
|
actions.push(( (new Separator())));
|
|
185
185
|
}
|
|
186
|
-
actions.push(( (new Action('importProfile', ( localize(
|
|
186
|
+
actions.push(( (new Action('importProfile', ( localize(10977, "Import Profile...")), undefined, true, () => this.importProfile()))));
|
|
187
187
|
return actions;
|
|
188
188
|
}
|
|
189
189
|
},
|
|
@@ -192,7 +192,7 @@ let UserDataProfilesEditor = class UserDataProfilesEditor extends EditorPane {
|
|
|
192
192
|
supportIcons: true,
|
|
193
193
|
...defaultButtonStyles
|
|
194
194
|
}))));
|
|
195
|
-
button.label = ( localize(
|
|
195
|
+
button.label = ( localize(10978, "New Profile"));
|
|
196
196
|
this._register(button.onDidClick(e => this.createNewProfile()));
|
|
197
197
|
}
|
|
198
198
|
getCreateFromTemplateActions() {
|
|
@@ -239,13 +239,13 @@ let UserDataProfilesEditor = class UserDataProfilesEditor extends EditorPane {
|
|
|
239
239
|
}
|
|
240
240
|
getTreeContextMenuActions() {
|
|
241
241
|
const actions = [];
|
|
242
|
-
actions.push(( (new Action('newProfile', ( localize(
|
|
242
|
+
actions.push(( (new Action('newProfile', ( localize(10978, "New Profile")), undefined, true, () => this.createNewProfile()))));
|
|
243
243
|
const templateActions = this.getCreateFromTemplateActions();
|
|
244
244
|
if (templateActions.length) {
|
|
245
|
-
actions.push(( (new SubmenuAction('from.template', ( localize(
|
|
245
|
+
actions.push(( (new SubmenuAction('from.template', ( localize(10979, "New Profile From Template")), templateActions))));
|
|
246
246
|
}
|
|
247
247
|
actions.push(( (new Separator())));
|
|
248
|
-
actions.push(( (new Action('importProfile', ( localize(
|
|
248
|
+
actions.push(( (new Action('importProfile', ( localize(10977, "Import Profile...")), undefined, true, () => this.importProfile()))));
|
|
249
249
|
return actions;
|
|
250
250
|
}
|
|
251
251
|
async importProfile() {
|
|
@@ -254,13 +254,13 @@ let UserDataProfilesEditor = class UserDataProfilesEditor extends EditorPane {
|
|
|
254
254
|
const updateQuickPickItems = (value) => {
|
|
255
255
|
const quickPickItems = [];
|
|
256
256
|
if (value) {
|
|
257
|
-
quickPickItems.push({ label: quickPick.value, description: ( localize(
|
|
257
|
+
quickPickItems.push({ label: quickPick.value, description: ( localize(10980, "Import from URL")) });
|
|
258
258
|
}
|
|
259
|
-
quickPickItems.push({ label: ( localize(
|
|
259
|
+
quickPickItems.push({ label: ( localize(10981, "Select File...")) });
|
|
260
260
|
quickPick.items = quickPickItems;
|
|
261
261
|
};
|
|
262
|
-
quickPick.title = ( localize(
|
|
263
|
-
quickPick.placeholder = ( localize(
|
|
262
|
+
quickPick.title = ( localize(10982, "Import from Profile Template..."));
|
|
263
|
+
quickPick.placeholder = ( localize(10983, "Provide Profile Template URL"));
|
|
264
264
|
quickPick.ignoreFocusOut = true;
|
|
265
265
|
disposables.add(quickPick.onDidChangeValue(updateQuickPickItems));
|
|
266
266
|
updateQuickPickItems();
|
|
@@ -295,7 +295,7 @@ let UserDataProfilesEditor = class UserDataProfilesEditor extends EditorPane {
|
|
|
295
295
|
canSelectFiles: true,
|
|
296
296
|
canSelectMany: false,
|
|
297
297
|
filters: PROFILE_FILTER,
|
|
298
|
-
title: ( localize(
|
|
298
|
+
title: ( localize(10984, "Select Profile Template File")),
|
|
299
299
|
});
|
|
300
300
|
if (!profileLocation) {
|
|
301
301
|
return null;
|
|
@@ -372,7 +372,7 @@ let ProfileElementRenderer = class ProfileElementRenderer {
|
|
|
372
372
|
const label = append(container, $('.profile-list-item-label'));
|
|
373
373
|
const dirty = append(container, $(`span${ThemeIcon.asCSSSelector(Codicon.circleFilled)}`));
|
|
374
374
|
const description = append(container, $('.profile-list-item-description'));
|
|
375
|
-
append(description, $(`span${ThemeIcon.asCSSSelector(Codicon.check)}`), $('span', undefined, ( localize(
|
|
375
|
+
append(description, $(`span${ThemeIcon.asCSSSelector(Codicon.check)}`), $('span', undefined, ( localize(10985, "In use"))));
|
|
376
376
|
const actionsContainer = append(container, $('.profile-tree-item-actions-container'));
|
|
377
377
|
const actionBar = disposables.add(this.instantiationService.createInstance(WorkbenchToolBar, actionsContainer, {
|
|
378
378
|
hoverDelegate: disposables.add(createInstantHoverDelegate()),
|
|
@@ -695,15 +695,15 @@ class AbstractProfileResourceTreeRenderer extends Disposable {
|
|
|
695
695
|
getResourceTypeTitle(resourceType) {
|
|
696
696
|
switch (resourceType) {
|
|
697
697
|
case ProfileResourceType.Settings:
|
|
698
|
-
return ( localize(
|
|
698
|
+
return ( localize(10986, "Settings"));
|
|
699
699
|
case ProfileResourceType.Keybindings:
|
|
700
|
-
return ( localize(
|
|
700
|
+
return ( localize(10987, "Keyboard Shortcuts"));
|
|
701
701
|
case ProfileResourceType.Snippets:
|
|
702
|
-
return ( localize(
|
|
702
|
+
return ( localize(10988, "Snippets"));
|
|
703
703
|
case ProfileResourceType.Tasks:
|
|
704
|
-
return ( localize(
|
|
704
|
+
return ( localize(10989, "Tasks"));
|
|
705
705
|
case ProfileResourceType.Extensions:
|
|
706
|
-
return ( localize(
|
|
706
|
+
return ( localize(10990, "Extensions"));
|
|
707
707
|
}
|
|
708
708
|
return '';
|
|
709
709
|
}
|
|
@@ -732,18 +732,18 @@ let ProfileNameRenderer = class ProfileNameRenderer extends ProfilePropertyRende
|
|
|
732
732
|
const elementDisposables = disposables.add(( (new DisposableStore())));
|
|
733
733
|
let profileElement;
|
|
734
734
|
const nameContainer = append(parent, $('.profile-row-container'));
|
|
735
|
-
append(nameContainer, $('.profile-label-element', undefined, ( localize(
|
|
735
|
+
append(nameContainer, $('.profile-label-element', undefined, ( localize(10991, "Name"))));
|
|
736
736
|
const nameInput = disposables.add(( (new InputBox(nameContainer, this.contextViewService, {
|
|
737
737
|
inputBoxStyles: getInputBoxStyle({
|
|
738
738
|
inputBorder: settingsTextInputBorder
|
|
739
739
|
}),
|
|
740
|
-
ariaLabel: ( localize(
|
|
741
|
-
placeholder: ( localize(
|
|
740
|
+
ariaLabel: ( localize(10992, "Profile Name")),
|
|
741
|
+
placeholder: ( localize(10992, "Profile Name")),
|
|
742
742
|
validationOptions: {
|
|
743
743
|
validation: (value) => {
|
|
744
744
|
if (!value) {
|
|
745
745
|
return {
|
|
746
|
-
content: ( localize(
|
|
746
|
+
content: ( localize(10993, "Profile name is required and must be a non-empty value.")),
|
|
747
747
|
type: MessageType.WARNING
|
|
748
748
|
};
|
|
749
749
|
}
|
|
@@ -757,7 +757,7 @@ let ProfileNameRenderer = class ProfileNameRenderer extends ProfilePropertyRende
|
|
|
757
757
|
value = value.trim();
|
|
758
758
|
if (initialName !== value && ( (this.userDataProfilesService.profiles.some(p => !p.isTransient && p.name === value)))) {
|
|
759
759
|
return {
|
|
760
|
-
content: ( localize(
|
|
760
|
+
content: ( localize(10994, "Profile with name {0} already exists.", value)),
|
|
761
761
|
type: MessageType.WARNING
|
|
762
762
|
};
|
|
763
763
|
}
|
|
@@ -820,9 +820,9 @@ let ProfileIconRenderer = class ProfileIconRenderer extends ProfilePropertyRende
|
|
|
820
820
|
const elementDisposables = disposables.add(( (new DisposableStore())));
|
|
821
821
|
let profileElement;
|
|
822
822
|
const iconContainer = append(parent, $('.profile-row-container'));
|
|
823
|
-
append(iconContainer, $('.profile-label-element', undefined, ( localize(
|
|
823
|
+
append(iconContainer, $('.profile-label-element', undefined, ( localize(10995, "Icon"))));
|
|
824
824
|
const iconValueContainer = append(iconContainer, $('.profile-icon-container'));
|
|
825
|
-
const iconElement = append(iconValueContainer, $(`${ThemeIcon.asCSSSelector(DEFAULT_ICON)}`, { 'tabindex': '0', 'role': 'button', 'aria-label': ( localize(
|
|
825
|
+
const iconElement = append(iconValueContainer, $(`${ThemeIcon.asCSSSelector(DEFAULT_ICON)}`, { 'tabindex': '0', 'role': 'button', 'aria-label': ( localize(10996, "Profile Icon")) }));
|
|
826
826
|
const iconSelectBox = disposables.add(this.instantiationService.createInstance(WorkbenchIconSelectBox, { icons: ICONS, inputBoxStyles: defaultInputBoxStyles }));
|
|
827
827
|
let hoverWidget;
|
|
828
828
|
const showIconSelectBox = () => {
|
|
@@ -877,7 +877,7 @@ let ProfileIconRenderer = class ProfileIconRenderer extends ProfilePropertyRende
|
|
|
877
877
|
profileElement.root.icon = selectedIcon.id;
|
|
878
878
|
}
|
|
879
879
|
}));
|
|
880
|
-
append(iconValueContainer, $('.profile-description-element', undefined, ( localize(
|
|
880
|
+
append(iconValueContainer, $('.profile-description-element', undefined, ( localize(10997, "Profile icon to be shown in the activity bar"))));
|
|
881
881
|
const renderIcon = (profileElement) => {
|
|
882
882
|
if (profileElement.root.icon) {
|
|
883
883
|
iconElement.className = ThemeIcon.asClassName(ThemeIcon.fromId(profileElement.root.icon));
|
|
@@ -916,9 +916,9 @@ let UseForCurrentWindowPropertyRenderer = class UseForCurrentWindowPropertyRende
|
|
|
916
916
|
const elementDisposables = disposables.add(( (new DisposableStore())));
|
|
917
917
|
let profileElement;
|
|
918
918
|
const useForCurrentWindowContainer = append(parent, $('.profile-row-container'));
|
|
919
|
-
append(useForCurrentWindowContainer, $('.profile-label-element', undefined, ( localize(
|
|
919
|
+
append(useForCurrentWindowContainer, $('.profile-label-element', undefined, ( localize(10998, "Use for Current Window"))));
|
|
920
920
|
const useForCurrentWindowValueContainer = append(useForCurrentWindowContainer, $('.profile-use-for-current-container'));
|
|
921
|
-
const useForCurrentWindowTitle = ( localize(
|
|
921
|
+
const useForCurrentWindowTitle = ( localize(10999, "Use this profile for the current window"));
|
|
922
922
|
const useForCurrentWindowCheckbox = disposables.add(( (new Checkbox(useForCurrentWindowTitle, false, defaultCheckboxStyles))));
|
|
923
923
|
append(useForCurrentWindowValueContainer, useForCurrentWindowCheckbox.domNode);
|
|
924
924
|
const useForCurrentWindowLabel = append(useForCurrentWindowValueContainer, $('.profile-description-element', undefined, useForCurrentWindowTitle));
|
|
@@ -968,9 +968,9 @@ class UseAsDefaultProfileRenderer extends ProfilePropertyRenderer {
|
|
|
968
968
|
const elementDisposables = disposables.add(( (new DisposableStore())));
|
|
969
969
|
let profileElement;
|
|
970
970
|
const useAsDefaultProfileContainer = append(parent, $('.profile-row-container'));
|
|
971
|
-
append(useAsDefaultProfileContainer, $('.profile-label-element', undefined, ( localize(
|
|
971
|
+
append(useAsDefaultProfileContainer, $('.profile-label-element', undefined, ( localize(11000, "Use for New Windows"))));
|
|
972
972
|
const useAsDefaultProfileValueContainer = append(useAsDefaultProfileContainer, $('.profile-use-as-default-container'));
|
|
973
|
-
const useAsDefaultProfileTitle = ( localize(
|
|
973
|
+
const useAsDefaultProfileTitle = ( localize(11001, "Use this profile as the default for new windows"));
|
|
974
974
|
const useAsDefaultProfileCheckbox = disposables.add(( (new Checkbox(useAsDefaultProfileTitle, false, defaultCheckboxStyles))));
|
|
975
975
|
append(useAsDefaultProfileValueContainer, useAsDefaultProfileCheckbox.domNode);
|
|
976
976
|
const useAsDefaultProfileLabel = append(useAsDefaultProfileValueContainer, $('.profile-description-element', undefined, useAsDefaultProfileTitle));
|
|
@@ -1017,11 +1017,11 @@ let CopyFromProfileRenderer = class CopyFromProfileRenderer extends ProfilePrope
|
|
|
1017
1017
|
const elementDisposables = disposables.add(( (new DisposableStore())));
|
|
1018
1018
|
let profileElement;
|
|
1019
1019
|
const copyFromContainer = append(parent, $('.profile-row-container.profile-copy-from-container'));
|
|
1020
|
-
append(copyFromContainer, $('.profile-label-element', undefined, ( localize(
|
|
1021
|
-
append(copyFromContainer, $('.profile-description-element', undefined, ( localize(
|
|
1020
|
+
append(copyFromContainer, $('.profile-label-element', undefined, ( localize(11002, "Copy from"))));
|
|
1021
|
+
append(copyFromContainer, $('.profile-description-element', undefined, ( localize(11003, "Select the profile source from which you want to copy contents"))));
|
|
1022
1022
|
const copyFromSelectBox = disposables.add(this.instantiationService.createInstance(SelectBox, [], 0, this.contextViewService, defaultSelectBoxStyles, {
|
|
1023
1023
|
useCustomDrawn: true,
|
|
1024
|
-
ariaLabel: ( localize(
|
|
1024
|
+
ariaLabel: ( localize(11004, "Copy profile from")),
|
|
1025
1025
|
}));
|
|
1026
1026
|
copyFromSelectBox.render(append(copyFromContainer, $('.profile-select-container')));
|
|
1027
1027
|
const render = (profileElement, copyFromOptions) => {
|
|
@@ -1065,7 +1065,7 @@ let CopyFromProfileRenderer = class CopyFromProfileRenderer extends ProfilePrope
|
|
|
1065
1065
|
getCopyFromOptions(profileElement) {
|
|
1066
1066
|
const separator = { text: '\u2500\u2500\u2500\u2500\u2500\u2500', isDisabled: true };
|
|
1067
1067
|
const copyFromOptions = [];
|
|
1068
|
-
copyFromOptions.push({ text: ( localize(
|
|
1068
|
+
copyFromOptions.push({ text: ( localize(11005, "None")) });
|
|
1069
1069
|
for (const [copyFromTemplate, name] of profileElement.copyFromTemplates) {
|
|
1070
1070
|
if (!( (this.templates.some(
|
|
1071
1071
|
template => this.uriIdentityService.extUri.isEqual(( (URI.parse(template.url))), copyFromTemplate)
|
|
@@ -1074,12 +1074,12 @@ let CopyFromProfileRenderer = class CopyFromProfileRenderer extends ProfilePrope
|
|
|
1074
1074
|
}
|
|
1075
1075
|
}
|
|
1076
1076
|
if (this.templates.length) {
|
|
1077
|
-
copyFromOptions.push({ ...separator, decoratorRight: ( localize(
|
|
1077
|
+
copyFromOptions.push({ ...separator, decoratorRight: ( localize(11006, "Profile Templates")) });
|
|
1078
1078
|
for (const template of this.templates) {
|
|
1079
1079
|
copyFromOptions.push({ text: template.name, id: template.url, source: ( (URI.parse(template.url))) });
|
|
1080
1080
|
}
|
|
1081
1081
|
}
|
|
1082
|
-
copyFromOptions.push({ ...separator, decoratorRight: ( localize(
|
|
1082
|
+
copyFromOptions.push({ ...separator, decoratorRight: ( localize(11007, "Existing Profiles")) });
|
|
1083
1083
|
for (const profile of this.userDataProfilesService.profiles) {
|
|
1084
1084
|
copyFromOptions.push({ text: profile.name, id: profile.id, source: profile });
|
|
1085
1085
|
}
|
|
@@ -1108,11 +1108,11 @@ let ContentsProfileRenderer = class ContentsProfileRenderer extends ProfilePrope
|
|
|
1108
1108
|
const elementDisposables = disposables.add(( (new DisposableStore())));
|
|
1109
1109
|
let profileElement;
|
|
1110
1110
|
const configureRowContainer = append(parent, $('.profile-row-container'));
|
|
1111
|
-
append(configureRowContainer, $('.profile-label-element', undefined, ( localize(
|
|
1111
|
+
append(configureRowContainer, $('.profile-label-element', undefined, ( localize(11008, "Contents"))));
|
|
1112
1112
|
const contentsDescriptionElement = append(configureRowContainer, $('.profile-description-element'));
|
|
1113
1113
|
const contentsTreeHeader = append(configureRowContainer, $('.profile-content-tree-header'));
|
|
1114
|
-
const optionsLabel = $('.options-header', undefined, $('span', undefined, ( localize(
|
|
1115
|
-
append(contentsTreeHeader, $(''), $('', undefined, ( localize(
|
|
1114
|
+
const optionsLabel = $('.options-header', undefined, $('span', undefined, ( localize(11009, "Source"))));
|
|
1115
|
+
append(contentsTreeHeader, $(''), $('', undefined, ( localize(11008, "Contents"))), optionsLabel, $('.actions-header', undefined, ( localize(11010, "Actions"))));
|
|
1116
1116
|
const delegate = ( (new ProfileContentTreeElementDelegate()));
|
|
1117
1117
|
const profilesContentTree = this.profilesContentTree = disposables.add(this.instantiationService.createInstance((WorkbenchAsyncDataTree), 'ProfileEditor-ContentsTree', append(configureRowContainer, $('.profile-content-tree.file-icon-themable-tree.show-file-icons')), delegate, [
|
|
1118
1118
|
this.instantiationService.createInstance(ExistingProfileResourceTreeRenderer),
|
|
@@ -1174,9 +1174,9 @@ let ContentsProfileRenderer = class ContentsProfileRenderer extends ProfilePrope
|
|
|
1174
1174
|
}
|
|
1175
1175
|
}));
|
|
1176
1176
|
const updateDescription = (element) => {
|
|
1177
|
-
const defaultHelpInfo = ( localize(
|
|
1177
|
+
const defaultHelpInfo = ( localize(11011, "- *Default:* Use contents from the Default profile\n"));
|
|
1178
1178
|
const markdown = ( (new MarkdownString()))
|
|
1179
|
-
.appendMarkdown(( localize(
|
|
1179
|
+
.appendMarkdown(( localize(11012, "Configure source of contents for this profile\n")));
|
|
1180
1180
|
clearNode(contentsDescriptionElement);
|
|
1181
1181
|
if (element.root instanceof UserDataProfileElement && element.root.profile.isDefault) {
|
|
1182
1182
|
return;
|
|
@@ -1184,12 +1184,12 @@ let ContentsProfileRenderer = class ContentsProfileRenderer extends ProfilePrope
|
|
|
1184
1184
|
if (element.root instanceof NewProfileElement) {
|
|
1185
1185
|
const copyFromName = element.root.getCopyFromName();
|
|
1186
1186
|
const optionName = copyFromName === this.userDataProfilesService.defaultProfile.name
|
|
1187
|
-
? ( localize(
|
|
1187
|
+
? ( localize(11013, "{0} (Copy)", copyFromName))
|
|
1188
1188
|
: copyFromName;
|
|
1189
1189
|
if (optionName) {
|
|
1190
1190
|
markdown
|
|
1191
1191
|
.appendMarkdown(( localize(
|
|
1192
|
-
|
|
1192
|
+
11014,
|
|
1193
1193
|
"- *{0}:* Copy contents from the {1} profile\n",
|
|
1194
1194
|
optionName,
|
|
1195
1195
|
copyFromName
|
|
@@ -1197,13 +1197,13 @@ let ContentsProfileRenderer = class ContentsProfileRenderer extends ProfilePrope
|
|
|
1197
1197
|
}
|
|
1198
1198
|
markdown
|
|
1199
1199
|
.appendMarkdown(defaultHelpInfo)
|
|
1200
|
-
.appendMarkdown(( localize(
|
|
1200
|
+
.appendMarkdown(( localize(11015, "- *None:* Create empty contents\n")));
|
|
1201
1201
|
}
|
|
1202
1202
|
else if (element.root instanceof UserDataProfileElement) {
|
|
1203
1203
|
markdown
|
|
1204
1204
|
.appendMarkdown(defaultHelpInfo)
|
|
1205
1205
|
.appendMarkdown(( localize(
|
|
1206
|
-
|
|
1206
|
+
11016,
|
|
1207
1207
|
"- *{1}:* Use contents from the {0} profile\n",
|
|
1208
1208
|
element.root.profile.name,
|
|
1209
1209
|
element.root.profile.name
|
|
@@ -1282,13 +1282,13 @@ let ExistingProfileResourceTreeRenderer = class ExistingProfileResourceTreeRende
|
|
|
1282
1282
|
}
|
|
1283
1283
|
const updateRadioItems = () => {
|
|
1284
1284
|
templateData.radio.setItems([{
|
|
1285
|
-
text: ( localize(
|
|
1286
|
-
tooltip: ( localize(
|
|
1285
|
+
text: ( localize(11017, "Default")),
|
|
1286
|
+
tooltip: ( localize(11018, "Use {0} from the Default profile", resourceTypeTitle)),
|
|
1287
1287
|
isActive: root.getFlag(element.resourceType)
|
|
1288
1288
|
},
|
|
1289
1289
|
{
|
|
1290
1290
|
text: root.name,
|
|
1291
|
-
tooltip: ( localize(
|
|
1291
|
+
tooltip: ( localize(11019, "Use {0} from the {1} profile", resourceTypeTitle, root.name)),
|
|
1292
1292
|
isActive: !root.getFlag(element.resourceType)
|
|
1293
1293
|
}]);
|
|
1294
1294
|
};
|
|
@@ -1349,22 +1349,22 @@ let NewProfileResourceTreeRenderer = class NewProfileResourceTreeRenderer extend
|
|
|
1349
1349
|
templateData.label.textContent = resourceTypeTitle;
|
|
1350
1350
|
const renderRadioItems = () => {
|
|
1351
1351
|
const options = [{
|
|
1352
|
-
text: ( localize(
|
|
1353
|
-
tooltip: ( localize(
|
|
1352
|
+
text: ( localize(11017, "Default")),
|
|
1353
|
+
tooltip: ( localize(11018, "Use {0} from the Default profile", resourceTypeTitle)),
|
|
1354
1354
|
},
|
|
1355
1355
|
{
|
|
1356
|
-
text: ( localize(
|
|
1357
|
-
tooltip: ( localize(
|
|
1356
|
+
text: ( localize(11020, "None")),
|
|
1357
|
+
tooltip: ( localize(11021, "Create empty {0}", resourceTypeTitle))
|
|
1358
1358
|
}];
|
|
1359
1359
|
const copyFromName = root.getCopyFromName();
|
|
1360
1360
|
const name = copyFromName === this.userDataProfilesService.defaultProfile.name
|
|
1361
|
-
? ( localize(
|
|
1361
|
+
? ( localize(11013, "{0} (Copy)", copyFromName))
|
|
1362
1362
|
: copyFromName;
|
|
1363
1363
|
if (root.copyFrom && name) {
|
|
1364
1364
|
templateData.radio.setItems([
|
|
1365
1365
|
{
|
|
1366
1366
|
text: name,
|
|
1367
|
-
tooltip: name ? ( localize(
|
|
1367
|
+
tooltip: name ? ( localize(11022, "Copy {0} from the {1} profile", resourceTypeTitle, name)) : ( localize(11023, "Copy")),
|
|
1368
1368
|
},
|
|
1369
1369
|
...options
|
|
1370
1370
|
]);
|
|
@@ -1478,7 +1478,7 @@ let UserDataProfilesEditorInput = class UserDataProfilesEditorInput extends Edit
|
|
|
1478
1478
|
this._register(this.model.onDidChange(e => this.dirty = ( (this.model.profiles.some(profile => profile instanceof NewProfileElement)))));
|
|
1479
1479
|
}
|
|
1480
1480
|
get typeId() { return UserDataProfilesEditorInput_1.ID; }
|
|
1481
|
-
getName() { return ( localize(
|
|
1481
|
+
getName() { return ( localize(11024, "Profiles")); }
|
|
1482
1482
|
getIcon() { return defaultUserDataProfileIcon; }
|
|
1483
1483
|
async resolve() {
|
|
1484
1484
|
await this.model.resolve();
|
|
@@ -170,7 +170,7 @@ let ExtensionsResource = class ExtensionsResource {
|
|
|
170
170
|
return;
|
|
171
171
|
}
|
|
172
172
|
progress?.(( localize(
|
|
173
|
-
|
|
173
|
+
8851,
|
|
174
174
|
"Installing extension {0}...",
|
|
175
175
|
installExtensionInfo.extension.displayName ?? installExtensionInfo.extension.identifier.id
|
|
176
176
|
)));
|
|
@@ -262,7 +262,7 @@ class ExtensionsResourceTreeItem {
|
|
|
262
262
|
constructor() {
|
|
263
263
|
this.type = ProfileResourceType.Extensions;
|
|
264
264
|
this.handle = ProfileResourceType.Extensions;
|
|
265
|
-
this.label = { label: ( localize(
|
|
265
|
+
this.label = { label: ( localize(8852, "Extensions")) };
|
|
266
266
|
this.collapsibleState = TreeItemCollapsibleState.Expanded;
|
|
267
267
|
this.contextValue = ProfileResourceType.Extensions;
|
|
268
268
|
this.excludedExtensions = ( (new Set()));
|
|
@@ -275,7 +275,7 @@ class ExtensionsResourceTreeItem {
|
|
|
275
275
|
handle: e.identifier.id.toLowerCase(),
|
|
276
276
|
parent: this,
|
|
277
277
|
label: { label: e.displayName || e.identifier.id },
|
|
278
|
-
description: e.disabled ? ( localize(
|
|
278
|
+
description: e.disabled ? ( localize(8853, "Disabled")) : undefined,
|
|
279
279
|
collapsibleState: TreeItemCollapsibleState.None,
|
|
280
280
|
checkbox: that.checkbox ? {
|
|
281
281
|
get isChecked() { return !( (that.excludedExtensions.has(e.identifier.id.toLowerCase()))); },
|
|
@@ -287,9 +287,9 @@ class ExtensionsResourceTreeItem {
|
|
|
287
287
|
that.excludedExtensions.add(e.identifier.id.toLowerCase());
|
|
288
288
|
}
|
|
289
289
|
},
|
|
290
|
-
tooltip: ( localize(
|
|
290
|
+
tooltip: ( localize(8854, "Select {0} Extension", e.displayName || e.identifier.id)),
|
|
291
291
|
accessibilityInformation: {
|
|
292
|
-
label: ( localize(
|
|
292
|
+
label: ( localize(8854, "Select {0} Extension", e.displayName || e.identifier.id)),
|
|
293
293
|
}
|
|
294
294
|
} : undefined,
|
|
295
295
|
themeIcon: Codicon.extensions,
|
|
@@ -85,7 +85,7 @@ class GlobalStateResourceTreeItem {
|
|
|
85
85
|
this.uriIdentityService = uriIdentityService;
|
|
86
86
|
this.type = ProfileResourceType.GlobalState;
|
|
87
87
|
this.handle = ProfileResourceType.GlobalState;
|
|
88
|
-
this.label = { label: ( localize(
|
|
88
|
+
this.label = { label: ( localize(8846, "UI State")) };
|
|
89
89
|
this.collapsibleState = TreeItemCollapsibleState.Collapsed;
|
|
90
90
|
}
|
|
91
91
|
async getChildren() {
|
|
@@ -81,7 +81,7 @@ let KeybindingsResourceTreeItem = class KeybindingsResourceTreeItem {
|
|
|
81
81
|
this.instantiationService = instantiationService;
|
|
82
82
|
this.type = ProfileResourceType.Keybindings;
|
|
83
83
|
this.handle = ProfileResourceType.Keybindings;
|
|
84
|
-
this.label = { label: ( localize(
|
|
84
|
+
this.label = { label: ( localize(8847, "Keyboard Shortcuts")) };
|
|
85
85
|
this.collapsibleState = TreeItemCollapsibleState.Expanded;
|
|
86
86
|
}
|
|
87
87
|
isFromDefaultProfile() {
|
|
@@ -102,7 +102,7 @@ let SettingsResourceTreeItem = class SettingsResourceTreeItem {
|
|
|
102
102
|
this.instantiationService = instantiationService;
|
|
103
103
|
this.type = ProfileResourceType.Settings;
|
|
104
104
|
this.handle = ProfileResourceType.Settings;
|
|
105
|
-
this.label = { label: ( localize(
|
|
105
|
+
this.label = { label: ( localize(8845, "Settings")) };
|
|
106
106
|
this.collapsibleState = TreeItemCollapsibleState.Expanded;
|
|
107
107
|
}
|
|
108
108
|
async getChildren() {
|
|
@@ -93,7 +93,7 @@ let SnippetsResourceTreeItem = class SnippetsResourceTreeItem {
|
|
|
93
93
|
this.uriIdentityService = uriIdentityService;
|
|
94
94
|
this.type = ProfileResourceType.Snippets;
|
|
95
95
|
this.handle = ( (this.profile.snippetsHome.toString()));
|
|
96
|
-
this.label = { label: ( localize(
|
|
96
|
+
this.label = { label: ( localize(8849, "Snippets")) };
|
|
97
97
|
this.collapsibleState = TreeItemCollapsibleState.Collapsed;
|
|
98
98
|
this.excludedSnippets = ( (new ResourceSet()));
|
|
99
99
|
}
|
|
@@ -121,7 +121,7 @@ let SnippetsResourceTreeItem = class SnippetsResourceTreeItem {
|
|
|
121
121
|
},
|
|
122
122
|
accessibilityInformation: {
|
|
123
123
|
label: ( localize(
|
|
124
|
-
|
|
124
|
+
8850,
|
|
125
125
|
"Select Snippet {0}",
|
|
126
126
|
this.uriIdentityService.extUri.basename(resource)
|
|
127
127
|
)),
|
|
@@ -80,7 +80,7 @@ let TasksResourceTreeItem = class TasksResourceTreeItem {
|
|
|
80
80
|
this.instantiationService = instantiationService;
|
|
81
81
|
this.type = ProfileResourceType.Tasks;
|
|
82
82
|
this.handle = ProfileResourceType.Tasks;
|
|
83
|
-
this.label = { label: ( localize(
|
|
83
|
+
this.label = { label: ( localize(8848, "Tasks")) };
|
|
84
84
|
this.collapsibleState = TreeItemCollapsibleState.Expanded;
|
|
85
85
|
}
|
|
86
86
|
async getChildren() {
|
|
@@ -87,7 +87,7 @@ let UserDataProfileImportExportService = class UserDataProfileImportExportServic
|
|
|
87
87
|
sticky: true,
|
|
88
88
|
cancellable: true,
|
|
89
89
|
}, async (progress) => {
|
|
90
|
-
const reportProgress = (message) => progress.report({ message: ( localize(
|
|
90
|
+
const reportProgress = (message) => progress.report({ message: ( localize(3659, "Create Profile: {0}", message)) });
|
|
91
91
|
creationPromise = createCancelablePromise(async (token) => {
|
|
92
92
|
const userDataProfilesExportState = disposables.add(this.instantiationService.createInstance(UserDataProfileExportState, from, { ...options?.resourceTypeFlags, extensions: false }));
|
|
93
93
|
const profileTemplate = await userDataProfilesExportState.getProfileTemplate(options.name ?? from.name, options?.icon);
|
|
@@ -103,7 +103,7 @@ let UserDataProfileImportExportService = class UserDataProfileImportExportServic
|
|
|
103
103
|
try {
|
|
104
104
|
await creationPromise;
|
|
105
105
|
if (profile && (options?.resourceTypeFlags?.extensions ?? true)) {
|
|
106
|
-
reportProgress(( localize(
|
|
106
|
+
reportProgress(( localize(3660, "Installing Extensions...")));
|
|
107
107
|
await this.instantiationService.createInstance(ExtensionsResource).copy(from, profile, false);
|
|
108
108
|
}
|
|
109
109
|
}
|
|
@@ -127,7 +127,7 @@ let UserDataProfileImportExportService = class UserDataProfileImportExportServic
|
|
|
127
127
|
sticky: true,
|
|
128
128
|
cancellable: true,
|
|
129
129
|
}, async (progress) => {
|
|
130
|
-
const reportProgress = (message) => progress.report({ message: ( localize(
|
|
130
|
+
const reportProgress = (message) => progress.report({ message: ( localize(3659, "Create Profile: {0}", message)) });
|
|
131
131
|
creationPromise = createCancelablePromise(async (token) => {
|
|
132
132
|
profile = await this.getProfileToImport({ ...profileTemplate, name: options.name ?? profileTemplate.name }, !!options.transient, options);
|
|
133
133
|
if (!profile) {
|
|
@@ -152,42 +152,42 @@ let UserDataProfileImportExportService = class UserDataProfileImportExportServic
|
|
|
152
152
|
}
|
|
153
153
|
async applyProfileTemplate(profileTemplate, profile, options, reportProgress, token) {
|
|
154
154
|
if (profileTemplate.settings && (options.resourceTypeFlags?.settings ?? true) && !profile.useDefaultFlags?.settings) {
|
|
155
|
-
reportProgress(( localize(
|
|
155
|
+
reportProgress(( localize(3661, "Creating Settings...")));
|
|
156
156
|
await this.instantiationService.createInstance(SettingsResource).apply(profileTemplate.settings, profile);
|
|
157
157
|
}
|
|
158
158
|
if (token.isCancellationRequested) {
|
|
159
159
|
return;
|
|
160
160
|
}
|
|
161
161
|
if (profileTemplate.keybindings && (options.resourceTypeFlags?.keybindings ?? true) && !profile.useDefaultFlags?.keybindings) {
|
|
162
|
-
reportProgress(( localize(
|
|
162
|
+
reportProgress(( localize(3662, "Creating Keyboard Shortcuts...")));
|
|
163
163
|
await this.instantiationService.createInstance(KeybindingsResource).apply(profileTemplate.keybindings, profile);
|
|
164
164
|
}
|
|
165
165
|
if (token.isCancellationRequested) {
|
|
166
166
|
return;
|
|
167
167
|
}
|
|
168
168
|
if (profileTemplate.tasks && (options.resourceTypeFlags?.tasks ?? true) && !profile.useDefaultFlags?.tasks) {
|
|
169
|
-
reportProgress(( localize(
|
|
169
|
+
reportProgress(( localize(3663, "Creating Tasks...")));
|
|
170
170
|
await this.instantiationService.createInstance(TasksResource).apply(profileTemplate.tasks, profile);
|
|
171
171
|
}
|
|
172
172
|
if (token.isCancellationRequested) {
|
|
173
173
|
return;
|
|
174
174
|
}
|
|
175
175
|
if (profileTemplate.snippets && (options.resourceTypeFlags?.snippets ?? true) && !profile.useDefaultFlags?.snippets) {
|
|
176
|
-
reportProgress(( localize(
|
|
176
|
+
reportProgress(( localize(3664, "Creating Snippets...")));
|
|
177
177
|
await this.instantiationService.createInstance(SnippetsResource).apply(profileTemplate.snippets, profile);
|
|
178
178
|
}
|
|
179
179
|
if (token.isCancellationRequested) {
|
|
180
180
|
return;
|
|
181
181
|
}
|
|
182
182
|
if (profileTemplate.globalState && !profile.useDefaultFlags?.globalState) {
|
|
183
|
-
reportProgress(( localize(
|
|
183
|
+
reportProgress(( localize(3665, "Applying UI State...")));
|
|
184
184
|
await this.instantiationService.createInstance(GlobalStateResource).apply(profileTemplate.globalState, profile);
|
|
185
185
|
}
|
|
186
186
|
if (token.isCancellationRequested) {
|
|
187
187
|
return;
|
|
188
188
|
}
|
|
189
189
|
if (profileTemplate.extensions && (options.resourceTypeFlags?.extensions ?? true) && !profile.useDefaultFlags?.extensions) {
|
|
190
|
-
reportProgress(( localize(
|
|
190
|
+
reportProgress(( localize(3660, "Installing Extensions...")));
|
|
191
191
|
await this.instantiationService.createInstance(ExtensionsResource).apply(profileTemplate.extensions, profile, reportProgress, token);
|
|
192
192
|
}
|
|
193
193
|
}
|
|
@@ -204,18 +204,18 @@ let UserDataProfileImportExportService = class UserDataProfileImportExportServic
|
|
|
204
204
|
async createTroubleshootProfile() {
|
|
205
205
|
const userDataProfilesExportState = this.instantiationService.createInstance(UserDataProfileExportState, this.userDataProfileService.currentProfile, undefined);
|
|
206
206
|
try {
|
|
207
|
-
const profileTemplate = await userDataProfilesExportState.getProfileTemplate(( localize(
|
|
207
|
+
const profileTemplate = await userDataProfilesExportState.getProfileTemplate(( localize(3666, "Troubleshoot Issue")), undefined);
|
|
208
208
|
await this.progressService.withProgress({
|
|
209
209
|
location: ProgressLocation.Notification,
|
|
210
210
|
delay: 1000,
|
|
211
211
|
sticky: true,
|
|
212
212
|
}, async (progress) => {
|
|
213
|
-
const reportProgress = (message) => progress.report({ message: ( localize(
|
|
213
|
+
const reportProgress = (message) => progress.report({ message: ( localize(3667, "Setting up Troubleshoot Profile: {0}", message)) });
|
|
214
214
|
const profile = await this.doCreateProfile(profileTemplate, true, false, { useDefaultFlags: this.userDataProfileService.currentProfile.useDefaultFlags }, reportProgress);
|
|
215
215
|
if (profile) {
|
|
216
|
-
reportProgress(( localize(
|
|
216
|
+
reportProgress(( localize(3668, "Applying Extensions...")));
|
|
217
217
|
await this.instantiationService.createInstance(ExtensionsResource).copy(this.userDataProfileService.currentProfile, profile, true);
|
|
218
|
-
reportProgress(( localize(
|
|
218
|
+
reportProgress(( localize(3669, "Switching Profile...")));
|
|
219
219
|
await this.userDataProfileManagementService.switchProfile(profile);
|
|
220
220
|
}
|
|
221
221
|
});
|
|
@@ -233,7 +233,7 @@ let UserDataProfileImportExportService = class UserDataProfileImportExportServic
|
|
|
233
233
|
try {
|
|
234
234
|
await this.progressService.withProgress({
|
|
235
235
|
location,
|
|
236
|
-
title: ( localize(
|
|
236
|
+
title: ( localize(3670, "{0}: Exporting...", PROFILES_CATEGORY.value)),
|
|
237
237
|
}, async (progress) => {
|
|
238
238
|
const id = await this.pickProfileContentHandler(profile.name);
|
|
239
239
|
if (!id) {
|
|
@@ -247,17 +247,17 @@ let UserDataProfileImportExportService = class UserDataProfileImportExportServic
|
|
|
247
247
|
if (!saveResult) {
|
|
248
248
|
return;
|
|
249
249
|
}
|
|
250
|
-
const message = ( localize(
|
|
250
|
+
const message = ( localize(3671, "Profile '{0}' was exported successfully.", profile.name));
|
|
251
251
|
if (profileContentHandler.extensionId) {
|
|
252
252
|
const buttons = [];
|
|
253
253
|
const link = this.productService.webUrl ? `${this.productService.webUrl}/${PROFILE_URL_AUTHORITY}/${id}/${saveResult.id}` : ( (toUserDataProfileUri(`/${id}/${saveResult.id}`, this.productService).toString()));
|
|
254
254
|
buttons.push({
|
|
255
|
-
label: ( localize(
|
|
255
|
+
label: ( localize(3672, "&&Copy Link")),
|
|
256
256
|
run: () => this.clipboardService.writeText(link)
|
|
257
257
|
});
|
|
258
258
|
if (this.productService.webUrl) {
|
|
259
259
|
buttons.push({
|
|
260
|
-
label: ( localize(
|
|
260
|
+
label: ( localize(3673, "&&Open Link")),
|
|
261
261
|
run: async () => {
|
|
262
262
|
await this.openerService.open(link);
|
|
263
263
|
}
|
|
@@ -265,7 +265,7 @@ let UserDataProfileImportExportService = class UserDataProfileImportExportServic
|
|
|
265
265
|
}
|
|
266
266
|
else {
|
|
267
267
|
buttons.push({
|
|
268
|
-
label: ( localize(
|
|
268
|
+
label: ( localize(3674, "&&Open in {0}", profileContentHandler.name)),
|
|
269
269
|
run: async () => {
|
|
270
270
|
await this.openerService.open(( (saveResult.link.toString())));
|
|
271
271
|
}
|
|
@@ -275,7 +275,7 @@ let UserDataProfileImportExportService = class UserDataProfileImportExportServic
|
|
|
275
275
|
type: Severity$1.Info,
|
|
276
276
|
message,
|
|
277
277
|
buttons,
|
|
278
|
-
cancelButton: ( localize(
|
|
278
|
+
cancelButton: ( localize(3675, "Close"))
|
|
279
279
|
});
|
|
280
280
|
}
|
|
281
281
|
else {
|
|
@@ -297,10 +297,10 @@ let UserDataProfileImportExportService = class UserDataProfileImportExportServic
|
|
|
297
297
|
profileTemplate = JSON.parse(profileContent);
|
|
298
298
|
}
|
|
299
299
|
catch (error) {
|
|
300
|
-
throw ( (new Error(localize(
|
|
300
|
+
throw ( (new Error(localize(3676, "This profile is not valid."))));
|
|
301
301
|
}
|
|
302
302
|
if (!isUserDataProfileTemplate(profileTemplate)) {
|
|
303
|
-
throw ( (new Error(localize(
|
|
303
|
+
throw ( (new Error(localize(3676, "This profile is not valid."))));
|
|
304
304
|
}
|
|
305
305
|
if (options?.name) {
|
|
306
306
|
profileTemplate.name = options.name;
|
|
@@ -334,27 +334,27 @@ let UserDataProfileImportExportService = class UserDataProfileImportExportServic
|
|
|
334
334
|
return undefined;
|
|
335
335
|
}
|
|
336
336
|
if (profileTemplate.settings && !profile.useDefaultFlags?.settings) {
|
|
337
|
-
progress(( localize(
|
|
337
|
+
progress(( localize(3677, "Applying Settings...")));
|
|
338
338
|
await this.instantiationService.createInstance(SettingsResource).apply(profileTemplate.settings, profile);
|
|
339
339
|
}
|
|
340
340
|
if (profileTemplate.keybindings && !profile.useDefaultFlags?.keybindings) {
|
|
341
|
-
progress(( localize(
|
|
341
|
+
progress(( localize(3678, "Applying Keyboard Shortcuts...")));
|
|
342
342
|
await this.instantiationService.createInstance(KeybindingsResource).apply(profileTemplate.keybindings, profile);
|
|
343
343
|
}
|
|
344
344
|
if (profileTemplate.tasks && !profile.useDefaultFlags?.tasks) {
|
|
345
|
-
progress(( localize(
|
|
345
|
+
progress(( localize(3679, "Applying Tasks...")));
|
|
346
346
|
await this.instantiationService.createInstance(TasksResource).apply(profileTemplate.tasks, profile);
|
|
347
347
|
}
|
|
348
348
|
if (profileTemplate.snippets && !profile.useDefaultFlags?.snippets) {
|
|
349
|
-
progress(( localize(
|
|
349
|
+
progress(( localize(3680, "Applying Snippets...")));
|
|
350
350
|
await this.instantiationService.createInstance(SnippetsResource).apply(profileTemplate.snippets, profile);
|
|
351
351
|
}
|
|
352
352
|
if (profileTemplate.globalState && !profile.useDefaultFlags?.globalState) {
|
|
353
|
-
progress(( localize(
|
|
353
|
+
progress(( localize(3681, "Applying State...")));
|
|
354
354
|
await this.instantiationService.createInstance(GlobalStateResource).apply(profileTemplate.globalState, profile);
|
|
355
355
|
}
|
|
356
356
|
if (profileTemplate.extensions && extensions && !profile.useDefaultFlags?.extensions) {
|
|
357
|
-
progress(( localize(
|
|
357
|
+
progress(( localize(3668, "Applying Extensions...")));
|
|
358
358
|
await this.instantiationService.createInstance(ExtensionsResource).apply(profileTemplate.extensions, profile);
|
|
359
359
|
}
|
|
360
360
|
return profile;
|
|
@@ -407,7 +407,7 @@ let UserDataProfileImportExportService = class UserDataProfileImportExportServic
|
|
|
407
407
|
options.push({ id, label: profileContentHandler.name, description: profileContentHandler.description });
|
|
408
408
|
}
|
|
409
409
|
const result = await this.quickInputService.pick(options.reverse(), {
|
|
410
|
-
title: ( localize(
|
|
410
|
+
title: ( localize(3682, "Export '{0}' profile as...", name)),
|
|
411
411
|
hideInput: true
|
|
412
412
|
});
|
|
413
413
|
return result?.id;
|
|
@@ -422,11 +422,11 @@ let UserDataProfileImportExportService = class UserDataProfileImportExportServic
|
|
|
422
422
|
const { confirmed } = await this.dialogService.confirm({
|
|
423
423
|
type: Severity$1.Info,
|
|
424
424
|
message: ( localize(
|
|
425
|
-
|
|
425
|
+
3683,
|
|
426
426
|
"Profile with name '{0}' already exists. Do you want to replace its contents?",
|
|
427
427
|
profileName
|
|
428
428
|
)),
|
|
429
|
-
primaryButton: ( localize(
|
|
429
|
+
primaryButton: ( localize(3684, "&&Replace"))
|
|
430
430
|
});
|
|
431
431
|
if (!confirmed) {
|
|
432
432
|
return undefined;
|
|
@@ -470,12 +470,12 @@ let FileUserDataProfileContentHandler = class FileUserDataProfileContentHandler
|
|
|
470
470
|
this.fileService = fileService;
|
|
471
471
|
this.productService = productService;
|
|
472
472
|
this.textFileService = textFileService;
|
|
473
|
-
this.name = ( localize(
|
|
474
|
-
this.description = ( localize(
|
|
473
|
+
this.name = ( localize(3685, "Local"));
|
|
474
|
+
this.description = ( localize(3686, "file"));
|
|
475
475
|
}
|
|
476
476
|
async saveProfile(name, content, token) {
|
|
477
477
|
const link = await this.fileDialogService.showSaveDialog({
|
|
478
|
-
title: ( localize(
|
|
478
|
+
title: ( localize(3687, "Save Profile")),
|
|
479
479
|
filters: PROFILE_FILTER,
|
|
480
480
|
defaultUri: this.uriIdentityService.extUri.joinPath(await this.fileDialogService.defaultFilePath(), `${name}.${PROFILE_EXTENSION}`),
|
|
481
481
|
});
|
|
@@ -502,7 +502,7 @@ let FileUserDataProfileContentHandler = class FileUserDataProfileContentHandler
|
|
|
502
502
|
canSelectFiles: true,
|
|
503
503
|
canSelectMany: false,
|
|
504
504
|
filters: PROFILE_FILTER,
|
|
505
|
-
title: ( localize(
|
|
505
|
+
title: ( localize(3688, "Select Profile")),
|
|
506
506
|
});
|
|
507
507
|
return profileLocation ? profileLocation[0] : null;
|
|
508
508
|
}
|
|
@@ -549,13 +549,13 @@ let UserDataProfileImportExportState = class UserDataProfileImportExportState ex
|
|
|
549
549
|
for (const root of this.roots) {
|
|
550
550
|
root.checkbox = {
|
|
551
551
|
isChecked: !root.isFromDefaultProfile(),
|
|
552
|
-
tooltip: ( localize(
|
|
552
|
+
tooltip: ( localize(3689, "Select {0}", root.label.label)),
|
|
553
553
|
accessibilityInformation: {
|
|
554
|
-
label: ( localize(
|
|
554
|
+
label: ( localize(3689, "Select {0}", root.label.label)),
|
|
555
555
|
}
|
|
556
556
|
};
|
|
557
557
|
if (root.isFromDefaultProfile()) {
|
|
558
|
-
root.description = ( localize(
|
|
558
|
+
root.description = ( localize(3690, "From Default Profile"));
|
|
559
559
|
}
|
|
560
560
|
}
|
|
561
561
|
return this.roots;
|
|
@@ -718,11 +718,11 @@ let UserDataProfileExportState = class UserDataProfileExportState extends UserDa
|
|
|
718
718
|
let name = this.profile.name;
|
|
719
719
|
if (this.profile.isDefault) {
|
|
720
720
|
name = await this.quickInputService.input({
|
|
721
|
-
placeHolder: ( localize(
|
|
722
|
-
title: ( localize(
|
|
721
|
+
placeHolder: ( localize(3691, "Name the profile")),
|
|
722
|
+
title: ( localize(3692, "Export Profile")),
|
|
723
723
|
async validateInput(input) {
|
|
724
724
|
if (!input.trim()) {
|
|
725
|
-
return ( localize(
|
|
725
|
+
return ( localize(3693, "Profile name must be provided."));
|
|
726
726
|
}
|
|
727
727
|
return undefined;
|
|
728
728
|
},
|
package/vscode/src/vs/workbench/services/userDataProfile/browser/userDataProfileManagement.js
CHANGED
|
@@ -40,7 +40,7 @@ let UserDataProfileManagementService = class UserDataProfileManagementService ex
|
|
|
40
40
|
const updatedCurrentProfile = e.updated.find(p => this.userDataProfileService.currentProfile.id === p.id);
|
|
41
41
|
if (updatedCurrentProfile) {
|
|
42
42
|
this.changeCurrentProfile(updatedCurrentProfile, ( localize(
|
|
43
|
-
|
|
43
|
+
3694,
|
|
44
44
|
"The current profile has been updated. Please reload to switch back to the updated profile"
|
|
45
45
|
)));
|
|
46
46
|
}
|
|
@@ -49,7 +49,7 @@ let UserDataProfileManagementService = class UserDataProfileManagementService ex
|
|
|
49
49
|
onDidChangeProfiles(e) {
|
|
50
50
|
if (( (e.removed.some(profile => profile.id === this.userDataProfileService.currentProfile.id)))) {
|
|
51
51
|
this.changeCurrentProfile(this.userDataProfilesService.defaultProfile, ( localize(
|
|
52
|
-
|
|
52
|
+
3695,
|
|
53
53
|
"The current profile has been removed. Please reload to switch back to default profile"
|
|
54
54
|
)));
|
|
55
55
|
return;
|
|
@@ -58,7 +58,7 @@ let UserDataProfileManagementService = class UserDataProfileManagementService ex
|
|
|
58
58
|
onDidResetWorkspaces() {
|
|
59
59
|
if (!this.userDataProfileService.currentProfile.isDefault) {
|
|
60
60
|
this.changeCurrentProfile(this.userDataProfilesService.defaultProfile, ( localize(
|
|
61
|
-
|
|
61
|
+
3695,
|
|
62
62
|
"The current profile has been removed. Please reload to switch back to default profile"
|
|
63
63
|
)));
|
|
64
64
|
return;
|
|
@@ -89,7 +89,7 @@ let UserDataProfileManagementService = class UserDataProfileManagementService ex
|
|
|
89
89
|
throw ( (new Error(`Profile ${profile.name} does not exist`)));
|
|
90
90
|
}
|
|
91
91
|
if (profile.isDefault) {
|
|
92
|
-
throw ( (new Error(localize(
|
|
92
|
+
throw ( (new Error(localize(3696, "Cannot rename the default profile"))));
|
|
93
93
|
}
|
|
94
94
|
const updatedProfile = await this.userDataProfilesService.updateProfile(profile, updateOptions);
|
|
95
95
|
this.telemetryService.publicLog2('profileManagementActionExecuted', { id: 'updateProfile' });
|
|
@@ -100,7 +100,7 @@ let UserDataProfileManagementService = class UserDataProfileManagementService ex
|
|
|
100
100
|
throw ( (new Error(`Profile ${profile.name} does not exist`)));
|
|
101
101
|
}
|
|
102
102
|
if (profile.isDefault) {
|
|
103
|
-
throw ( (new Error(localize(
|
|
103
|
+
throw ( (new Error(localize(3697, "Cannot delete the default profile"))));
|
|
104
104
|
}
|
|
105
105
|
await this.userDataProfilesService.removeProfile(profile);
|
|
106
106
|
this.telemetryService.publicLog2('profileManagementActionExecuted', { id: 'removeProfile' });
|
|
@@ -139,7 +139,7 @@ let UserDataProfileManagementService = class UserDataProfileManagementService ex
|
|
|
139
139
|
const shouldRestartExtensionHosts = this.userDataProfileService.currentProfile.id !== profile.id || !equals(this.userDataProfileService.currentProfile.useDefaultFlags, profile.useDefaultFlags);
|
|
140
140
|
if (shouldRestartExtensionHosts) {
|
|
141
141
|
if (!isRemoteWindow) {
|
|
142
|
-
if (!(await this.extensionService.stopExtensionHosts(( localize(
|
|
142
|
+
if (!(await this.extensionService.stopExtensionHosts(( localize(3698, "Switching to a profile."))))) {
|
|
143
143
|
if (( (this.userDataProfilesService.profiles.some(p => p.id === this.userDataProfileService.currentProfile.id)))) {
|
|
144
144
|
await this.userDataProfilesService.setProfileForWorkspace(toWorkspaceIdentifier(this.workspaceContextService.getWorkspace()), this.userDataProfileService.currentProfile);
|
|
145
145
|
}
|
|
@@ -151,8 +151,8 @@ let UserDataProfileManagementService = class UserDataProfileManagementService ex
|
|
|
151
151
|
if (shouldRestartExtensionHosts) {
|
|
152
152
|
if (isRemoteWindow) {
|
|
153
153
|
const { confirmed } = await this.dialogService.confirm({
|
|
154
|
-
message: reloadMessage ?? ( localize(
|
|
155
|
-
primaryButton: ( localize(
|
|
154
|
+
message: reloadMessage ?? ( localize(3699, "Switching a profile requires reloading VS Code.")),
|
|
155
|
+
primaryButton: ( localize(3700, "&&Reload")),
|
|
156
156
|
});
|
|
157
157
|
if (confirmed) {
|
|
158
158
|
await this.hostService.reload();
|