From b4e6ecac2e9f8aef1dcad2c2f0d501617727ae10 Mon Sep 17 00:00:00 2001 From: "Gregory.Shrago" Date: Tue, 19 Feb 2019 23:32:12 +0300 Subject: [PATCH] ability to load colors as well as text attributes --- .../editor/colors/impl/AbstractColorsScheme.java | 2 +- .../editor/colors/impl/EditorColorsManagerImpl.java | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/platform/editor-ui-ex/src/com/intellij/openapi/editor/colors/impl/AbstractColorsScheme.java b/platform/editor-ui-ex/src/com/intellij/openapi/editor/colors/impl/AbstractColorsScheme.java index d0ef5ecb6d16..b65335427bb3 100644 --- a/platform/editor-ui-ex/src/com/intellij/openapi/editor/colors/impl/AbstractColorsScheme.java +++ b/platform/editor-ui-ex/src/com/intellij/openapi/editor/colors/impl/AbstractColorsScheme.java @@ -412,7 +412,7 @@ public abstract class AbstractColorsScheme extends EditorFontCacheImpl implement } } - private void readColors(Element childNode) { + public void readColors(@NotNull Element childNode) { for (Element colorElement : childNode.getChildren(OPTION_ELEMENT)) { String keyName = colorElement.getAttributeValue(NAME_ATTR); Color valueColor = myValueReader.read(Color.class, colorElement); diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/colors/impl/EditorColorsManagerImpl.java b/platform/platform-impl/src/com/intellij/openapi/editor/colors/impl/EditorColorsManagerImpl.java index def4ee7858e3..70d1455ab4b5 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/colors/impl/EditorColorsManagerImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/colors/impl/EditorColorsManagerImpl.java @@ -38,9 +38,11 @@ import com.intellij.psi.PsiManager; import com.intellij.psi.impl.PsiModificationTrackerImpl; import com.intellij.util.ComponentTreeEventDispatcher; import com.intellij.util.JdomKt; +import com.intellij.util.ObjectUtils; import com.intellij.util.io.URLUtil; import com.intellij.util.ui.UIUtil; import com.intellij.util.xmlb.annotations.OptionTag; +import org.jdom.Element; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -314,7 +316,14 @@ public class EditorColorsManagerImpl extends EditorColorsManager implements Pers continue; } try { - ((AbstractColorsScheme)editorColorsScheme).readAttributes(JdomKt.loadElement(URLUtil.openStream(resource))); + Element root = JdomKt.loadElement(URLUtil.openStream(resource)); + Element attrs = ObjectUtils.notNull(root.getChild("attributes"), root); + Element colors = root.getChild("colors"); + AbstractColorsScheme scheme = (AbstractColorsScheme)editorColorsScheme; + scheme.readAttributes(attrs); + if (colors != null) { + scheme.readColors(colors); + } } catch (Exception e) { LOG.error(e);