void (@NotNull Element attrElements, @NotNull TextAttributesKey key, @NotNull TextAttributes attributes) { EditorColorsScheme baseScheme = getBaseScheme(); if (attributes == INHERITED_ATTRS_MARKER) { TextAttributesKey baseKey = key.getFallbackAttributeKey(); // IDEA-162774 do not store if inheritance = on in the parent scheme TextAttributes parentAttributes = baseScheme instanceof AbstractColorsScheme ? ((AbstractColorsScheme)baseScheme).getDirectlyDefinedAttributes(key) : null; boolean parentOverwritingInheritance = parentAttributes != null && parentAttributes != INHERITED_ATTRS_MARKER; if (parentOverwritingInheritance) { attrElements.addContent(new Element(OPTION_ELEMENT) .setAttribute(NAME_ATTR, key.getExternalName()) .setAttribute(BASE_ATTRIBUTES_ATTR, baseKey != null ? baseKey.getExternalName() : "")); } return; } if (baseScheme != null) { // fallback attributes must be not used, otherwise derived scheme as copy will not have such key TextAttributes parentAttributes = baseScheme instanceof AbstractColorsScheme ? ((AbstractColorsScheme)baseScheme).getDirectlyDefinedAttributes(key) : baseScheme.getAttributes(key); if (attributes.equals(parentAttributes)) { return; } } Element valueElement = new Element(VALUE_ELEMENT); attributes.writeExternal(valueElement); attrElements.addContent(new Element(OPTION_ELEMENT).setAttribute(NAME_ATTR, key.getExternalName()).addContent(valueElement)); }