private static bool HasStatementsBefore()

in Backend/Core/ForTea.Core/Psi/Formatting/T4CSharpCustomIndentHandler.cs [130:159]


    private static bool HasStatementsBefore(
      [NotNull] ISecondaryRangeTranslator rangeTranslator,
      [NotNull] ITreeNode node
    ) => node.GetFirstTokenIn()
      .PrevTokens()
      .Where(token => !token.IsWhitespaceToken())
      .Select(token => token.GetTreeTextRange())
      .Select(range => rangeTranslator.GeneratedToOriginal(range))
      .Where(originalRange => originalRange.IsValid())
      .SelectNotNull(rangeTranslator.OriginalFile.FindNodeAt)
      .Any(it => it.GetParentOfType<IT4StatementBlock>() != null);

    [Pure]
    private static bool HasLineBreak([NotNull] IT4CodeBlock codeBlock, int nodeStart, TreeOffset blockStart) =>
      codeBlock.GetText().Substring(0, nodeStart - blockStart.Offset).IndexOf('\n') >= 0;

    [Pure, CanBeNull]
    private static string GetIndentFromPreviousStatement(
      [NotNull] ITreeNode node,
      [NotNull] RangeTranslatorWithGeneratedRangeMap rangeTranslator
    )
    {
      for (var currentNode = node.PrevSibling; currentNode != null; currentNode = currentNode.PrevSibling)
      {
        string indent = TryGetIndentFromStatement(rangeTranslator, currentNode);
        if (indent != null) return indent;
      }

      return null;
    }