private static void setupMissingColors(@NotNull EditorColorsScheme scheme) {
    Color background = scheme.getDefaultBackground();
    String defaultSchemeName = ColorUtil.isDark(background) ? "Darcula" : EditorColorsScheme.getDefaultSchemeName();
    EditorColorsScheme baseScheme = DefaultColorSchemesManager.getInstance().getScheme(defaultSchemeName);
    assert baseScheme != null : "Can not find default scheme '" + defaultSchemeName + "'!";
    for (TextAttributesKey attributesKey : ATTRIBUTES_TO_COPY) {
      copyAttributes(baseScheme, scheme, attributesKey);
    }
    for (ColorKey colorKey : COLORS_TO_COPY) {
      copyColor(baseScheme, scheme, colorKey);
    }
    for (String keyName : EXTERNAL_ATTRIBUTES) {
      TextAttributesKey key = TextAttributesKey.createTextAttributesKey(keyName);
      copyAttributes(baseScheme, scheme, key);
    }
    for (String keyName : EXTERNAL_COLORS) {
      ColorKey key = ColorKey.createColorKey(keyName);
      copyColor(baseScheme, scheme, key);
    }
    Color lightForeground = ColorUtil.mix(background, scheme.getDefaultForeground(), 0.5);
    scheme.setColor(EditorColors.WHITESPACES_COLOR, lightForeground);
    scheme.setColor(EditorColors.INDENT_GUIDE_COLOR, lightForeground);
    scheme.setColor(EditorColors.SOFT_WRAP_SIGN_COLOR, lightForeground);
    TextAttributes matchedBrace = new TextAttributes();
    matchedBrace.setEffectType(EffectType.BOXED);
    matchedBrace.setEffectColor(lightForeground);
    scheme.setAttributes(CodeInsightColors.MATCHED_BRACE_ATTRIBUTES, matchedBrace);
    TextAttributes unmatchedBrace = matchedBrace.clone();
    Color errorColor = ColorUtil.mix(background, Color.RED, 0.5);
    unmatchedBrace.setEffectColor(errorColor);
    scheme.setAttributes(CodeInsightColors.UNMATCHED_BRACE_ATTRIBUTES, unmatchedBrace);

    TextAttributes markedForRemoval = scheme.getAttributes(CodeInsightColors.DEPRECATED_ATTRIBUTES);
    if (markedForRemoval != null) {
      markedForRemoval = markedForRemoval.clone();
      if (markedForRemoval.getEffectColor() == null) markedForRemoval.setEffectType(EffectType.STRIKEOUT);
      markedForRemoval.setEffectColor(errorColor);
      scheme.setAttributes(CodeInsightColors.MARKED_FOR_REMOVAL_ATTRIBUTES, markedForRemoval);
    }

    TextAttributes visibilityModifier = new TextAttributes();
    scheme.setAttributes(JavaHighlightingColors.PUBLIC_REFERENCE_ATTRIBUTES, visibilityModifier);
    scheme.setAttributes(JavaHighlightingColors.PRIVATE_REFERENCE_ATTRIBUTES, visibilityModifier);
    scheme.setAttributes(JavaHighlightingColors.PACKAGE_PRIVATE_REFERENCE_ATTRIBUTES, visibilityModifier);
    scheme.setAttributes(JavaHighlightingColors.PROTECTED_REFERENCE_ATTRIBUTES, visibilityModifier);
  }
private static void setupMissingColors(@NotNull EditorColorsScheme scheme)