protected boolean isStartOfStatementWithOptionalBlock(@NotNull SemanticEditorPosition position) {
    return position.matchesRule(
      self -> {
        final SemanticEditorPosition before = self.before();
        return before.isAt(Whitespace)
               && before.isAtMultiline()
               && self.isAtAnyOf(ElseKeyword,
                                 IfKeyword,
                                 ForKeyword,
                                 TryKeyword,
                                 DoKeyword);
      });
  }
protected boolean isStartOfStatementWithOptionalBlock(@NotNull SemanticEditorPosition position)