List<GutterArea> () { return 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), areaGap() .as(EditorMouseEventArea.LINE_MARKERS_AREA) .showIf(this::isLineNumbersShown), 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), area(RIGHT_FREE_PAINTERS_AREA, myEditorGutter::getRightFreePaintersAreaWidth).showIf(myEditorGutter::isLineMarkersShown), area(FOLDING_AREA, myEditorGutter::getFoldingAreaWidth) ); }