TooltipRenderer (@NotNull Collection<? extends RangeHighlighter> highlighters) { ApplicationManager.getApplication().assertIsNonDispatchThread(); LineTooltipRenderer bigRenderer = null; //do not show the same tooltip twice Set<String> tooltips = null; for (RangeHighlighter highlighter : highlighters) { Object tooltipObject = highlighter.getErrorStripeTooltip(); if (tooltipObject == null) continue; //noinspection HardCodedStringLiteral String text = tooltipObject instanceof HighlightInfo ? ((HighlightInfo)tooltipObject).getToolTip() : tooltipObject.toString(); if (text == null) continue; if (tooltips == null) { tooltips = new HashSet<>(); } if (tooltips.add(text)) { if (bigRenderer == null) { bigRenderer = new LineTooltipRenderer(text, new Object[]{highlighters}); } else { bigRenderer.addBelow(text); } } } return bigRenderer; }