Example #1
0
            SyntaxTrivia ReplaceTrivia(SyntaxTrivia triv)
            {
                if (!triv.IsKind(SyntaxKind.WhitespaceTrivia))
                {
                    return(triv);
                }
                //return triv;
                var loc = triv.GetLocation();
                var ls  = loc.GetLineSpan();

                if (ls.StartLinePosition.Character != 0)
                {
                    return(triv);
                }

                var triviaString = triv.ToFullString();

                if (triviaString.Equals(_tabs) || triviaString.Equals(_spaces))
                {
                    return(triv.CopyAnnotationsTo(SyntaxFactory.Whitespace("")));
                }

                if (triviaString.StartsWith(_tabs))
                {
                    return(triv.CopyAnnotationsTo(SyntaxFactory.Whitespace(triviaString.Substring(_tabs.Length))));
                }

                if (triviaString.StartsWith(_spaces))
                {
                    return(triv.CopyAnnotationsTo(SyntaxFactory.Whitespace(triviaString.Substring(_spaces.Length))));
                }

                return(triv);
            }
Example #2
0
        private bool TryFormatMultiLineCommentTrivia(LineColumn lineColumn, SyntaxTrivia trivia, out SyntaxTrivia result)
        {
            if (trivia.Kind() == SyntaxKind.MultiLineCommentTrivia)
            {
                var indentation      = lineColumn.Column;
                var indentationDelta = indentation - GetExistingIndentation(trivia);
                if (indentationDelta != 0)
                {
                    var multiLineComment = trivia.ToFullString().ReindentStartOfXmlDocumentationComment(
                        false /* forceIndentation */,
                        indentation,
                        indentationDelta,
                        this.Options.GetOption(FormattingOptions2.UseTabs),
                        this.Options.GetOption(FormattingOptions2.TabSize),
                        this.Options.GetOption(FormattingOptions2.NewLine));

                    var multilineCommentTrivia = SyntaxFactory.ParseLeadingTrivia(multiLineComment);
                    Contract.ThrowIfFalse(multilineCommentTrivia.Count == 1);

                    // Preserve annotations on this comment as the formatter is only supposed to touch whitespace, and
                    // thus should make it appear as if the original comment trivia (with annotations) is still there in
                    // the resultant formatted tree.
                    var firstTrivia = multilineCommentTrivia.First();
                    result = trivia.CopyAnnotationsTo(firstTrivia);
                    return(true);
                }
            }

            result = default;
            return(false);
        }
Example #3
0
        public override SyntaxTrivia VisitTrivia(SyntaxTrivia trivia)
        {
            trivia = base.VisitTrivia(trivia);
            if (trivia.Kind() == SyntaxKind.EndOfLineTrivia && trivia.ToString() == "\r\n")
            {
                trivia = trivia.CopyAnnotationsTo(SyntaxFactory.EndOfLine("\n"));
            }

            return(trivia);
        }
            private SyntaxTrivia RenameInCommentTrivia(SyntaxTrivia trivia)
            {
                var originalString = trivia.ToString();
                string replacedString = RenameLocations.ReferenceProcessing.ReplaceMatchingSubStrings(originalString, _originalText, _replacementText);
                if (replacedString != originalString)
                {
                    var oldSpan = trivia.Span;
                    var newTrivia = SyntaxFactory.Comment(replacedString);
                    AddModifiedSpan(oldSpan, newTrivia.Span);
                    return trivia.CopyAnnotationsTo(_renameAnnotations.WithAdditionalAnnotations(newTrivia, new RenameTokenSimplificationAnnotation() { OriginalTextSpan = oldSpan }));
                }

                return trivia;
            }