public static SyntaxTriviaList RemoveConsecutiveEndLines(this SyntaxTriviaList trivia)
        {
            var result = SyntaxFactory.TriviaList();

            var list = trivia.ToList();

            if (list.Count > 1)
            {
                for (int i = 0; i < list.Count; i++)
                {
                    if (i < list.Count - 1 && list[i].IsKind(SyntaxKind.EndOfLineTrivia) && list[i + 1].IsKind(SyntaxKind.EndOfLineTrivia))
                    {
                        continue;
                    }

                    result = result.Add(list[i]);
                }
            }
            else
            {
                result = result.AddRange(list);
            }

            return(result);
        }
        public static bool HasVisibleEndOfLineTrivia(this SyntaxTriviaList trivia)
        {
            var list = trivia.ToList();

            if (list.Count > 1)
            {
                for (int i = 0; i < list.Count - 1; i++)
                {
                    if (list[i].IsKind(SyntaxKind.SingleLineCommentTrivia) || list[i].IsKind(SyntaxKind.MultiLineCommentTrivia))
                    {
                        i++;
                        continue;
                    }
                    if (list[i].IsKind(SyntaxKind.EndOfLineTrivia))
                    {
                        return(true);
                    }
                }
            }
            else if (list.Any(x => x.IsKind(SyntaxKind.EndOfLineTrivia)))
            {
                return(true);
            }

            return(false);
        }
            protected SyntaxTriviaList CleanUpList(SyntaxTriviaList syntaxTrivias, int exactNumberOfBlanks)
            {
                var lineBreaksAtBeginning = syntaxTrivias.TakeWhile(t => t.IsKind(SyntaxKind.EndOfLineTrivia)).Count();

                if (lineBreaksAtBeginning > exactNumberOfBlanks)
                {
                    syntaxTrivias = syntaxTrivias.Skip(lineBreaksAtBeginning - exactNumberOfBlanks)
                                    .ToSyntaxTriviaList();
                }
                else if (lineBreaksAtBeginning < exactNumberOfBlanks)
                {
                    var newList = syntaxTrivias.ToList();
                    for (var i = lineBreaksAtBeginning; i < exactNumberOfBlanks; i++)
                    {
                        newList.Insert(0, _endOfLineTrivia);
                    }
                    syntaxTrivias = new SyntaxTriviaList().AddRange(newList);
                }

                return(syntaxTrivias);
            }