private static void AnalyzeWhitespacesInTrivia(SyntaxTrivia trivia, ref AnalysisResult result) { // trivia already has text. getting text should be noop Debug.Assert(trivia.Kind() == SyntaxKind.WhitespaceTrivia); Debug.Assert(trivia.Width() == trivia.FullWidth()); int space = 0; int tab = 0; int unknownWhitespace = 0; var text = trivia.ToString(); for (int i = 0; i < trivia.Width(); i++) { if (text[i] == ' ') { space++; } else if (text[i] == '\t') { if (result.Space > 0) { result.HasTabAfterSpace = true; } tab++; } else { unknownWhitespace++; } } // set result result.Space += space; result.Tab += tab; result.HasUnknownWhitespace |= unknownWhitespace > 0; result.TreatAsElastic |= trivia.IsElastic(); }
private bool OnTouchedNoisyCharacter(SyntaxTrivia trivia) { if (trivia.IsElastic() || trivia.Kind() == SyntaxKind.WhitespaceTrivia || trivia.Kind() == SyntaxKind.EndOfLineTrivia) { return false; } _touchedNoisyCharacterOnCurrentLine = true; _hasTrailingSpace = false; return false; }
private bool OnElastic(SyntaxTrivia trivia) { // if it contains elastic trivia, always format return trivia.IsElastic(); }
private bool OnElastic(SyntaxTrivia trivia) { // if it contains elastic trivia, always format return(trivia.IsElastic()); }
private static void AnalyzeLineBreak(SyntaxTrivia trivia, ref AnalysisResult result) { // if there was any space before line break, then we have trailing spaces if (result.Space > 0 || result.Tab > 0) { result.HasTrailingSpace = true; } // reset space and tab information result.LineBreaks++; result.HasTabAfterSpace = false; result.Space = 0; result.Tab = 0; result.TreatAsElastic |= trivia.IsElastic(); }
private static bool IsDocCommentOrElastic(SyntaxTrivia t) { return(t.IsDocComment() || t.IsElastic()); }
private static bool IsDocCommentOrElastic(SyntaxTrivia t) { return t.IsDocComment() || t.IsElastic(); }
private static bool IsDocCommentOrElastic(SyntaxTrivia t) => t.IsDocComment() || t.IsElastic();