private Int2ObjectMap<List<GutterMark>> buildGutterRenderersCache() {
    myLineToGutterRenderersCacheForLogicalLines = logicalLinesMatchVisualOnes();
    Int2ObjectMap<List<GutterMark>> lineToGutterRenderers = new Int2ObjectOpenHashMap<>();
    processRangeHighlighters(0, myEditor.getDocument().getTextLength(), highlighter -> {
      GutterMark renderer = highlighter.getGutterIconRenderer();
      if (!shouldBeShown(renderer)) {
        return;
      }
      if (!isHighlighterVisible(highlighter)) {
        return;
      }
      int line = myEditor.offsetToVisualLine(highlighter.getStartOffset());
      List<GutterMark> renderers = lineToGutterRenderers.get(line);
      if (renderers == null) {
        renderers = new SmartList<>();
        lineToGutterRenderers.put(line, renderers);
      }

      renderers.add(renderer);
    });

    FoldRegion[] topLevelRegions = myEditor.getFoldingModel().fetchTopLevel();
    if (topLevelRegions != null) {
      for (FoldRegion region : topLevelRegions) {
        if (region instanceof CustomFoldRegion) {
          GutterIconRenderer renderer = ((CustomFoldRegion)region).getGutterIconRenderer();
          int line = myEditor.offsetToVisualLine(region.getStartOffset());
          if (shouldBeShown(renderer)) {
            lineToGutterRenderers.put(line, List.of(renderer));
          }
          else {
            lineToGutterRenderers.remove(line);
          }
        }
      }
    }

    List<GutterMarkPreprocessor> gutterMarkPreprocessors = GutterMarkPreprocessor.EP_NAME.getExtensionList();
    for (Int2ObjectMap.Entry<List<GutterMark>> entry : Int2ObjectMaps.fastIterable(lineToGutterRenderers)) {
      List<GutterMark> newValue = entry.getValue();
      for (GutterMarkPreprocessor preprocessor : gutterMarkPreprocessors) {
        newValue = preprocessor.processMarkers(newValue);
      }
      // don't allow more than 4 icons per line
      entry.setValue(ContainerUtil.getFirstItems(newValue, 4));
    }
    return lineToGutterRenderers;
  }
private Int2ObjectMap<List<GutterMark>> buildGutterRenderersCache()