boolean (Object other, @Nullable Predicate<? super ColorKey> colorKeyFilter) { if (!(other instanceof AbstractColorsScheme otherScheme)) { return false; } // parent is used only for default schemes (e.g., Darcula bundled in all IDEs (opposite to IDE-specific, like Cobalt)) if (getBaseDefaultScheme(this) != getBaseDefaultScheme(otherScheme)) { return false; } for (String propertyName : metaInfo.stringPropertyNames()) { if (propertyName.equals(META_INFO_CREATION_TIME) || propertyName.equals(META_INFO_MODIFIED_TIME) || propertyName.equals(META_INFO_IDE) || propertyName.equals(META_INFO_IDE_VERSION) || propertyName.equals(META_INFO_ORIGINAL) ) { continue; } if (!Objects.equals(metaInfo.getProperty(propertyName), otherScheme.metaInfo.getProperty(propertyName))) { return false; } } return areDelegatingOrEqual(fontPreferences, otherScheme.getFontPreferences()) && areDelegatingOrEqual(consoleFontPreferences, otherScheme.getConsoleFontPreferences()) && attributesEqual(otherScheme) && colorsEqual(otherScheme, colorKeyFilter); }