test('rules are inherited 2', () => {
let actual = Theme.createFromParsedTheme([
new ParsedThemeRule('', -1, FontStyle.NotSet, 'F8F8F2', '272822'),
new ParsedThemeRule('var', -1, FontStyle.Bold, 'ff0000', null),
new ParsedThemeRule('var.identifier', -1, FontStyle.NotSet, '00ff00', null),
new ParsedThemeRule('constant', 4, FontStyle.Italic, '100000', null),
new ParsedThemeRule('constant.numeric', 5, FontStyle.NotSet, '200000', null),
new ParsedThemeRule('constant.numeric.hex', 6, FontStyle.Bold, null, null),
new ParsedThemeRule('constant.numeric.oct', 7, FontStyle.Bold | FontStyle.Italic | FontStyle.Underline, null, null),
new ParsedThemeRule('constant.numeric.dec', 8, FontStyle.None, '300000', null),
]);
let colorMap = new ColorMap();
const _A = colorMap.getId('F8F8F2');
const _B = colorMap.getId('272822');
const _C = colorMap.getId('100000');
const _D = colorMap.getId('200000');
const _E = colorMap.getId('300000');
const _F = colorMap.getId('ff0000');
const _G = colorMap.getId('00ff00');
assert.deepEqual(actual.getColorMap(), colorMap.getColorMap());
let root = new ExternalThemeTrieElement(new ThemeTrieElementRule(FontStyle.None, _A, _B), {
'var': new ExternalThemeTrieElement(new ThemeTrieElementRule(FontStyle.Bold, _F, _B), {
'identifier': new ExternalThemeTrieElement(new ThemeTrieElementRule(FontStyle.Bold, _G, _B))
}),
'constant': new ExternalThemeTrieElement(new ThemeTrieElementRule(FontStyle.Italic, _C, _B), {
'numeric': new ExternalThemeTrieElement(new ThemeTrieElementRule(FontStyle.Italic, _D, _B), {
'hex': new ExternalThemeTrieElement(new ThemeTrieElementRule(FontStyle.Bold, _D, _B)),
'oct': new ExternalThemeTrieElement(new ThemeTrieElementRule(FontStyle.Bold | FontStyle.Italic | FontStyle.Underline, _D, _B)),
'dec': new ExternalThemeTrieElement(new ThemeTrieElementRule(FontStyle.None, _E, _B)),
})
})
});
assert.deepEqual(actual.getThemeTrieElement(), root);
});
请发表评论