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); }
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); }
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; }