diff --git a/src/vs/platform/theme/common/tokenClassificationRegistry.ts b/src/vs/platform/theme/common/tokenClassificationRegistry.ts index fe51dc95910540f29c74a4a29adf01037712618e..15757ecaa08de9241cf08c1f4bd23d774d8b7cdc 100644 --- a/src/vs/platform/theme/common/tokenClassificationRegistry.ts +++ b/src/vs/platform/theme/common/tokenClassificationRegistry.ts @@ -402,21 +402,21 @@ function registerDefaultClassifications(): void { registerTokenType('namespace', nls.localize('namespace', "Style for namespaces."), [['entity.name.namespace']]); registerTokenType('type', nls.localize('type', "Style for types."), [['entity.name.type'], ['support.type'], ['support.class']]); - registerTokenType('struct', nls.localize('struct', "Style for structs."), [['storage.type.struct']], 'type'); - registerTokenType('class', nls.localize('class', "Style for classes."), [['entity.name.type.class']], 'type'); - registerTokenType('interface', nls.localize('interface', "Style for interfaces."), [['entity.name.type.interface']], 'type'); - registerTokenType('enum', nls.localize('enum', "Style for enums."), [['entity.name.type.enum']], 'type'); - registerTokenType('typeParameter', nls.localize('typeParameter', "Style for type parameters."), [['entity.name.type', 'meta.type.parameters']], 'type'); + registerTokenType('struct', nls.localize('struct', "Style for structs."), [['storage.type.struct']]); + registerTokenType('class', nls.localize('class', "Style for classes."), [['entity.name.type.class']]); + registerTokenType('interface', nls.localize('interface', "Style for interfaces."), [['entity.name.type.interface']]); + registerTokenType('enum', nls.localize('enum', "Style for enums."), [['entity.name.type.enum']]); + registerTokenType('typeParameter', nls.localize('typeParameter', "Style for type parameters."), [['entity.name.type', 'meta.type.parameters']]); registerTokenType('function', nls.localize('function', "Style for functions"), [['entity.name.function'], ['support.function']]); registerTokenType('member', nls.localize('member', "Style for member"), [['entity.name.function.member'], ['support.function']]); - registerTokenType('macro', nls.localize('macro', "Style for macros."), [['entity.name.other.preprocessor.macro']], 'function'); + registerTokenType('macro', nls.localize('macro', "Style for macros."), [['entity.name.other.preprocessor.macro']]); registerTokenType('variable', nls.localize('variable', "Style for variables."), [['variable.other.readwrite'], ['entity.name.variable']]); - registerTokenType('parameter', nls.localize('parameter', "Style for parameters."), [['variable.parameter']], 'variable'); - registerTokenType('property', nls.localize('property', "Style for properties."), [['variable.other.property']], 'variable'); - registerTokenType('enumMember', nls.localize('enumMember', "Style for enum members."), [['variable.other.enummember']], 'variable'); - registerTokenType('event', nls.localize('event', "Style for events."), [['variable.other.event']], 'variable'); + registerTokenType('parameter', nls.localize('parameter', "Style for parameters."), [['variable.parameter']]); + registerTokenType('property', nls.localize('property', "Style for properties."), [['variable.other.property']]); + registerTokenType('enumMember', nls.localize('enumMember', "Style for enum members."), [['variable.other.enummember']]); + registerTokenType('event', nls.localize('event', "Style for events."), [['variable.other.event']]); registerTokenType('label', nls.localize('labels', "Style for labels. "), undefined); diff --git a/src/vs/workbench/services/themes/test/electron-browser/tokenStyleResolving.test.ts b/src/vs/workbench/services/themes/test/electron-browser/tokenStyleResolving.test.ts index cef06080a4ab9733e98612e50df022a1ed33019c..8f5da0882882e3d1f37a1e6db60204cb63d37dcb 100644 --- a/src/vs/workbench/services/themes/test/electron-browser/tokenStyleResolving.test.ts +++ b/src/vs/workbench/services/themes/test/electron-browser/tokenStyleResolving.test.ts @@ -316,23 +316,25 @@ suite('Themes - TokenStyleResolving', () => { test('super type', async () => { getTokenClassificationRegistry().registerTokenType('myTestInterface', 'A type just for testing', 'interface'); + getTokenClassificationRegistry().registerTokenType('myTestSubInterface', 'A type just for testing', 'myTestInterface'); + try { const themeData = ColorThemeData.createLoadedEmptyTheme('test', 'test'); themeData.setCustomColors({ 'editor.foreground': '#000000' }); themeData.setCustomTokenStyleRules({ - 'type': '#ff0000', - 'interface': { fontStyle: 'italic' }, - 'type.static': { fontStyle: 'bold' } + 'interface': '#ff0000', + 'myTestInterface': { fontStyle: 'italic' }, + 'interface.static': { fontStyle: 'bold' } }); - assertTokenStyles(themeData, { 'myTestInterface': ts('#ff0000', { italic: true }) }); - assertTokenStyles(themeData, { 'myTestInterface.static': ts('#ff0000', { italic: true, bold: true }) }); + assertTokenStyles(themeData, { 'myTestSubInterface': ts('#ff0000', { italic: true }) }); + assertTokenStyles(themeData, { 'myTestSubInterface.static': ts('#ff0000', { italic: true, bold: true }) }); themeData.setCustomTokenStyleRules({ - 'type': '#ff0000', - 'interface': { foreground: '#ff00ff', fontStyle: 'italic' } + 'interface': '#ff0000', + 'myTestInterface': { foreground: '#ff00ff', fontStyle: 'italic' } }); - assertTokenStyles(themeData, { 'myTestInterface': ts('#ff00ff', { italic: true }) }); + assertTokenStyles(themeData, { 'myTestSubInterface': ts('#ff00ff', { italic: true }) }); } finally { getTokenClassificationRegistry().deregisterTokenType('myTestInterface'); }