From c67005fda28af33ec4e608466eb5e73cb1235787 Mon Sep 17 00:00:00 2001 From: Dmitry Avdeev Date: Wed, 26 Aug 2015 17:52:59 +0300 Subject: [PATCH] LanguageExtension.allForLanguageOrAny() --- .../com/intellij/lang/LanguageExtension.java | 21 ++++++++++--------- .../daemon/LineMarkerProviders.java | 19 ----------------- .../daemon/impl/LineMarkersPass.java | 2 +- 3 files changed, 12 insertions(+), 30 deletions(-) diff --git a/platform/core-api/src/com/intellij/lang/LanguageExtension.java b/platform/core-api/src/com/intellij/lang/LanguageExtension.java index 1ee631735259..992633d0246a 100644 --- a/platform/core-api/src/com/intellij/lang/LanguageExtension.java +++ b/platform/core-api/src/com/intellij/lang/LanguageExtension.java @@ -21,6 +21,7 @@ package com.intellij.lang; import com.intellij.openapi.util.Key; import com.intellij.openapi.util.KeyedExtensionCollector; +import com.intellij.util.containers.ContainerUtil; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -66,6 +67,9 @@ public class LanguageExtension extends KeyedExtensionCollector { return result; } + /** + * @see #allForLanguageOrAny(Language) + */ @NotNull public List allForLanguage(@NotNull Language l) { List list = forKey(l); @@ -75,19 +79,16 @@ public class LanguageExtension extends KeyedExtensionCollector { return allForLanguage(base); } } - //if (l != Language.ANY) { - // final List all = allForLanguage(Language.ANY); - // if (!all.isEmpty()) { - // if (list.isEmpty()) { - // return all; - // } - // list = new ArrayList(list); - // list.addAll(all); - // } - //} return list; } + @NotNull + public List allForLanguageOrAny(@NotNull Language l) { + List providers = allForLanguage(l); + if (l == Language.ANY) return providers; + return ContainerUtil.concat(providers, allForLanguage(Language.ANY)); + } + protected T getDefaultImplementation() { return myDefaultImplementation; } diff --git a/platform/lang-api/src/com/intellij/codeInsight/daemon/LineMarkerProviders.java b/platform/lang-api/src/com/intellij/codeInsight/daemon/LineMarkerProviders.java index 077ede80f1bc..c7b42f648333 100644 --- a/platform/lang-api/src/com/intellij/codeInsight/daemon/LineMarkerProviders.java +++ b/platform/lang-api/src/com/intellij/codeInsight/daemon/LineMarkerProviders.java @@ -16,13 +16,8 @@ package com.intellij.codeInsight.daemon; -import com.intellij.lang.Language; import com.intellij.lang.LanguageExtension; import org.jetbrains.annotations.NonNls; -import org.jetbrains.annotations.NotNull; - -import java.util.ArrayList; -import java.util.List; /** * @author yole @@ -35,18 +30,4 @@ public class LineMarkerProviders extends LanguageExtension { private LineMarkerProviders() { super(EP_NAME); } - - @NotNull - @Override - public List allForLanguage(@NotNull Language l) { - //TODO[kb] make this for all Language Extensions - List providers = super.allForLanguage(l); - if (l == Language.ANY) return providers; - List any = super.allForLanguage(Language.ANY); - if (providers.isEmpty()) return any; - if (any.isEmpty()) return providers; - ArrayList result = new ArrayList(providers); - result.addAll(any); - return result; - } } diff --git a/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/LineMarkersPass.java b/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/LineMarkersPass.java index e67c63bb7a50..06f78ca32b7c 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/LineMarkersPass.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/LineMarkersPass.java @@ -144,7 +144,7 @@ public class LineMarkersPass extends TextEditorHighlightingPass implements LineM } public static List getMarkerProviders(@NotNull Language language, @NotNull Project project) { - return DumbService.getInstance(project).filterByDumbAwareness(LineMarkerProviders.INSTANCE.allForLanguage(language)); + return DumbService.getInstance(project).filterByDumbAwareness(LineMarkerProviders.INSTANCE.allForLanguageOrAny(language)); } @Override