From 2c6b0c44b680c87806ca78a218af092e87fca80c Mon Sep 17 00:00:00 2001 From: Dmitry Batkovich Date: Thu, 6 Sep 2018 14:31:05 +0300 Subject: [PATCH] fix custom severities order --- .../daemon/impl/SeverityRegistrar.java | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/platform/analysis-impl/src/com/intellij/codeInsight/daemon/impl/SeverityRegistrar.java b/platform/analysis-impl/src/com/intellij/codeInsight/daemon/impl/SeverityRegistrar.java index be8a38e44767..9d19f4ed25c4 100644 --- a/platform/analysis-impl/src/com/intellij/codeInsight/daemon/impl/SeverityRegistrar.java +++ b/platform/analysis-impl/src/com/intellij/codeInsight/daemon/impl/SeverityRegistrar.java @@ -151,7 +151,7 @@ public class SeverityRegistrar implements Comparator { } else { //enforce include all known - List list = getAllSeverities(); + List list = getSortedSeverities(orderMap); for (HighlightSeverity stdSeverity : knownSeverities) { if (!list.contains(stdSeverity)) { for (int oIdx = 0; oIdx < list.size(); oIdx++) { @@ -200,9 +200,14 @@ public class SeverityRegistrar implements Comparator { @NotNull public List getAllSeverities() { - return Arrays.stream(getOrderMap().keys()) + return getSortedSeverities(getOrderMap()); + } + + @NotNull + private List getSortedSeverities(OrderMap map) { + return Arrays.stream(map.keys()) .map(o -> (HighlightSeverity)o) - .sorted(this) + .sorted((o1, o2) -> compare(o1, o2, map)) .collect(Collectors.toList()); } @@ -264,7 +269,12 @@ public class SeverityRegistrar implements Comparator { @Override public int compare(@NotNull HighlightSeverity s1, @NotNull HighlightSeverity s2) { - OrderMap orderMap = getOrderMap(); + return compare(s1, s2, getOrderMap()); + } + + private int compare(@NotNull HighlightSeverity s1, + @NotNull HighlightSeverity s2, + @NotNull OrderMap orderMap) { int o1 = orderMap.getOrder(s1); int o2 = orderMap.getOrder(s2); return o1 - o2;