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();
 }
Example #4
0
 private bool OnElastic(SyntaxTrivia trivia)
 {
     // if it contains elastic trivia, always format
     return(trivia.IsElastic());
 }
            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 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();