List<GutterArea> () { return List.of( area(ANNOTATIONS_AREA, () -> 4) .as(EditorMouseEventArea.ANNOTATIONS_AREA) .showIf(() -> myEditorGutter.myTextAnnotationGuttersSize == 0 && myEditorGutter.isLineMarkersShown()), areaGap() .as(EditorMouseEventArea.ANNOTATIONS_AREA) .showIf(() -> myEditorGutter.isShowGapAfterAnnotations() && myEditorGutter.isLineMarkersShown()), area(ANNOTATIONS_AREA, () -> myEditorGutter.myTextAnnotationGuttersSize) .as(EditorMouseEventArea.ANNOTATIONS_AREA) .showIf(() -> myEditorGutter.myTextAnnotationGuttersSize != 0), area(ANNOTATIONS_AREA, () -> myEditorGutter.myTextAnnotationExtraSize) .as(EditorMouseEventArea.LINE_MARKERS_AREA) .showIf(() -> myEditorGutter.myTextAnnotationExtraSize != 0), area(LINE_NUMBERS_AREA, () -> myEditorGutter.myLineNumberAreaWidth).showIf(this::isLineNumbersShown), areaGap(12).showIf(() -> myEditorGutter.isLineNumbersShown() && !myEditorGutter.isLineMarkersShown()), area(ADDITIONAL_LINE_NUMBERS_AREA, () -> myEditorGutter.myAdditionalLineNumberAreaWidth), area(ADDITIONAL_LINE_NUMBERS_AREA, () -> 4).showIf(() -> myEditorGutter.isLineNumbersShown() && myEditorGutter.isLineMarkersShown()), area(EXTRA_LEFT_FREE_PAINTERS_AREA, myEditorGutter::getExtraLeftFreePaintersAreaWidth) .showIf(() -> myEditorGutter.isLineMarkersShown()), areaGap(4) .as(EditorMouseEventArea.LINE_MARKERS_AREA) .showIf(() -> myEditorGutter.getExtraLeftFreePaintersAreaWidth() > 0 && myEditorGutter.isLineMarkersShown()), 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), area(RIGHT_FREE_PAINTERS_AREA, myEditorGutter::getRightFreePaintersAreaWidth).showIf(myEditorGutter::isLineMarkersShown), area(FOLDING_AREA, myEditorGutter::getFoldingAreaWidth), areaGap(3).showIf(() -> myEditorGutter.isLineMarkersShown()) ); }