private List<GutterArea> createClassicLayout() {
    List<GutterArea> lineNumbersAreas = List.of(
      areaGap()
        .as(EditorMouseEventArea.LINE_NUMBERS_AREA)
        .showIf(this::isLineNumbersShown),
      area(LINE_NUMBERS_AREA, () -> myEditorGutter.myLineNumberAreaWidth)
        .showIf(this::isLineNumbersShown),
      area(ADDITIONAL_LINE_NUMBERS_AREA, () -> myEditorGutter.myAdditionalLineNumberAreaWidth)
        .showIf(this::isLineNumbersShown),
      areaGap() // Note: ADDITIONAL_LINE_NUMBERS_AREA rendering depends on this gap
        .as(EditorMouseEventArea.LINE_MARKERS_AREA)
        .showIf(this::isLineNumbersShown)
    );

    List<GutterArea> iconRelatedAreas = List.of(
      area(ANNOTATIONS_AREA, () -> myEditorGutter.myTextAnnotationGuttersSize)
        .as(EditorMouseEventArea.ANNOTATIONS_AREA)
        .showIf(() -> myEditorGutter.myTextAnnotationGuttersSize != 0),
      areaGap()
        .as(EditorMouseEventArea.ANNOTATIONS_AREA)
        .showIf(() -> myEditorGutter.isShowGapAfterAnnotations()),
      area(ANNOTATIONS_AREA, () -> myEditorGutter.myTextAnnotationExtraSize)
        .as(EditorMouseEventArea.LINE_MARKERS_AREA) // Distraction-free mode is extended using this area, see IDEA-320495
        .showIf(() -> myEditorGutter.myTextAnnotationExtraSize != 0),
      area(LEFT_FREE_PAINTERS_AREA, myEditorGutter::getLeftFreePaintersAreaWidth).showIf(myEditorGutter::isLineMarkersShown),
      area(ICONS_AREA, myEditorGutter::getIconsAreaWidth).showIf(myEditorGutter::isLineMarkersShown),
      area(GAP_AFTER_ICONS_AREA, myEditorGutter::getGapAfterIconsArea).showIf(myEditorGutter::isLineMarkersShown)
    );

    List<GutterArea> rightEdgeAreas = List.of(
      area(RIGHT_FREE_PAINTERS_AREA, myEditorGutter::getRightFreePaintersAreaWidth).showIf(myEditorGutter::isLineMarkersShown),
      area(FOLDING_AREA, myEditorGutter::getFoldingAreaWidth)
    );

    List<GutterArea> layout;

    if (isLineNumbersAfterIcons()) {
      layout = new ArrayList<>(iconRelatedAreas);
      layout.addAll(lineNumbersAreas);
      layout.addAll(rightEdgeAreas);
    } else {
      layout = new ArrayList<>(lineNumbersAreas);
      layout.addAll(iconRelatedAreas);
      layout.addAll(rightEdgeAreas);
    }

    return layout;
  }
private List<GutterArea> createClassicLayout()