@Override
  public TextAttributes getAttributes(TextAttributesKey key, boolean useDefaults) {
    if (key != null) {
      if (TextAttributesKey.isTemp(key)) {
        return myAttributesTempMap.get(key.getExternalName());
      }

      TextAttributes attributes = getDirectlyDefinedAttributes(key);
      if (attributes != null && attributes != INHERITED_ATTRS_MARKER) {
        return attributes;
      }

      TextAttributesKey fallbackKey = key.getFallbackAttributeKey();
      if (fallbackKey != null) {
        attributes = getFallbackAttributes(fallbackKey);
        if (attributes != null) {
          return attributes;
        }
      }
    }
    return parentScheme.getAttributes(key, useDefaults);
  }
@Override
  public TextAttributes getAttributes(TextAttributesKey key, boolean useDefaults)