@codingame/monaco-vscode-theme-service-override 29.1.1 → 30.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 +3 -3
- package/vscode/src/vs/workbench/contrib/themes/browser/themes.contribution.js +45 -45
- package/vscode/src/vs/workbench/services/themes/browser/fileIconThemeData.js +2 -2
- package/vscode/src/vs/workbench/services/themes/browser/productIconThemeData.js +12 -12
- package/vscode/src/vs/workbench/services/themes/browser/workbenchThemeService.d.ts +3 -8
- package/vscode/src/vs/workbench/services/themes/browser/workbenchThemeService.js +55 -36
- package/vscode/src/vs/workbench/services/themes/common/colorThemeSchema.js +16 -16
- package/vscode/src/vs/workbench/services/themes/common/fileIconThemeSchema.js +38 -38
- package/vscode/src/vs/workbench/services/themes/common/productIconThemeSchema.js +7 -7
- package/vscode/src/vs/workbench/services/themes/common/themeConfiguration.d.ts +1 -3
- package/vscode/src/vs/workbench/services/themes/common/themeConfiguration.js +39 -56
- package/vscode/src/vs/workbench/services/themes/common/themeExtensionPoints.js +21 -21
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codingame/monaco-vscode-theme-service-override",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "30.0.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "VSCode public API plugged on the monaco editor - theme service-override",
|
|
6
6
|
"keywords": [],
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
},
|
|
16
16
|
"type": "module",
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@codingame/monaco-vscode-api": "
|
|
19
|
-
"@codingame/monaco-vscode-files-service-override": "
|
|
18
|
+
"@codingame/monaco-vscode-api": "30.0.0",
|
|
19
|
+
"@codingame/monaco-vscode-files-service-override": "30.0.0"
|
|
20
20
|
},
|
|
21
21
|
"main": "index.js",
|
|
22
22
|
"module": "index.js",
|
|
@@ -52,7 +52,7 @@ import { IPreferencesService } from '@codingame/monaco-vscode-api/vscode/vs/work
|
|
|
52
52
|
import { DisposableStore } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
53
53
|
import Severity from '@codingame/monaco-vscode-api/vscode/vs/base/common/severity';
|
|
54
54
|
|
|
55
|
-
const manageExtensionIcon = registerIcon("theme-selection-manage-extension", Codicon.gear, ( localize(
|
|
55
|
+
const manageExtensionIcon = registerIcon("theme-selection-manage-extension", Codicon.gear, ( localize(14713, "Icon for the 'Manage' action in the theme selection quick pick.")));
|
|
56
56
|
var ConfigureItem;
|
|
57
57
|
(function(ConfigureItem) {
|
|
58
58
|
ConfigureItem["BROWSE_GALLERY"] = "marketplace";
|
|
@@ -178,7 +178,7 @@ let MarketplaceThemesPicker = class MarketplaceThemesPicker {
|
|
|
178
178
|
quickpick.matchOnDescription = true;
|
|
179
179
|
quickpick.buttons = [this.quickInputService.backButton];
|
|
180
180
|
quickpick.title = "Marketplace Themes";
|
|
181
|
-
quickpick.placeholder = ( localize(
|
|
181
|
+
quickpick.placeholder = ( localize(14714, "Type to Search More. Select to Install. Up/Down Keys to Preview"));
|
|
182
182
|
quickpick.canSelectMany = false;
|
|
183
183
|
disposables.add(quickpick.onDidChangeValue(() => this.trigger(quickpick.value)));
|
|
184
184
|
disposables.add(quickpick.onDidAccept(async _ => {
|
|
@@ -232,7 +232,7 @@ let MarketplaceThemesPicker = class MarketplaceThemesPicker {
|
|
|
232
232
|
});
|
|
233
233
|
} else if (items.length === 0 && this._searchError) {
|
|
234
234
|
items = [{
|
|
235
|
-
label: `$(error) ${( localize(
|
|
235
|
+
label: `$(error) ${( localize(14715, "Error while searching for themes: {0}", this._searchError))}`,
|
|
236
236
|
id: undefined,
|
|
237
237
|
alwaysShow: true
|
|
238
238
|
}];
|
|
@@ -254,12 +254,12 @@ let MarketplaceThemesPicker = class MarketplaceThemesPicker {
|
|
|
254
254
|
this.extensionsWorkbenchService.openSearch(`@id:${galleryExtension.identifier.id}`);
|
|
255
255
|
const result = await this.dialogService.confirm({
|
|
256
256
|
message: ( localize(
|
|
257
|
-
|
|
257
|
+
14716,
|
|
258
258
|
"This will install extension '{0}' published by '{1}'. Do you want to continue?",
|
|
259
259
|
galleryExtension.displayName,
|
|
260
260
|
galleryExtension.publisherDisplayName
|
|
261
261
|
)),
|
|
262
|
-
primaryButton: ( localize(
|
|
262
|
+
primaryButton: ( localize(14717, "OK"))
|
|
263
263
|
});
|
|
264
264
|
if (!result.confirmed) {
|
|
265
265
|
return false;
|
|
@@ -267,7 +267,7 @@ let MarketplaceThemesPicker = class MarketplaceThemesPicker {
|
|
|
267
267
|
try {
|
|
268
268
|
await this.progressService.withProgress({
|
|
269
269
|
location: ProgressLocation.Notification,
|
|
270
|
-
title: ( localize(
|
|
270
|
+
title: ( localize(14718, "Installing Extension {0}...", galleryExtension.displayName))
|
|
271
271
|
}, async () => {
|
|
272
272
|
await this.extensionManagementService.installFromGallery(galleryExtension, {
|
|
273
273
|
isMachineScoped: false
|
|
@@ -418,7 +418,7 @@ registerAction2(class extends Action2 {
|
|
|
418
418
|
constructor() {
|
|
419
419
|
super({
|
|
420
420
|
id: SelectColorThemeCommandId,
|
|
421
|
-
title: ( localize2(
|
|
421
|
+
title: ( localize2(14719, "Color Theme")),
|
|
422
422
|
category: Categories.Preferences,
|
|
423
423
|
f1: true,
|
|
424
424
|
keybinding: {
|
|
@@ -430,15 +430,15 @@ registerAction2(class extends Action2 {
|
|
|
430
430
|
getTitle(colorScheme) {
|
|
431
431
|
switch (colorScheme) {
|
|
432
432
|
case ColorScheme.DARK:
|
|
433
|
-
return localize(
|
|
433
|
+
return localize(14720, "Select Color Theme for System Dark Mode");
|
|
434
434
|
case ColorScheme.LIGHT:
|
|
435
|
-
return localize(
|
|
435
|
+
return localize(14721, "Select Color Theme for System Light Mode");
|
|
436
436
|
case ColorScheme.HIGH_CONTRAST_DARK:
|
|
437
|
-
return localize(
|
|
437
|
+
return localize(14722, "Select Color Theme for High Contrast Dark Mode");
|
|
438
438
|
case ColorScheme.HIGH_CONTRAST_LIGHT:
|
|
439
|
-
return localize(
|
|
439
|
+
return localize(14723, "Select Color Theme for High Contrast Light Mode");
|
|
440
440
|
default:
|
|
441
|
-
return localize(
|
|
441
|
+
return localize(14724, "Select Color Theme (detect system color mode disabled)");
|
|
442
442
|
}
|
|
443
443
|
}
|
|
444
444
|
async run(accessor) {
|
|
@@ -446,13 +446,13 @@ registerAction2(class extends Action2 {
|
|
|
446
446
|
const preferencesService = accessor.get(IPreferencesService);
|
|
447
447
|
const preferredColorScheme = themeService.getPreferredColorScheme();
|
|
448
448
|
const modeConfigureButton = {
|
|
449
|
-
tooltip: preferredColorScheme ? ( localize(
|
|
449
|
+
tooltip: preferredColorScheme ? ( localize(14725, "Detect system color mode enabled. Click to configure.")) : ( localize(14726, "Detect system color mode disabled. Click to configure.")),
|
|
450
450
|
iconClass: ThemeIcon.asClassName(Codicon.colorMode),
|
|
451
451
|
location: QuickInputButtonLocation.Inline
|
|
452
452
|
};
|
|
453
453
|
const options = {
|
|
454
|
-
installMessage: ( localize(
|
|
455
|
-
browseMessage: "$(plus) " + ( localize(
|
|
454
|
+
installMessage: ( localize(14727, "Install Additional Color Themes...")),
|
|
455
|
+
browseMessage: "$(plus) " + ( localize(14728, "Browse Additional Color Themes...")),
|
|
456
456
|
placeholderMessage: this.getTitle(preferredColorScheme),
|
|
457
457
|
marketplaceTag: "category:themes",
|
|
458
458
|
buttons: [modeConfigureButton],
|
|
@@ -469,9 +469,9 @@ registerAction2(class extends Action2 {
|
|
|
469
469
|
const picker = instantiationService.createInstance(InstalledThemesPicker, options, setTheme, getMarketplaceColorThemes);
|
|
470
470
|
const themes = await themeService.getColorThemes();
|
|
471
471
|
const currentTheme = themeService.getColorTheme();
|
|
472
|
-
const lightEntries = toEntries(themes.filter(t => t.type === ColorScheme.LIGHT), ( localize(
|
|
473
|
-
const darkEntries = toEntries(themes.filter(t => t.type === ColorScheme.DARK), ( localize(
|
|
474
|
-
const hcEntries = toEntries(themes.filter(t => isHighContrast(t.type)), ( localize(
|
|
472
|
+
const lightEntries = toEntries(themes.filter(t => t.type === ColorScheme.LIGHT), ( localize(14729, "light themes")));
|
|
473
|
+
const darkEntries = toEntries(themes.filter(t => t.type === ColorScheme.DARK), ( localize(14730, "dark themes")));
|
|
474
|
+
const hcEntries = toEntries(themes.filter(t => isHighContrast(t.type)), ( localize(14731, "high contrast themes")));
|
|
475
475
|
let picks;
|
|
476
476
|
switch (preferredColorScheme) {
|
|
477
477
|
case ColorScheme.DARK:
|
|
@@ -494,7 +494,7 @@ registerAction2(class extends Action2 {
|
|
|
494
494
|
constructor() {
|
|
495
495
|
super({
|
|
496
496
|
id: SelectFileIconThemeCommandId,
|
|
497
|
-
title: ( localize2(
|
|
497
|
+
title: ( localize2(14732, "File Icon Theme")),
|
|
498
498
|
category: Categories.Preferences,
|
|
499
499
|
f1: true
|
|
500
500
|
});
|
|
@@ -502,8 +502,8 @@ registerAction2(class extends Action2 {
|
|
|
502
502
|
async run(accessor) {
|
|
503
503
|
const themeService = accessor.get(IWorkbenchThemeService);
|
|
504
504
|
const options = {
|
|
505
|
-
installMessage: ( localize(
|
|
506
|
-
placeholderMessage: ( localize(
|
|
505
|
+
installMessage: ( localize(14733, "Install Additional File Icon Themes...")),
|
|
506
|
+
placeholderMessage: ( localize(14734, "Select File Icon Theme (Up/Down Keys to Preview)")),
|
|
507
507
|
marketplaceTag: "tag:icon-theme"
|
|
508
508
|
};
|
|
509
509
|
const setTheme = (theme, settingsTarget) => themeService.setFileIconTheme(theme, settingsTarget);
|
|
@@ -512,12 +512,12 @@ registerAction2(class extends Action2 {
|
|
|
512
512
|
const picker = instantiationService.createInstance(InstalledThemesPicker, options, setTheme, getMarketplaceColorThemes);
|
|
513
513
|
const picks = [{
|
|
514
514
|
type: "separator",
|
|
515
|
-
label: ( localize(
|
|
515
|
+
label: ( localize(14735, "file icon themes"))
|
|
516
516
|
}, {
|
|
517
517
|
id: "",
|
|
518
518
|
theme: FileIconThemeData.noIconTheme,
|
|
519
|
-
label: ( localize(
|
|
520
|
-
description: ( localize(
|
|
519
|
+
label: ( localize(14736, "None")),
|
|
520
|
+
description: ( localize(14737, "Disable File Icons"))
|
|
521
521
|
}, ...toEntries(await themeService.getFileIconThemes())];
|
|
522
522
|
await picker.openQuickPick(picks, themeService.getFileIconTheme());
|
|
523
523
|
}
|
|
@@ -527,7 +527,7 @@ registerAction2(class extends Action2 {
|
|
|
527
527
|
constructor() {
|
|
528
528
|
super({
|
|
529
529
|
id: SelectProductIconThemeCommandId,
|
|
530
|
-
title: ( localize2(
|
|
530
|
+
title: ( localize2(14738, "Product Icon Theme")),
|
|
531
531
|
category: Categories.Preferences,
|
|
532
532
|
f1: true
|
|
533
533
|
});
|
|
@@ -535,9 +535,9 @@ registerAction2(class extends Action2 {
|
|
|
535
535
|
async run(accessor) {
|
|
536
536
|
const themeService = accessor.get(IWorkbenchThemeService);
|
|
537
537
|
const options = {
|
|
538
|
-
installMessage: ( localize(
|
|
539
|
-
browseMessage: "$(plus) " + ( localize(
|
|
540
|
-
placeholderMessage: ( localize(
|
|
538
|
+
installMessage: ( localize(14739, "Install Additional Product Icon Themes...")),
|
|
539
|
+
browseMessage: "$(plus) " + ( localize(14740, "Browse Additional Product Icon Themes...")),
|
|
540
|
+
placeholderMessage: ( localize(14741, "Select Product Icon Theme (Up/Down Keys to Preview)")),
|
|
541
541
|
marketplaceTag: "tag:product-icon-theme"
|
|
542
542
|
};
|
|
543
543
|
const setTheme = (theme, settingsTarget) => themeService.setProductIconTheme(theme, settingsTarget);
|
|
@@ -546,11 +546,11 @@ registerAction2(class extends Action2 {
|
|
|
546
546
|
const picker = instantiationService.createInstance(InstalledThemesPicker, options, setTheme, getMarketplaceColorThemes);
|
|
547
547
|
const picks = [{
|
|
548
548
|
type: "separator",
|
|
549
|
-
label: ( localize(
|
|
549
|
+
label: ( localize(14742, "product icon themes"))
|
|
550
550
|
}, {
|
|
551
551
|
id: DEFAULT_PRODUCT_ICON_THEME_ID,
|
|
552
552
|
theme: ProductIconThemeData.defaultTheme,
|
|
553
|
-
label: ( localize(
|
|
553
|
+
label: ( localize(14743, "Default"))
|
|
554
554
|
}, ...toEntries(await themeService.getProductIconThemes())];
|
|
555
555
|
await picker.openQuickPick(picks, themeService.getProductIconTheme());
|
|
556
556
|
}
|
|
@@ -559,7 +559,7 @@ registerAction2(class extends Action2 {
|
|
|
559
559
|
constructor() {
|
|
560
560
|
super({
|
|
561
561
|
id: "workbench.action.tryNewDefaultThemes",
|
|
562
|
-
title: ( localize2(
|
|
562
|
+
title: ( localize2(14744, "Try New Default Themes")),
|
|
563
563
|
category: Categories.Preferences,
|
|
564
564
|
f1: true
|
|
565
565
|
});
|
|
@@ -583,7 +583,7 @@ registerAction2(class extends Action2 {
|
|
|
583
583
|
const disposables = ( new DisposableStore());
|
|
584
584
|
const picker = disposables.add(quickInputService.createQuickPick());
|
|
585
585
|
picker.items = items;
|
|
586
|
-
picker.placeholder = ( localize(
|
|
586
|
+
picker.placeholder = ( localize(14745, "Pick a new default theme"));
|
|
587
587
|
picker.canSelectMany = false;
|
|
588
588
|
const preferredId = (previousTheme.type === ColorScheme.LIGHT || previousTheme.type === ColorScheme.HIGH_CONTRAST_LIGHT) ? ThemeSettingDefaults.COLOR_THEME_LIGHT : ThemeSettingDefaults.COLOR_THEME_DARK;
|
|
589
589
|
const activeItem = items.find(i => themes.find(t => t.id === i.id)?.settingsId === preferredId);
|
|
@@ -669,8 +669,8 @@ function isItem(i) {
|
|
|
669
669
|
return i["type"] !== "separator";
|
|
670
670
|
}
|
|
671
671
|
const defaultThemeDescriptions = {
|
|
672
|
-
[ThemeSettingDefaults.COLOR_THEME_LIGHT]: ( localize(
|
|
673
|
-
[ThemeSettingDefaults.COLOR_THEME_DARK]: ( localize(
|
|
672
|
+
[ThemeSettingDefaults.COLOR_THEME_LIGHT]: ( localize(14746, "Default Light")),
|
|
673
|
+
[ThemeSettingDefaults.COLOR_THEME_DARK]: ( localize(14747, "Default Dark"))
|
|
674
674
|
};
|
|
675
675
|
function toEntry(theme) {
|
|
676
676
|
const settingId = theme.settingsId ?? undefined;
|
|
@@ -709,13 +709,13 @@ function toEntries(themes, label) {
|
|
|
709
709
|
}
|
|
710
710
|
const configureButton = {
|
|
711
711
|
iconClass: ThemeIcon.asClassName(manageExtensionIcon),
|
|
712
|
-
tooltip: ( localize(
|
|
712
|
+
tooltip: ( localize(14748, "Manage Extension"))
|
|
713
713
|
};
|
|
714
714
|
registerAction2(class extends Action2 {
|
|
715
715
|
constructor() {
|
|
716
716
|
super({
|
|
717
717
|
id: "workbench.action.generateColorTheme",
|
|
718
|
-
title: ( localize2(
|
|
718
|
+
title: ( localize2(14749, "Generate Color Theme From Current Settings")),
|
|
719
719
|
category: Categories.Developer,
|
|
720
720
|
f1: true
|
|
721
721
|
});
|
|
@@ -770,7 +770,7 @@ registerAction2(class extends Action2 {
|
|
|
770
770
|
constructor() {
|
|
771
771
|
super({
|
|
772
772
|
id: toggleLightDarkThemesCommandId,
|
|
773
|
-
title: ( localize2(
|
|
773
|
+
title: ( localize2(14750, "Toggle between Light/Dark Themes")),
|
|
774
774
|
category: Categories.Preferences,
|
|
775
775
|
f1: true
|
|
776
776
|
});
|
|
@@ -782,12 +782,12 @@ registerAction2(class extends Action2 {
|
|
|
782
782
|
const preferencesService = accessor.get(IPreferencesService);
|
|
783
783
|
if (configurationService.getValue(ThemeSettings.DETECT_COLOR_SCHEME)) {
|
|
784
784
|
const message = ( localize(
|
|
785
|
-
|
|
785
|
+
14751,
|
|
786
786
|
"Cannot toggle between light and dark themes when `{0}` is enabled in settings.",
|
|
787
787
|
ThemeSettings.DETECT_COLOR_SCHEME
|
|
788
788
|
));
|
|
789
789
|
notificationService.prompt(Severity.Info, message, [{
|
|
790
|
-
label: ( localize(
|
|
790
|
+
label: ( localize(14752, "Open Settings")),
|
|
791
791
|
run: () => {
|
|
792
792
|
return preferencesService.openUserSettings({
|
|
793
793
|
query: ThemeSettings.DETECT_COLOR_SCHEME
|
|
@@ -826,7 +826,7 @@ registerAction2(class extends Action2 {
|
|
|
826
826
|
constructor() {
|
|
827
827
|
super({
|
|
828
828
|
id: browseColorThemesInMarketplaceCommandId,
|
|
829
|
-
title: ( localize2(
|
|
829
|
+
title: ( localize2(14753, "Browse Color Themes in Marketplace")),
|
|
830
830
|
category: Categories.Preferences,
|
|
831
831
|
f1: true
|
|
832
832
|
});
|
|
@@ -867,13 +867,13 @@ registerAction2(class extends Action2 {
|
|
|
867
867
|
});
|
|
868
868
|
const ThemesSubMenu = ( new MenuId("ThemesSubMenu"));
|
|
869
869
|
MenuRegistry.appendMenuItem(MenuId.GlobalActivity, {
|
|
870
|
-
title: ( localize(
|
|
870
|
+
title: ( localize(14754, "Themes")),
|
|
871
871
|
submenu: ThemesSubMenu,
|
|
872
872
|
group: "2_configuration",
|
|
873
873
|
order: 7
|
|
874
874
|
});
|
|
875
875
|
MenuRegistry.appendMenuItem(MenuId.MenubarPreferencesMenu, {
|
|
876
|
-
title: ( localize(
|
|
876
|
+
title: ( localize(14755, "&&Themes")),
|
|
877
877
|
submenu: ThemesSubMenu,
|
|
878
878
|
group: "2_configuration",
|
|
879
879
|
order: 7
|
|
@@ -881,21 +881,21 @@ MenuRegistry.appendMenuItem(MenuId.MenubarPreferencesMenu, {
|
|
|
881
881
|
MenuRegistry.appendMenuItem(ThemesSubMenu, {
|
|
882
882
|
command: {
|
|
883
883
|
id: SelectColorThemeCommandId,
|
|
884
|
-
title: ( localize(
|
|
884
|
+
title: ( localize(14719, "Color Theme"))
|
|
885
885
|
},
|
|
886
886
|
order: 1
|
|
887
887
|
});
|
|
888
888
|
MenuRegistry.appendMenuItem(ThemesSubMenu, {
|
|
889
889
|
command: {
|
|
890
890
|
id: SelectFileIconThemeCommandId,
|
|
891
|
-
title: ( localize(
|
|
891
|
+
title: ( localize(14756, "File Icon Theme"))
|
|
892
892
|
},
|
|
893
893
|
order: 2
|
|
894
894
|
});
|
|
895
895
|
MenuRegistry.appendMenuItem(ThemesSubMenu, {
|
|
896
896
|
command: {
|
|
897
897
|
id: SelectProductIconThemeCommandId,
|
|
898
|
-
title: ( localize(
|
|
898
|
+
title: ( localize(14757, "Product Icon Theme"))
|
|
899
899
|
},
|
|
900
900
|
order: 3
|
|
901
901
|
});
|
|
@@ -149,12 +149,12 @@ class FileIconThemeLoader {
|
|
|
149
149
|
const contentValue = parse(content, errors);
|
|
150
150
|
if (errors.length > 0) {
|
|
151
151
|
return Promise.reject(( new Error(( localize(
|
|
152
|
-
|
|
152
|
+
16411,
|
|
153
153
|
"Problems parsing file icons file: {0}",
|
|
154
154
|
( errors.map(e => getParseErrorMessage(e.error))).join(", ")
|
|
155
155
|
)))));
|
|
156
156
|
} else if (getNodeType(contentValue) !== "object") {
|
|
157
|
-
return Promise.reject(( new Error(( localize(
|
|
157
|
+
return Promise.reject(( new Error(( localize(16412, "Invalid format for file icons theme file: Object expected.")))));
|
|
158
158
|
}
|
|
159
159
|
return Promise.resolve(contentValue);
|
|
160
160
|
});
|
|
@@ -43,7 +43,7 @@ class ProductIconThemeData {
|
|
|
43
43
|
this.isLoaded = true;
|
|
44
44
|
if (warnings.length) {
|
|
45
45
|
logService.error(( localize(
|
|
46
|
-
|
|
46
|
+
16413,
|
|
47
47
|
"Problems processing product icons definitions in {0}:\n{1}",
|
|
48
48
|
(location.toString()),
|
|
49
49
|
warnings.join("\n")
|
|
@@ -76,7 +76,7 @@ class ProductIconThemeData {
|
|
|
76
76
|
static get defaultTheme() {
|
|
77
77
|
let themeData = ProductIconThemeData._defaultProductIconTheme;
|
|
78
78
|
if (!themeData) {
|
|
79
|
-
themeData = ProductIconThemeData._defaultProductIconTheme = ( new ProductIconThemeData(DEFAULT_PRODUCT_ICON_THEME_ID, ( localize(
|
|
79
|
+
themeData = ProductIconThemeData._defaultProductIconTheme = ( new ProductIconThemeData(DEFAULT_PRODUCT_ICON_THEME_ID, ( localize(16414, "Default")), ThemeSettingDefaults.PRODUCT_ICON_THEME));
|
|
80
80
|
themeData.isLoaded = true;
|
|
81
81
|
themeData.extensionData = undefined;
|
|
82
82
|
themeData.watch = false;
|
|
@@ -187,15 +187,15 @@ function _loadProductIconThemeDocument(fileService, location, warnings) {
|
|
|
187
187
|
const contentValue = parse(content, parseErrors);
|
|
188
188
|
if (parseErrors.length > 0) {
|
|
189
189
|
return Promise.reject(( new Error(( localize(
|
|
190
|
-
|
|
190
|
+
16415,
|
|
191
191
|
"Problems parsing product icons file: {0}",
|
|
192
192
|
( parseErrors.map(e => getParseErrorMessage(e.error))).join(", ")
|
|
193
193
|
)))));
|
|
194
194
|
} else if (getNodeType(contentValue) !== "object") {
|
|
195
|
-
return Promise.reject(( new Error(( localize(
|
|
195
|
+
return Promise.reject(( new Error(( localize(16416, "Invalid format for product icons theme file: Object expected.")))));
|
|
196
196
|
} else if (!contentValue.iconDefinitions || !Array.isArray(contentValue.fonts) || !contentValue.fonts.length) {
|
|
197
197
|
return Promise.reject(( new Error(( localize(
|
|
198
|
-
|
|
198
|
+
16417,
|
|
199
199
|
"Invalid format for product icons theme file: Must contain iconDefinitions and fonts."
|
|
200
200
|
)))));
|
|
201
201
|
}
|
|
@@ -208,13 +208,13 @@ function _loadProductIconThemeDocument(fileService, location, warnings) {
|
|
|
208
208
|
if (isString(font.weight) && font.weight.match(fontWeightRegex)) {
|
|
209
209
|
fontWeight = font.weight;
|
|
210
210
|
} else {
|
|
211
|
-
warnings.push(( localize(
|
|
211
|
+
warnings.push(( localize(16418, "Invalid font weight in font '{0}'. Ignoring setting.", font.id)));
|
|
212
212
|
}
|
|
213
213
|
let fontStyle = undefined;
|
|
214
214
|
if (isString(font.style) && font.style.match(fontStyleRegex)) {
|
|
215
215
|
fontStyle = font.style;
|
|
216
216
|
} else {
|
|
217
|
-
warnings.push(( localize(
|
|
217
|
+
warnings.push(( localize(16419, "Invalid font style in font '{0}'. Ignoring setting.", font.id)));
|
|
218
218
|
}
|
|
219
219
|
const sanitizedSrc = [];
|
|
220
220
|
if (Array.isArray(font.src)) {
|
|
@@ -226,7 +226,7 @@ function _loadProductIconThemeDocument(fileService, location, warnings) {
|
|
|
226
226
|
format: s.format
|
|
227
227
|
});
|
|
228
228
|
} else {
|
|
229
|
-
warnings.push(( localize(
|
|
229
|
+
warnings.push(( localize(16420, "Invalid font source in font '{0}'. Ignoring source.", font.id)));
|
|
230
230
|
}
|
|
231
231
|
}
|
|
232
232
|
}
|
|
@@ -238,14 +238,14 @@ function _loadProductIconThemeDocument(fileService, location, warnings) {
|
|
|
238
238
|
});
|
|
239
239
|
} else {
|
|
240
240
|
warnings.push(( localize(
|
|
241
|
-
|
|
241
|
+
16421,
|
|
242
242
|
"No valid font source in font '{0}'. Ignoring font definition.",
|
|
243
243
|
font.id
|
|
244
244
|
)));
|
|
245
245
|
}
|
|
246
246
|
} else {
|
|
247
247
|
warnings.push(( localize(
|
|
248
|
-
|
|
248
|
+
16422,
|
|
249
249
|
"Missing or invalid font id '{0}'. Skipping font definition.",
|
|
250
250
|
font.id
|
|
251
251
|
)));
|
|
@@ -268,10 +268,10 @@ function _loadProductIconThemeDocument(fileService, location, warnings) {
|
|
|
268
268
|
font
|
|
269
269
|
});
|
|
270
270
|
} else {
|
|
271
|
-
warnings.push(( localize(
|
|
271
|
+
warnings.push(( localize(16423, "Skipping icon definition '{0}'. Unknown font.", iconId)));
|
|
272
272
|
}
|
|
273
273
|
} else {
|
|
274
|
-
warnings.push(( localize(
|
|
274
|
+
warnings.push(( localize(16424, "Skipping icon definition '{0}': Needs to be defined", iconId)));
|
|
275
275
|
}
|
|
276
276
|
}
|
|
277
277
|
return {
|
|
@@ -18,7 +18,7 @@ import { IHostColorSchemeService } from "@codingame/monaco-vscode-api/vscode/vs/
|
|
|
18
18
|
import { IUserDataInitializationService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/userData/browser/userDataInit.service";
|
|
19
19
|
import { ILanguageService } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/languages/language.service";
|
|
20
20
|
import { INotificationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/notification/common/notification.service";
|
|
21
|
-
import {
|
|
21
|
+
import { IHostService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/host/browser/host.service";
|
|
22
22
|
export declare class WorkbenchThemeService extends Disposable implements IWorkbenchThemeService {
|
|
23
23
|
private readonly storageService;
|
|
24
24
|
private readonly configurationService;
|
|
@@ -30,7 +30,7 @@ export declare class WorkbenchThemeService extends Disposable implements IWorkbe
|
|
|
30
30
|
private readonly userDataInitializationService;
|
|
31
31
|
private readonly languageService;
|
|
32
32
|
private readonly notificationService;
|
|
33
|
-
private readonly
|
|
33
|
+
private readonly hostService;
|
|
34
34
|
readonly _serviceBrand: undefined;
|
|
35
35
|
private readonly container;
|
|
36
36
|
private settings;
|
|
@@ -51,7 +51,7 @@ export declare class WorkbenchThemeService extends Disposable implements IWorkbe
|
|
|
51
51
|
private readonly onProductIconThemeChange;
|
|
52
52
|
private readonly productIconThemeWatcher;
|
|
53
53
|
private readonly productIconThemeSequencer;
|
|
54
|
-
constructor(extensionService: IExtensionService, storageService: IStorageService, configurationService: IConfigurationService, telemetryService: ITelemetryService, environmentService: IBrowserWorkbenchEnvironmentService, fileService: IFileService, extensionResourceLoaderService: IExtensionResourceLoaderService, layoutService: IWorkbenchLayoutService, logService: ILogService, hostColorService: IHostColorSchemeService, userDataInitializationService: IUserDataInitializationService, languageService: ILanguageService, notificationService: INotificationService,
|
|
54
|
+
constructor(extensionService: IExtensionService, storageService: IStorageService, configurationService: IConfigurationService, telemetryService: ITelemetryService, environmentService: IBrowserWorkbenchEnvironmentService, fileService: IFileService, extensionResourceLoaderService: IExtensionResourceLoaderService, layoutService: IWorkbenchLayoutService, logService: ILogService, hostColorService: IHostColorSchemeService, userDataInitializationService: IUserDataInitializationService, languageService: ILanguageService, notificationService: INotificationService, hostService: IHostService);
|
|
55
55
|
private initialize;
|
|
56
56
|
private static readonly NEW_THEME_NOTIFICATION_KEY;
|
|
57
57
|
private showNewDefaultThemeNotification;
|
|
@@ -60,11 +60,6 @@ export declare class WorkbenchThemeService extends Disposable implements IWorkbe
|
|
|
60
60
|
* writing back the migrated value so settings sync distributes the correct ID.
|
|
61
61
|
*/
|
|
62
62
|
private migrateColorThemeSettings;
|
|
63
|
-
/**
|
|
64
|
-
* For new users who haven't explicitly configured `window.autoDetectColorScheme`,
|
|
65
|
-
* persist `true` so that auto-detect becomes the default going forward.
|
|
66
|
-
*/
|
|
67
|
-
private migrateAutoDetectColorScheme;
|
|
68
63
|
private installConfigurationListener;
|
|
69
64
|
private installRegistryListeners;
|
|
70
65
|
private installPreferredSchemeListener;
|