14 instantiations of SyntaxTrivia
Microsoft.CodeAnalysis (10)
Microsoft.CodeAnalysis.CSharp.Syntax.UnitTests (1)
Microsoft.CodeAnalysis.VisualBasic.CodeStyle (1)
Microsoft.CodeAnalysis.VisualBasic.Syntax.UnitTests (1)
Microsoft.CodeAnalysis.VisualBasic.Workspaces (1)
4697 references to SyntaxTrivia
GenerateDocumentationAndConfigFiles (190)
src\Compilers\Core\Portable\SourceGeneration\GeneratedCodeUtilities.cs (6)
49SyntaxTree tree, Func<SyntaxTrivia, bool> isComment, CancellationToken cancellationToken)
55internal static bool IsGeneratedCode(string? filePath, SyntaxNode root, Func<SyntaxTrivia, bool> isComment)
88private static bool BeginsWithAutoGeneratedComment(SyntaxNode root, Func<SyntaxTrivia, bool> isComment)
94foreach (var trivia in leadingTrivia)
118SyntaxTree tree, Func<SyntaxTrivia, bool> isComment, CancellationToken cancellationToken)
125foreach (var trivia in leadingTrivia)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SyntaxNodeExtensions.cs (26)
376IEnumerable<SyntaxTrivia> trivia,
377Func<SyntaxTrivia, SyntaxTrivia, CancellationToken, Task<SyntaxTrivia>> computeReplacementAsync,
393IEnumerable<SyntaxTrivia>? trivia,
394Func<SyntaxTrivia, SyntaxTrivia, CancellationToken, Task<SyntaxTrivia>>? computeReplacementTriviaAsync,
405var triviaReplacements = new Dictionary<SyntaxTrivia, SyntaxTrivia>();
451else if (triviaToReplace.TryGetValue(span, out var currentTrivia))
453var original = (SyntaxTrivia?)retryAnnotations.GetAnnotations(currentTrivia).SingleOrDefault() ?? currentTrivia;
454var newTrivia = await computeReplacementTriviaAsync!(original, currentTrivia, cancellationToken).ConfigureAwait(false);
498if (!triviaReplacements.TryGetValue(original, out var replaced))
547foreach (var trivia in triviaList)
577foreach (var trivia in triviaList.Reverse())
690params SyntaxTrivia[] trivia) where T : SyntaxNode
697return node.WithPrependedLeadingTrivia((IEnumerable<SyntaxTrivia>)trivia);
714IEnumerable<SyntaxTrivia> trivia) where T : SyntaxNode
724params SyntaxTrivia[] trivia) where T : SyntaxNode
731return node.WithAppendedTrailingTrivia((IEnumerable<SyntaxTrivia>)trivia);
748IEnumerable<SyntaxTrivia> trivia) where T : SyntaxNode
758IEnumerable<SyntaxTrivia> leadingTrivia,
759IEnumerable<SyntaxTrivia> trailingTrivia) where T : SyntaxNode
874foreach (var trivia in token.LeadingTrivia)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\TriviaEngine\AbstractTriviaFormatter.cs (45)
40private delegate LineColumnDelta Formatter<T>(LineColumn lineColumn, SyntaxTrivia trivia, ArrayBuilder<T> changes, CancellationToken cancellationToken);
116protected abstract bool IsWhitespace(SyntaxTrivia trivia);
121protected abstract bool IsEndOfLine(SyntaxTrivia trivia);
126protected abstract bool LineContinuationFollowedByWhitespaceComment(SyntaxTrivia previousTrivia, SyntaxTrivia nextTrivia);
133protected abstract bool IsVisualBasicComment(SyntaxTrivia trivia);
169protected abstract SyntaxTrivia CreateWhitespace(string text);
174protected abstract SyntaxTrivia CreateEndOfLine();
179protected abstract LineColumnRule GetLineColumnRuleBetween(SyntaxTrivia trivia1, LineColumnDelta existingWhitespaceBetween, bool implicitLineBreak, SyntaxTrivia trivia2, CancellationToken cancellationToken);
184protected abstract LineColumnDelta Format(LineColumn lineColumn, SyntaxTrivia trivia, ArrayBuilder<SyntaxTrivia> changes, CancellationToken cancellationToken);
189protected abstract LineColumnDelta Format(LineColumn lineColumn, SyntaxTrivia trivia, ArrayBuilder<TextChange> changes, CancellationToken cancellationToken);
194protected abstract bool ContainsImplicitLineBreak(SyntaxTrivia trivia);
239using var _ = ArrayBuilder<SyntaxTrivia>.GetInstance(out var triviaList);
259private static void AddRange(ArrayBuilder<SyntaxTrivia> result, SyntaxTriviaList triviaList)
261foreach (var trivia in triviaList)
288var previousWhitespaceTrivia = default(SyntaxTrivia);
289var previousTrivia = default(SyntaxTrivia);
296SyntaxTrivia trivia;
372SyntaxTrivia trivia1,
374SyntaxTrivia trivia2,
396private LineColumnRule GetOverallLineColumnRuleBetween(SyntaxTrivia trivia1, LineColumnDelta existingWhitespaceBetween, bool implicitLineBreak, SyntaxTrivia trivia2, CancellationToken cancellationToken)
463private void GetTokensAtEdgeOfStructureTrivia(SyntaxTrivia trivia1, SyntaxTrivia trivia2, out SyntaxToken token1, out SyntaxToken token2)
543LineColumn lineColumnBeforeTrivia1, SyntaxTrivia trivia1, LineColumn lineColumnAfterTrivia1, LineColumnDelta existingWhitespaceBetween, SyntaxTrivia trivia2, LineColumnRule rule)
565LineColumn lineColumnBeforeTrivia1, LineColumn lineColumnAfterTrivia1, LineColumnDelta existingWhitespaceBetween, SyntaxTrivia trivia2, LineColumnRule rule)
624private void AddExtraLines(int linesBetweenTokens, ArrayBuilder<SyntaxTrivia> changes)
628using var _ = ArrayBuilder<SyntaxTrivia>.GetInstance(out var lineBreaks);
641private int GetInsertionIndex(ArrayBuilder<SyntaxTrivia> changes)
757ArrayBuilder<SyntaxTrivia> changes)
766ArrayBuilder<SyntaxTrivia> changes)
831private TextSpan GetTextSpan(SyntaxTrivia trivia1, SyntaxTrivia trivia2)
846private bool IsWhitespaceOrEndOfLine(SyntaxTrivia trivia)
851SyntaxTrivia previousTrivia,
852SyntaxTrivia trivia1,
854SyntaxTrivia trivia2)
903protected LineColumn GetLineColumn(LineColumn lineColumn, SyntaxTrivia trivia)
910protected LineColumnDelta GetLineColumnDelta(LineColumn lineColumn, SyntaxTrivia trivia)
935protected int GetExistingIndentation(SyntaxTrivia trivia)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\FileBannerFacts\AbstractFileBannerFacts.cs (21)
19private readonly Matcher<SyntaxTrivia> _oneOrMoreBlankLines;
24private readonly Matcher<SyntaxTrivia> _bannerMatcher;
29private readonly Matcher<SyntaxTrivia> _fileBannerMatcher;
34Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsWhitespaceTrivia, "\\b"));
35var endOfLine = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsEndOfLineTrivia, "\\n");
38var shebangComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsShebangDirectiveTrivia, "#!");
39var singleLineComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsSingleLineCommentTrivia, "//");
40var multiLineComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsMultiLineCommentTrivia, "/**/");
41var singleLineDocumentationComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsSingleLineDocCommentTrivia, "///");
42var multiLineDocumentationComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsMultiLineDocCommentTrivia, "/** */");
61public abstract SyntaxTrivia CreateTrivia(SyntaxTrivia trivia, string text);
66public ImmutableArray<SyntaxTrivia> GetLeadingBlankLines(SyntaxNode node)
69public ImmutableArray<SyntaxTrivia> GetLeadingBlankLines<TSyntaxNode>(TSyntaxNode node)
83TSyntaxNode node, out ImmutableArray<SyntaxTrivia> strippedTrivia)
86var leadingTriviaToKeep = new List<SyntaxTrivia>(node.GetLeadingTrivia());
96public ImmutableArray<SyntaxTrivia> GetLeadingBannerAndPreprocessorDirectives<TSyntaxNode>(TSyntaxNode node)
111TSyntaxNode node, out ImmutableArray<SyntaxTrivia> strippedTrivia)
125List<SyntaxTrivia> leadingTriviaToStrip, leadingTriviaToKeep;
166public ImmutableArray<SyntaxTrivia> GetFileBanner(SyntaxNode root)
172public ImmutableArray<SyntaxTrivia> GetFileBanner(SyntaxToken firstToken)
Metrics (174)
src\Compilers\Core\Portable\SourceGeneration\GeneratedCodeUtilities.cs (6)
49SyntaxTree tree, Func<SyntaxTrivia, bool> isComment, CancellationToken cancellationToken)
55internal static bool IsGeneratedCode(string? filePath, SyntaxNode root, Func<SyntaxTrivia, bool> isComment)
88private static bool BeginsWithAutoGeneratedComment(SyntaxNode root, Func<SyntaxTrivia, bool> isComment)
94foreach (var trivia in leadingTrivia)
118SyntaxTree tree, Func<SyntaxTrivia, bool> isComment, CancellationToken cancellationToken)
125foreach (var trivia in leadingTrivia)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SyntaxNodeExtensions.cs (26)
376IEnumerable<SyntaxTrivia> trivia,
377Func<SyntaxTrivia, SyntaxTrivia, CancellationToken, Task<SyntaxTrivia>> computeReplacementAsync,
393IEnumerable<SyntaxTrivia>? trivia,
394Func<SyntaxTrivia, SyntaxTrivia, CancellationToken, Task<SyntaxTrivia>>? computeReplacementTriviaAsync,
405var triviaReplacements = new Dictionary<SyntaxTrivia, SyntaxTrivia>();
451else if (triviaToReplace.TryGetValue(span, out var currentTrivia))
453var original = (SyntaxTrivia?)retryAnnotations.GetAnnotations(currentTrivia).SingleOrDefault() ?? currentTrivia;
454var newTrivia = await computeReplacementTriviaAsync!(original, currentTrivia, cancellationToken).ConfigureAwait(false);
498if (!triviaReplacements.TryGetValue(original, out var replaced))
547foreach (var trivia in triviaList)
577foreach (var trivia in triviaList.Reverse())
690params SyntaxTrivia[] trivia) where T : SyntaxNode
697return node.WithPrependedLeadingTrivia((IEnumerable<SyntaxTrivia>)trivia);
714IEnumerable<SyntaxTrivia> trivia) where T : SyntaxNode
724params SyntaxTrivia[] trivia) where T : SyntaxNode
731return node.WithAppendedTrailingTrivia((IEnumerable<SyntaxTrivia>)trivia);
748IEnumerable<SyntaxTrivia> trivia) where T : SyntaxNode
758IEnumerable<SyntaxTrivia> leadingTrivia,
759IEnumerable<SyntaxTrivia> trailingTrivia) where T : SyntaxNode
874foreach (var trivia in token.LeadingTrivia)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\TriviaEngine\AbstractTriviaFormatter.cs (45)
40private delegate LineColumnDelta Formatter<T>(LineColumn lineColumn, SyntaxTrivia trivia, ArrayBuilder<T> changes, CancellationToken cancellationToken);
116protected abstract bool IsWhitespace(SyntaxTrivia trivia);
121protected abstract bool IsEndOfLine(SyntaxTrivia trivia);
126protected abstract bool LineContinuationFollowedByWhitespaceComment(SyntaxTrivia previousTrivia, SyntaxTrivia nextTrivia);
133protected abstract bool IsVisualBasicComment(SyntaxTrivia trivia);
169protected abstract SyntaxTrivia CreateWhitespace(string text);
174protected abstract SyntaxTrivia CreateEndOfLine();
179protected abstract LineColumnRule GetLineColumnRuleBetween(SyntaxTrivia trivia1, LineColumnDelta existingWhitespaceBetween, bool implicitLineBreak, SyntaxTrivia trivia2, CancellationToken cancellationToken);
184protected abstract LineColumnDelta Format(LineColumn lineColumn, SyntaxTrivia trivia, ArrayBuilder<SyntaxTrivia> changes, CancellationToken cancellationToken);
189protected abstract LineColumnDelta Format(LineColumn lineColumn, SyntaxTrivia trivia, ArrayBuilder<TextChange> changes, CancellationToken cancellationToken);
194protected abstract bool ContainsImplicitLineBreak(SyntaxTrivia trivia);
239using var _ = ArrayBuilder<SyntaxTrivia>.GetInstance(out var triviaList);
259private static void AddRange(ArrayBuilder<SyntaxTrivia> result, SyntaxTriviaList triviaList)
261foreach (var trivia in triviaList)
288var previousWhitespaceTrivia = default(SyntaxTrivia);
289var previousTrivia = default(SyntaxTrivia);
296SyntaxTrivia trivia;
372SyntaxTrivia trivia1,
374SyntaxTrivia trivia2,
396private LineColumnRule GetOverallLineColumnRuleBetween(SyntaxTrivia trivia1, LineColumnDelta existingWhitespaceBetween, bool implicitLineBreak, SyntaxTrivia trivia2, CancellationToken cancellationToken)
463private void GetTokensAtEdgeOfStructureTrivia(SyntaxTrivia trivia1, SyntaxTrivia trivia2, out SyntaxToken token1, out SyntaxToken token2)
543LineColumn lineColumnBeforeTrivia1, SyntaxTrivia trivia1, LineColumn lineColumnAfterTrivia1, LineColumnDelta existingWhitespaceBetween, SyntaxTrivia trivia2, LineColumnRule rule)
565LineColumn lineColumnBeforeTrivia1, LineColumn lineColumnAfterTrivia1, LineColumnDelta existingWhitespaceBetween, SyntaxTrivia trivia2, LineColumnRule rule)
624private void AddExtraLines(int linesBetweenTokens, ArrayBuilder<SyntaxTrivia> changes)
628using var _ = ArrayBuilder<SyntaxTrivia>.GetInstance(out var lineBreaks);
641private int GetInsertionIndex(ArrayBuilder<SyntaxTrivia> changes)
757ArrayBuilder<SyntaxTrivia> changes)
766ArrayBuilder<SyntaxTrivia> changes)
831private TextSpan GetTextSpan(SyntaxTrivia trivia1, SyntaxTrivia trivia2)
846private bool IsWhitespaceOrEndOfLine(SyntaxTrivia trivia)
851SyntaxTrivia previousTrivia,
852SyntaxTrivia trivia1,
854SyntaxTrivia trivia2)
903protected LineColumn GetLineColumn(LineColumn lineColumn, SyntaxTrivia trivia)
910protected LineColumnDelta GetLineColumnDelta(LineColumn lineColumn, SyntaxTrivia trivia)
935protected int GetExistingIndentation(SyntaxTrivia trivia)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\FileBannerFacts\AbstractFileBannerFacts.cs (21)
19private readonly Matcher<SyntaxTrivia> _oneOrMoreBlankLines;
24private readonly Matcher<SyntaxTrivia> _bannerMatcher;
29private readonly Matcher<SyntaxTrivia> _fileBannerMatcher;
34Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsWhitespaceTrivia, "\\b"));
35var endOfLine = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsEndOfLineTrivia, "\\n");
38var shebangComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsShebangDirectiveTrivia, "#!");
39var singleLineComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsSingleLineCommentTrivia, "//");
40var multiLineComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsMultiLineCommentTrivia, "/**/");
41var singleLineDocumentationComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsSingleLineDocCommentTrivia, "///");
42var multiLineDocumentationComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsMultiLineDocCommentTrivia, "/** */");
61public abstract SyntaxTrivia CreateTrivia(SyntaxTrivia trivia, string text);
66public ImmutableArray<SyntaxTrivia> GetLeadingBlankLines(SyntaxNode node)
69public ImmutableArray<SyntaxTrivia> GetLeadingBlankLines<TSyntaxNode>(TSyntaxNode node)
83TSyntaxNode node, out ImmutableArray<SyntaxTrivia> strippedTrivia)
86var leadingTriviaToKeep = new List<SyntaxTrivia>(node.GetLeadingTrivia());
96public ImmutableArray<SyntaxTrivia> GetLeadingBannerAndPreprocessorDirectives<TSyntaxNode>(TSyntaxNode node)
111TSyntaxNode node, out ImmutableArray<SyntaxTrivia> strippedTrivia)
125List<SyntaxTrivia> leadingTriviaToStrip, leadingTriviaToKeep;
166public ImmutableArray<SyntaxTrivia> GetFileBanner(SyntaxNode root)
172public ImmutableArray<SyntaxTrivia> GetFileBanner(SyntaxToken firstToken)
Metrics.Legacy (174)
src\Compilers\Core\Portable\SourceGeneration\GeneratedCodeUtilities.cs (6)
49SyntaxTree tree, Func<SyntaxTrivia, bool> isComment, CancellationToken cancellationToken)
55internal static bool IsGeneratedCode(string? filePath, SyntaxNode root, Func<SyntaxTrivia, bool> isComment)
88private static bool BeginsWithAutoGeneratedComment(SyntaxNode root, Func<SyntaxTrivia, bool> isComment)
94foreach (var trivia in leadingTrivia)
118SyntaxTree tree, Func<SyntaxTrivia, bool> isComment, CancellationToken cancellationToken)
125foreach (var trivia in leadingTrivia)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SyntaxNodeExtensions.cs (26)
376IEnumerable<SyntaxTrivia> trivia,
377Func<SyntaxTrivia, SyntaxTrivia, CancellationToken, Task<SyntaxTrivia>> computeReplacementAsync,
393IEnumerable<SyntaxTrivia>? trivia,
394Func<SyntaxTrivia, SyntaxTrivia, CancellationToken, Task<SyntaxTrivia>>? computeReplacementTriviaAsync,
405var triviaReplacements = new Dictionary<SyntaxTrivia, SyntaxTrivia>();
451else if (triviaToReplace.TryGetValue(span, out var currentTrivia))
453var original = (SyntaxTrivia?)retryAnnotations.GetAnnotations(currentTrivia).SingleOrDefault() ?? currentTrivia;
454var newTrivia = await computeReplacementTriviaAsync!(original, currentTrivia, cancellationToken).ConfigureAwait(false);
498if (!triviaReplacements.TryGetValue(original, out var replaced))
547foreach (var trivia in triviaList)
577foreach (var trivia in triviaList.Reverse())
690params SyntaxTrivia[] trivia) where T : SyntaxNode
697return node.WithPrependedLeadingTrivia((IEnumerable<SyntaxTrivia>)trivia);
714IEnumerable<SyntaxTrivia> trivia) where T : SyntaxNode
724params SyntaxTrivia[] trivia) where T : SyntaxNode
731return node.WithAppendedTrailingTrivia((IEnumerable<SyntaxTrivia>)trivia);
748IEnumerable<SyntaxTrivia> trivia) where T : SyntaxNode
758IEnumerable<SyntaxTrivia> leadingTrivia,
759IEnumerable<SyntaxTrivia> trailingTrivia) where T : SyntaxNode
874foreach (var trivia in token.LeadingTrivia)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\TriviaEngine\AbstractTriviaFormatter.cs (45)
40private delegate LineColumnDelta Formatter<T>(LineColumn lineColumn, SyntaxTrivia trivia, ArrayBuilder<T> changes, CancellationToken cancellationToken);
116protected abstract bool IsWhitespace(SyntaxTrivia trivia);
121protected abstract bool IsEndOfLine(SyntaxTrivia trivia);
126protected abstract bool LineContinuationFollowedByWhitespaceComment(SyntaxTrivia previousTrivia, SyntaxTrivia nextTrivia);
133protected abstract bool IsVisualBasicComment(SyntaxTrivia trivia);
169protected abstract SyntaxTrivia CreateWhitespace(string text);
174protected abstract SyntaxTrivia CreateEndOfLine();
179protected abstract LineColumnRule GetLineColumnRuleBetween(SyntaxTrivia trivia1, LineColumnDelta existingWhitespaceBetween, bool implicitLineBreak, SyntaxTrivia trivia2, CancellationToken cancellationToken);
184protected abstract LineColumnDelta Format(LineColumn lineColumn, SyntaxTrivia trivia, ArrayBuilder<SyntaxTrivia> changes, CancellationToken cancellationToken);
189protected abstract LineColumnDelta Format(LineColumn lineColumn, SyntaxTrivia trivia, ArrayBuilder<TextChange> changes, CancellationToken cancellationToken);
194protected abstract bool ContainsImplicitLineBreak(SyntaxTrivia trivia);
239using var _ = ArrayBuilder<SyntaxTrivia>.GetInstance(out var triviaList);
259private static void AddRange(ArrayBuilder<SyntaxTrivia> result, SyntaxTriviaList triviaList)
261foreach (var trivia in triviaList)
288var previousWhitespaceTrivia = default(SyntaxTrivia);
289var previousTrivia = default(SyntaxTrivia);
296SyntaxTrivia trivia;
372SyntaxTrivia trivia1,
374SyntaxTrivia trivia2,
396private LineColumnRule GetOverallLineColumnRuleBetween(SyntaxTrivia trivia1, LineColumnDelta existingWhitespaceBetween, bool implicitLineBreak, SyntaxTrivia trivia2, CancellationToken cancellationToken)
463private void GetTokensAtEdgeOfStructureTrivia(SyntaxTrivia trivia1, SyntaxTrivia trivia2, out SyntaxToken token1, out SyntaxToken token2)
543LineColumn lineColumnBeforeTrivia1, SyntaxTrivia trivia1, LineColumn lineColumnAfterTrivia1, LineColumnDelta existingWhitespaceBetween, SyntaxTrivia trivia2, LineColumnRule rule)
565LineColumn lineColumnBeforeTrivia1, LineColumn lineColumnAfterTrivia1, LineColumnDelta existingWhitespaceBetween, SyntaxTrivia trivia2, LineColumnRule rule)
624private void AddExtraLines(int linesBetweenTokens, ArrayBuilder<SyntaxTrivia> changes)
628using var _ = ArrayBuilder<SyntaxTrivia>.GetInstance(out var lineBreaks);
641private int GetInsertionIndex(ArrayBuilder<SyntaxTrivia> changes)
757ArrayBuilder<SyntaxTrivia> changes)
766ArrayBuilder<SyntaxTrivia> changes)
831private TextSpan GetTextSpan(SyntaxTrivia trivia1, SyntaxTrivia trivia2)
846private bool IsWhitespaceOrEndOfLine(SyntaxTrivia trivia)
851SyntaxTrivia previousTrivia,
852SyntaxTrivia trivia1,
854SyntaxTrivia trivia2)
903protected LineColumn GetLineColumn(LineColumn lineColumn, SyntaxTrivia trivia)
910protected LineColumnDelta GetLineColumnDelta(LineColumn lineColumn, SyntaxTrivia trivia)
935protected int GetExistingIndentation(SyntaxTrivia trivia)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\FileBannerFacts\AbstractFileBannerFacts.cs (21)
19private readonly Matcher<SyntaxTrivia> _oneOrMoreBlankLines;
24private readonly Matcher<SyntaxTrivia> _bannerMatcher;
29private readonly Matcher<SyntaxTrivia> _fileBannerMatcher;
34Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsWhitespaceTrivia, "\\b"));
35var endOfLine = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsEndOfLineTrivia, "\\n");
38var shebangComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsShebangDirectiveTrivia, "#!");
39var singleLineComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsSingleLineCommentTrivia, "//");
40var multiLineComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsMultiLineCommentTrivia, "/**/");
41var singleLineDocumentationComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsSingleLineDocCommentTrivia, "///");
42var multiLineDocumentationComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsMultiLineDocCommentTrivia, "/** */");
61public abstract SyntaxTrivia CreateTrivia(SyntaxTrivia trivia, string text);
66public ImmutableArray<SyntaxTrivia> GetLeadingBlankLines(SyntaxNode node)
69public ImmutableArray<SyntaxTrivia> GetLeadingBlankLines<TSyntaxNode>(TSyntaxNode node)
83TSyntaxNode node, out ImmutableArray<SyntaxTrivia> strippedTrivia)
86var leadingTriviaToKeep = new List<SyntaxTrivia>(node.GetLeadingTrivia());
96public ImmutableArray<SyntaxTrivia> GetLeadingBannerAndPreprocessorDirectives<TSyntaxNode>(TSyntaxNode node)
111TSyntaxNode node, out ImmutableArray<SyntaxTrivia> strippedTrivia)
125List<SyntaxTrivia> leadingTriviaToStrip, leadingTriviaToKeep;
166public ImmutableArray<SyntaxTrivia> GetFileBanner(SyntaxNode root)
172public ImmutableArray<SyntaxTrivia> GetFileBanner(SyntaxToken firstToken)
Microsoft.AspNetCore.App.Analyzers (6)
Microsoft.CodeAnalysis (236)
DiagnosticAnalyzer\AnalyzerDriver.cs (2)
369protected AnalyzerDriver(ImmutableArray<DiagnosticAnalyzer> analyzers, AnalyzerManager analyzerManager, SeverityFilter severityFilter, Func<SyntaxTrivia, bool> isComment)
2414internal AnalyzerDriver(ImmutableArray<DiagnosticAnalyzer> analyzers, Func<SyntaxNode, TLanguageKindEnum> getKind, AnalyzerManager analyzerManager, SeverityFilter severityFilter, Func<SyntaxTrivia, bool> isComment)
SourceGeneration\GeneratedCodeUtilities.cs (6)
49SyntaxTree tree, Func<SyntaxTrivia, bool> isComment, CancellationToken cancellationToken)
55internal static bool IsGeneratedCode(string? filePath, SyntaxNode root, Func<SyntaxTrivia, bool> isComment)
88private static bool BeginsWithAutoGeneratedComment(SyntaxNode root, Func<SyntaxTrivia, bool> isComment)
94foreach (var trivia in leadingTrivia)
118SyntaxTree tree, Func<SyntaxTrivia, bool> isComment, CancellationToken cancellationToken)
125foreach (var trivia in leadingTrivia)
Syntax\SyntaxList.cs (8)
29protected internal override SyntaxNode ReplaceCore<TNode>(IEnumerable<TNode>? nodes = null, Func<TNode, TNode, SyntaxNode>? computeReplacementNode = null, IEnumerable<SyntaxToken>? tokens = null, Func<SyntaxToken, SyntaxToken, SyntaxToken>? computeReplacementToken = null, IEnumerable<SyntaxTrivia>? trivia = null, Func<SyntaxTrivia, SyntaxTrivia, SyntaxTrivia>? computeReplacementTrivia = null)
54protected internal override SyntaxNode ReplaceTriviaInListCore(SyntaxTrivia originalTrivia, IEnumerable<SyntaxTrivia> newTrivia)
59protected internal override SyntaxNode InsertTriviaInListCore(SyntaxTrivia originalTrivia, IEnumerable<SyntaxTrivia> newTrivia, bool insertBefore)
Syntax\SyntaxNavigator.cs (29)
31private static readonly Func<SyntaxTrivia, bool>?[] s_stepIntoFunctions = new Func<SyntaxTrivia, bool>?[]
43private static Func<SyntaxTrivia, bool>? GetStepIntoFunction(
82internal SyntaxToken GetPreviousToken(in SyntaxToken current, Func<SyntaxToken, bool> predicate, Func<SyntaxTrivia, bool>? stepInto)
87internal SyntaxToken GetNextToken(in SyntaxToken current, Func<SyntaxToken, bool> predicate, Func<SyntaxTrivia, bool>? stepInto)
95internal SyntaxToken GetFirstToken(SyntaxNode current, Func<SyntaxToken, bool>? predicate, Func<SyntaxTrivia, bool>? stepInto)
141internal SyntaxToken GetLastToken(SyntaxNode current, Func<SyntaxToken, bool> predicate, Func<SyntaxTrivia, bool>? stepInto)
188Func<SyntaxTrivia, bool> stepInto)
191foreach (var trivia in triviaList)
209Func<SyntaxTrivia, bool> stepInto)
213foreach (var trivia in list.Reverse())
226SyntaxTrivia trivia,
228Func<SyntaxTrivia, bool>? stepInto,
246Func<SyntaxTrivia, bool>? stepInto)
280Func<SyntaxTrivia, bool>? stepInto)
312SyntaxTrivia current,
314Func<SyntaxTrivia, bool>? stepInto)
344SyntaxTrivia current,
346Func<SyntaxTrivia, bool>? stepInto)
376SyntaxTrivia current,
379Func<SyntaxTrivia, bool>? stepInto,
382foreach (var trivia in list)
405SyntaxTrivia current,
408Func<SyntaxTrivia, bool>? stepInto,
411foreach (var trivia in list.Reverse())
433Func<SyntaxTrivia, bool>? stepInto)
483Func<SyntaxTrivia, bool>? stepInto)
530internal SyntaxToken GetNextToken(in SyntaxToken current, Func<SyntaxToken, bool>? predicate, bool searchInsideCurrentTokenTrailingTrivia, Func<SyntaxTrivia, bool>? stepInto)
584Func<SyntaxTrivia, bool>? stepInto)
Syntax\SyntaxNode.cs (36)
731public virtual SyntaxTrivia ParentTrivia
735return default(SyntaxTrivia);
1087public SyntaxTrivia FindTrivia(int position, bool findInsideTrivia = false)
1089return FindTrivia(position, findInsideTrivia ? SyntaxTrivia.Any : null);
1101public SyntaxTrivia FindTrivia(int position, Func<SyntaxTrivia, bool>? stepInto)
1108return default(SyntaxTrivia);
1111internal static SyntaxTrivia FindTriviaByOffset(SyntaxNode node, int textOffset, Func<SyntaxTrivia, bool>? stepInto = null)
1132foreach (var trivia in token.LeadingTrivia)
1151foreach (var trivia in token.TrailingTrivia)
1168return default(SyntaxTrivia);
1176return default(SyntaxTrivia);
1182public IEnumerable<SyntaxTrivia> DescendantTrivia(Func<SyntaxNode, bool>? descendIntoChildren = null, bool descendIntoTrivia = false)
1190public IEnumerable<SyntaxTrivia> DescendantTrivia(TextSpan span, Func<SyntaxNode, bool>? descendIntoChildren = null, bool descendIntoTrivia = false)
1316public IEnumerable<SyntaxTrivia> GetAnnotatedTrivia(string annotationKind)
1325public IEnumerable<SyntaxTrivia> GetAnnotatedTrivia(params string[] annotationKinds)
1334public IEnumerable<SyntaxTrivia> GetAnnotatedTrivia(SyntaxAnnotation annotation)
1444return this.FindToken(position, SyntaxTrivia.Any);
1503private SyntaxToken FindToken(int position, Func<SyntaxTrivia, bool> findInsideTrivia)
1516protected virtual SyntaxToken FindTokenCore(int position, Func<SyntaxTrivia, bool> stepInto)
1521var trivia = GetTriviaFromSyntaxToken(position, token);
1532internal static SyntaxTrivia GetTriviaFromSyntaxToken(int position, in SyntaxToken token)
1535var trivia = new SyntaxTrivia();
1548internal static SyntaxTrivia GetTriviaThatContainsPosition(in SyntaxTriviaList list, int position)
1550foreach (var trivia in list)
1563return default(SyntaxTrivia);
1571protected virtual SyntaxTrivia FindTriviaCore(int position, bool findInsideTrivia)
1584IEnumerable<SyntaxTrivia>? trivia = null,
1585Func<SyntaxTrivia, SyntaxTrivia, SyntaxTrivia>? computeReplacementTrivia = null)
1592protected internal abstract SyntaxNode ReplaceTriviaInListCore(SyntaxTrivia originalTrivia, IEnumerable<SyntaxTrivia> newTrivia);
1593protected internal abstract SyntaxNode InsertTriviaInListCore(SyntaxTrivia originalTrivia, IEnumerable<SyntaxTrivia> newTrivia, bool insertBefore);
Syntax\SyntaxNodeExtensions.cs (24)
36IEnumerable<SyntaxTrivia>? trivia,
37Func<SyntaxTrivia, SyntaxTrivia, SyntaxTrivia>? computeReplacementTrivia)
166public static TRoot ReplaceTrivia<TRoot>(this TRoot root, SyntaxTrivia oldTrivia, IEnumerable<SyntaxTrivia> newTrivia)
179public static TRoot InsertTriviaBefore<TRoot>(this TRoot root, SyntaxTrivia trivia, IEnumerable<SyntaxTrivia> newTrivia)
192public static TRoot InsertTriviaAfter<TRoot>(this TRoot root, SyntaxTrivia trivia, IEnumerable<SyntaxTrivia> newTrivia)
236public static TRoot ReplaceTrivia<TRoot>(this TRoot root, IEnumerable<SyntaxTrivia> trivia, Func<SyntaxTrivia, SyntaxTrivia, SyntaxTrivia> computeReplacementTrivia)
249public static TRoot ReplaceTrivia<TRoot>(this TRoot root, SyntaxTrivia trivia, SyntaxTrivia newTrivia)
361IEnumerable<SyntaxTrivia>? trivia) where TSyntax : SyntaxNode
375return node.WithLeadingTrivia((IEnumerable<SyntaxTrivia>?)null);
383params SyntaxTrivia[]? trivia) where TSyntax : SyntaxNode
385return node.WithLeadingTrivia((IEnumerable<SyntaxTrivia>?)trivia);
405IEnumerable<SyntaxTrivia>? trivia) where TSyntax : SyntaxNode
417return node.WithTrailingTrivia((IEnumerable<SyntaxTrivia>?)null);
425params SyntaxTrivia[]? trivia) where TSyntax : SyntaxNode
427return node.WithTrailingTrivia((IEnumerable<SyntaxTrivia>?)trivia);
Microsoft.CodeAnalysis.Analyzers (190)
src\Compilers\Core\Portable\SourceGeneration\GeneratedCodeUtilities.cs (6)
49SyntaxTree tree, Func<SyntaxTrivia, bool> isComment, CancellationToken cancellationToken)
55internal static bool IsGeneratedCode(string? filePath, SyntaxNode root, Func<SyntaxTrivia, bool> isComment)
88private static bool BeginsWithAutoGeneratedComment(SyntaxNode root, Func<SyntaxTrivia, bool> isComment)
94foreach (var trivia in leadingTrivia)
118SyntaxTree tree, Func<SyntaxTrivia, bool> isComment, CancellationToken cancellationToken)
125foreach (var trivia in leadingTrivia)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SyntaxNodeExtensions.cs (26)
376IEnumerable<SyntaxTrivia> trivia,
377Func<SyntaxTrivia, SyntaxTrivia, CancellationToken, Task<SyntaxTrivia>> computeReplacementAsync,
393IEnumerable<SyntaxTrivia>? trivia,
394Func<SyntaxTrivia, SyntaxTrivia, CancellationToken, Task<SyntaxTrivia>>? computeReplacementTriviaAsync,
405var triviaReplacements = new Dictionary<SyntaxTrivia, SyntaxTrivia>();
451else if (triviaToReplace.TryGetValue(span, out var currentTrivia))
453var original = (SyntaxTrivia?)retryAnnotations.GetAnnotations(currentTrivia).SingleOrDefault() ?? currentTrivia;
454var newTrivia = await computeReplacementTriviaAsync!(original, currentTrivia, cancellationToken).ConfigureAwait(false);
498if (!triviaReplacements.TryGetValue(original, out var replaced))
547foreach (var trivia in triviaList)
577foreach (var trivia in triviaList.Reverse())
690params SyntaxTrivia[] trivia) where T : SyntaxNode
697return node.WithPrependedLeadingTrivia((IEnumerable<SyntaxTrivia>)trivia);
714IEnumerable<SyntaxTrivia> trivia) where T : SyntaxNode
724params SyntaxTrivia[] trivia) where T : SyntaxNode
731return node.WithAppendedTrailingTrivia((IEnumerable<SyntaxTrivia>)trivia);
748IEnumerable<SyntaxTrivia> trivia) where T : SyntaxNode
758IEnumerable<SyntaxTrivia> leadingTrivia,
759IEnumerable<SyntaxTrivia> trailingTrivia) where T : SyntaxNode
874foreach (var trivia in token.LeadingTrivia)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\TriviaEngine\AbstractTriviaFormatter.cs (45)
40private delegate LineColumnDelta Formatter<T>(LineColumn lineColumn, SyntaxTrivia trivia, ArrayBuilder<T> changes, CancellationToken cancellationToken);
116protected abstract bool IsWhitespace(SyntaxTrivia trivia);
121protected abstract bool IsEndOfLine(SyntaxTrivia trivia);
126protected abstract bool LineContinuationFollowedByWhitespaceComment(SyntaxTrivia previousTrivia, SyntaxTrivia nextTrivia);
133protected abstract bool IsVisualBasicComment(SyntaxTrivia trivia);
169protected abstract SyntaxTrivia CreateWhitespace(string text);
174protected abstract SyntaxTrivia CreateEndOfLine();
179protected abstract LineColumnRule GetLineColumnRuleBetween(SyntaxTrivia trivia1, LineColumnDelta existingWhitespaceBetween, bool implicitLineBreak, SyntaxTrivia trivia2, CancellationToken cancellationToken);
184protected abstract LineColumnDelta Format(LineColumn lineColumn, SyntaxTrivia trivia, ArrayBuilder<SyntaxTrivia> changes, CancellationToken cancellationToken);
189protected abstract LineColumnDelta Format(LineColumn lineColumn, SyntaxTrivia trivia, ArrayBuilder<TextChange> changes, CancellationToken cancellationToken);
194protected abstract bool ContainsImplicitLineBreak(SyntaxTrivia trivia);
239using var _ = ArrayBuilder<SyntaxTrivia>.GetInstance(out var triviaList);
259private static void AddRange(ArrayBuilder<SyntaxTrivia> result, SyntaxTriviaList triviaList)
261foreach (var trivia in triviaList)
288var previousWhitespaceTrivia = default(SyntaxTrivia);
289var previousTrivia = default(SyntaxTrivia);
296SyntaxTrivia trivia;
372SyntaxTrivia trivia1,
374SyntaxTrivia trivia2,
396private LineColumnRule GetOverallLineColumnRuleBetween(SyntaxTrivia trivia1, LineColumnDelta existingWhitespaceBetween, bool implicitLineBreak, SyntaxTrivia trivia2, CancellationToken cancellationToken)
463private void GetTokensAtEdgeOfStructureTrivia(SyntaxTrivia trivia1, SyntaxTrivia trivia2, out SyntaxToken token1, out SyntaxToken token2)
543LineColumn lineColumnBeforeTrivia1, SyntaxTrivia trivia1, LineColumn lineColumnAfterTrivia1, LineColumnDelta existingWhitespaceBetween, SyntaxTrivia trivia2, LineColumnRule rule)
565LineColumn lineColumnBeforeTrivia1, LineColumn lineColumnAfterTrivia1, LineColumnDelta existingWhitespaceBetween, SyntaxTrivia trivia2, LineColumnRule rule)
624private void AddExtraLines(int linesBetweenTokens, ArrayBuilder<SyntaxTrivia> changes)
628using var _ = ArrayBuilder<SyntaxTrivia>.GetInstance(out var lineBreaks);
641private int GetInsertionIndex(ArrayBuilder<SyntaxTrivia> changes)
757ArrayBuilder<SyntaxTrivia> changes)
766ArrayBuilder<SyntaxTrivia> changes)
831private TextSpan GetTextSpan(SyntaxTrivia trivia1, SyntaxTrivia trivia2)
846private bool IsWhitespaceOrEndOfLine(SyntaxTrivia trivia)
851SyntaxTrivia previousTrivia,
852SyntaxTrivia trivia1,
854SyntaxTrivia trivia2)
903protected LineColumn GetLineColumn(LineColumn lineColumn, SyntaxTrivia trivia)
910protected LineColumnDelta GetLineColumnDelta(LineColumn lineColumn, SyntaxTrivia trivia)
935protected int GetExistingIndentation(SyntaxTrivia trivia)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\FileBannerFacts\AbstractFileBannerFacts.cs (21)
19private readonly Matcher<SyntaxTrivia> _oneOrMoreBlankLines;
24private readonly Matcher<SyntaxTrivia> _bannerMatcher;
29private readonly Matcher<SyntaxTrivia> _fileBannerMatcher;
34Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsWhitespaceTrivia, "\\b"));
35var endOfLine = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsEndOfLineTrivia, "\\n");
38var shebangComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsShebangDirectiveTrivia, "#!");
39var singleLineComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsSingleLineCommentTrivia, "//");
40var multiLineComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsMultiLineCommentTrivia, "/**/");
41var singleLineDocumentationComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsSingleLineDocCommentTrivia, "///");
42var multiLineDocumentationComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsMultiLineDocCommentTrivia, "/** */");
61public abstract SyntaxTrivia CreateTrivia(SyntaxTrivia trivia, string text);
66public ImmutableArray<SyntaxTrivia> GetLeadingBlankLines(SyntaxNode node)
69public ImmutableArray<SyntaxTrivia> GetLeadingBlankLines<TSyntaxNode>(TSyntaxNode node)
83TSyntaxNode node, out ImmutableArray<SyntaxTrivia> strippedTrivia)
86var leadingTriviaToKeep = new List<SyntaxTrivia>(node.GetLeadingTrivia());
96public ImmutableArray<SyntaxTrivia> GetLeadingBannerAndPreprocessorDirectives<TSyntaxNode>(TSyntaxNode node)
111TSyntaxNode node, out ImmutableArray<SyntaxTrivia> strippedTrivia)
125List<SyntaxTrivia> leadingTriviaToStrip, leadingTriviaToKeep;
166public ImmutableArray<SyntaxTrivia> GetFileBanner(SyntaxNode root)
172public ImmutableArray<SyntaxTrivia> GetFileBanner(SyntaxToken firstToken)
Microsoft.CodeAnalysis.AnalyzerUtilities (174)
src\Compilers\Core\Portable\SourceGeneration\GeneratedCodeUtilities.cs (6)
49SyntaxTree tree, Func<SyntaxTrivia, bool> isComment, CancellationToken cancellationToken)
55internal static bool IsGeneratedCode(string? filePath, SyntaxNode root, Func<SyntaxTrivia, bool> isComment)
88private static bool BeginsWithAutoGeneratedComment(SyntaxNode root, Func<SyntaxTrivia, bool> isComment)
94foreach (var trivia in leadingTrivia)
118SyntaxTree tree, Func<SyntaxTrivia, bool> isComment, CancellationToken cancellationToken)
125foreach (var trivia in leadingTrivia)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SyntaxNodeExtensions.cs (26)
376IEnumerable<SyntaxTrivia> trivia,
377Func<SyntaxTrivia, SyntaxTrivia, CancellationToken, Task<SyntaxTrivia>> computeReplacementAsync,
393IEnumerable<SyntaxTrivia>? trivia,
394Func<SyntaxTrivia, SyntaxTrivia, CancellationToken, Task<SyntaxTrivia>>? computeReplacementTriviaAsync,
405var triviaReplacements = new Dictionary<SyntaxTrivia, SyntaxTrivia>();
451else if (triviaToReplace.TryGetValue(span, out var currentTrivia))
453var original = (SyntaxTrivia?)retryAnnotations.GetAnnotations(currentTrivia).SingleOrDefault() ?? currentTrivia;
454var newTrivia = await computeReplacementTriviaAsync!(original, currentTrivia, cancellationToken).ConfigureAwait(false);
498if (!triviaReplacements.TryGetValue(original, out var replaced))
547foreach (var trivia in triviaList)
577foreach (var trivia in triviaList.Reverse())
690params SyntaxTrivia[] trivia) where T : SyntaxNode
697return node.WithPrependedLeadingTrivia((IEnumerable<SyntaxTrivia>)trivia);
714IEnumerable<SyntaxTrivia> trivia) where T : SyntaxNode
724params SyntaxTrivia[] trivia) where T : SyntaxNode
731return node.WithAppendedTrailingTrivia((IEnumerable<SyntaxTrivia>)trivia);
748IEnumerable<SyntaxTrivia> trivia) where T : SyntaxNode
758IEnumerable<SyntaxTrivia> leadingTrivia,
759IEnumerable<SyntaxTrivia> trailingTrivia) where T : SyntaxNode
874foreach (var trivia in token.LeadingTrivia)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\TriviaEngine\AbstractTriviaFormatter.cs (45)
40private delegate LineColumnDelta Formatter<T>(LineColumn lineColumn, SyntaxTrivia trivia, ArrayBuilder<T> changes, CancellationToken cancellationToken);
116protected abstract bool IsWhitespace(SyntaxTrivia trivia);
121protected abstract bool IsEndOfLine(SyntaxTrivia trivia);
126protected abstract bool LineContinuationFollowedByWhitespaceComment(SyntaxTrivia previousTrivia, SyntaxTrivia nextTrivia);
133protected abstract bool IsVisualBasicComment(SyntaxTrivia trivia);
169protected abstract SyntaxTrivia CreateWhitespace(string text);
174protected abstract SyntaxTrivia CreateEndOfLine();
179protected abstract LineColumnRule GetLineColumnRuleBetween(SyntaxTrivia trivia1, LineColumnDelta existingWhitespaceBetween, bool implicitLineBreak, SyntaxTrivia trivia2, CancellationToken cancellationToken);
184protected abstract LineColumnDelta Format(LineColumn lineColumn, SyntaxTrivia trivia, ArrayBuilder<SyntaxTrivia> changes, CancellationToken cancellationToken);
189protected abstract LineColumnDelta Format(LineColumn lineColumn, SyntaxTrivia trivia, ArrayBuilder<TextChange> changes, CancellationToken cancellationToken);
194protected abstract bool ContainsImplicitLineBreak(SyntaxTrivia trivia);
239using var _ = ArrayBuilder<SyntaxTrivia>.GetInstance(out var triviaList);
259private static void AddRange(ArrayBuilder<SyntaxTrivia> result, SyntaxTriviaList triviaList)
261foreach (var trivia in triviaList)
288var previousWhitespaceTrivia = default(SyntaxTrivia);
289var previousTrivia = default(SyntaxTrivia);
296SyntaxTrivia trivia;
372SyntaxTrivia trivia1,
374SyntaxTrivia trivia2,
396private LineColumnRule GetOverallLineColumnRuleBetween(SyntaxTrivia trivia1, LineColumnDelta existingWhitespaceBetween, bool implicitLineBreak, SyntaxTrivia trivia2, CancellationToken cancellationToken)
463private void GetTokensAtEdgeOfStructureTrivia(SyntaxTrivia trivia1, SyntaxTrivia trivia2, out SyntaxToken token1, out SyntaxToken token2)
543LineColumn lineColumnBeforeTrivia1, SyntaxTrivia trivia1, LineColumn lineColumnAfterTrivia1, LineColumnDelta existingWhitespaceBetween, SyntaxTrivia trivia2, LineColumnRule rule)
565LineColumn lineColumnBeforeTrivia1, LineColumn lineColumnAfterTrivia1, LineColumnDelta existingWhitespaceBetween, SyntaxTrivia trivia2, LineColumnRule rule)
624private void AddExtraLines(int linesBetweenTokens, ArrayBuilder<SyntaxTrivia> changes)
628using var _ = ArrayBuilder<SyntaxTrivia>.GetInstance(out var lineBreaks);
641private int GetInsertionIndex(ArrayBuilder<SyntaxTrivia> changes)
757ArrayBuilder<SyntaxTrivia> changes)
766ArrayBuilder<SyntaxTrivia> changes)
831private TextSpan GetTextSpan(SyntaxTrivia trivia1, SyntaxTrivia trivia2)
846private bool IsWhitespaceOrEndOfLine(SyntaxTrivia trivia)
851SyntaxTrivia previousTrivia,
852SyntaxTrivia trivia1,
854SyntaxTrivia trivia2)
903protected LineColumn GetLineColumn(LineColumn lineColumn, SyntaxTrivia trivia)
910protected LineColumnDelta GetLineColumnDelta(LineColumn lineColumn, SyntaxTrivia trivia)
935protected int GetExistingIndentation(SyntaxTrivia trivia)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\FileBannerFacts\AbstractFileBannerFacts.cs (21)
19private readonly Matcher<SyntaxTrivia> _oneOrMoreBlankLines;
24private readonly Matcher<SyntaxTrivia> _bannerMatcher;
29private readonly Matcher<SyntaxTrivia> _fileBannerMatcher;
34Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsWhitespaceTrivia, "\\b"));
35var endOfLine = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsEndOfLineTrivia, "\\n");
38var shebangComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsShebangDirectiveTrivia, "#!");
39var singleLineComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsSingleLineCommentTrivia, "//");
40var multiLineComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsMultiLineCommentTrivia, "/**/");
41var singleLineDocumentationComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsSingleLineDocCommentTrivia, "///");
42var multiLineDocumentationComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsMultiLineDocCommentTrivia, "/** */");
61public abstract SyntaxTrivia CreateTrivia(SyntaxTrivia trivia, string text);
66public ImmutableArray<SyntaxTrivia> GetLeadingBlankLines(SyntaxNode node)
69public ImmutableArray<SyntaxTrivia> GetLeadingBlankLines<TSyntaxNode>(TSyntaxNode node)
83TSyntaxNode node, out ImmutableArray<SyntaxTrivia> strippedTrivia)
86var leadingTriviaToKeep = new List<SyntaxTrivia>(node.GetLeadingTrivia());
96public ImmutableArray<SyntaxTrivia> GetLeadingBannerAndPreprocessorDirectives<TSyntaxNode>(TSyntaxNode node)
111TSyntaxNode node, out ImmutableArray<SyntaxTrivia> strippedTrivia)
125List<SyntaxTrivia> leadingTriviaToStrip, leadingTriviaToKeep;
166public ImmutableArray<SyntaxTrivia> GetFileBanner(SyntaxNode root)
172public ImmutableArray<SyntaxTrivia> GetFileBanner(SyntaxToken firstToken)
Microsoft.CodeAnalysis.BannedApiAnalyzers (190)
src\Compilers\Core\Portable\SourceGeneration\GeneratedCodeUtilities.cs (6)
49SyntaxTree tree, Func<SyntaxTrivia, bool> isComment, CancellationToken cancellationToken)
55internal static bool IsGeneratedCode(string? filePath, SyntaxNode root, Func<SyntaxTrivia, bool> isComment)
88private static bool BeginsWithAutoGeneratedComment(SyntaxNode root, Func<SyntaxTrivia, bool> isComment)
94foreach (var trivia in leadingTrivia)
118SyntaxTree tree, Func<SyntaxTrivia, bool> isComment, CancellationToken cancellationToken)
125foreach (var trivia in leadingTrivia)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SyntaxNodeExtensions.cs (26)
376IEnumerable<SyntaxTrivia> trivia,
377Func<SyntaxTrivia, SyntaxTrivia, CancellationToken, Task<SyntaxTrivia>> computeReplacementAsync,
393IEnumerable<SyntaxTrivia>? trivia,
394Func<SyntaxTrivia, SyntaxTrivia, CancellationToken, Task<SyntaxTrivia>>? computeReplacementTriviaAsync,
405var triviaReplacements = new Dictionary<SyntaxTrivia, SyntaxTrivia>();
451else if (triviaToReplace.TryGetValue(span, out var currentTrivia))
453var original = (SyntaxTrivia?)retryAnnotations.GetAnnotations(currentTrivia).SingleOrDefault() ?? currentTrivia;
454var newTrivia = await computeReplacementTriviaAsync!(original, currentTrivia, cancellationToken).ConfigureAwait(false);
498if (!triviaReplacements.TryGetValue(original, out var replaced))
547foreach (var trivia in triviaList)
577foreach (var trivia in triviaList.Reverse())
690params SyntaxTrivia[] trivia) where T : SyntaxNode
697return node.WithPrependedLeadingTrivia((IEnumerable<SyntaxTrivia>)trivia);
714IEnumerable<SyntaxTrivia> trivia) where T : SyntaxNode
724params SyntaxTrivia[] trivia) where T : SyntaxNode
731return node.WithAppendedTrailingTrivia((IEnumerable<SyntaxTrivia>)trivia);
748IEnumerable<SyntaxTrivia> trivia) where T : SyntaxNode
758IEnumerable<SyntaxTrivia> leadingTrivia,
759IEnumerable<SyntaxTrivia> trailingTrivia) where T : SyntaxNode
874foreach (var trivia in token.LeadingTrivia)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\TriviaEngine\AbstractTriviaFormatter.cs (45)
40private delegate LineColumnDelta Formatter<T>(LineColumn lineColumn, SyntaxTrivia trivia, ArrayBuilder<T> changes, CancellationToken cancellationToken);
116protected abstract bool IsWhitespace(SyntaxTrivia trivia);
121protected abstract bool IsEndOfLine(SyntaxTrivia trivia);
126protected abstract bool LineContinuationFollowedByWhitespaceComment(SyntaxTrivia previousTrivia, SyntaxTrivia nextTrivia);
133protected abstract bool IsVisualBasicComment(SyntaxTrivia trivia);
169protected abstract SyntaxTrivia CreateWhitespace(string text);
174protected abstract SyntaxTrivia CreateEndOfLine();
179protected abstract LineColumnRule GetLineColumnRuleBetween(SyntaxTrivia trivia1, LineColumnDelta existingWhitespaceBetween, bool implicitLineBreak, SyntaxTrivia trivia2, CancellationToken cancellationToken);
184protected abstract LineColumnDelta Format(LineColumn lineColumn, SyntaxTrivia trivia, ArrayBuilder<SyntaxTrivia> changes, CancellationToken cancellationToken);
189protected abstract LineColumnDelta Format(LineColumn lineColumn, SyntaxTrivia trivia, ArrayBuilder<TextChange> changes, CancellationToken cancellationToken);
194protected abstract bool ContainsImplicitLineBreak(SyntaxTrivia trivia);
239using var _ = ArrayBuilder<SyntaxTrivia>.GetInstance(out var triviaList);
259private static void AddRange(ArrayBuilder<SyntaxTrivia> result, SyntaxTriviaList triviaList)
261foreach (var trivia in triviaList)
288var previousWhitespaceTrivia = default(SyntaxTrivia);
289var previousTrivia = default(SyntaxTrivia);
296SyntaxTrivia trivia;
372SyntaxTrivia trivia1,
374SyntaxTrivia trivia2,
396private LineColumnRule GetOverallLineColumnRuleBetween(SyntaxTrivia trivia1, LineColumnDelta existingWhitespaceBetween, bool implicitLineBreak, SyntaxTrivia trivia2, CancellationToken cancellationToken)
463private void GetTokensAtEdgeOfStructureTrivia(SyntaxTrivia trivia1, SyntaxTrivia trivia2, out SyntaxToken token1, out SyntaxToken token2)
543LineColumn lineColumnBeforeTrivia1, SyntaxTrivia trivia1, LineColumn lineColumnAfterTrivia1, LineColumnDelta existingWhitespaceBetween, SyntaxTrivia trivia2, LineColumnRule rule)
565LineColumn lineColumnBeforeTrivia1, LineColumn lineColumnAfterTrivia1, LineColumnDelta existingWhitespaceBetween, SyntaxTrivia trivia2, LineColumnRule rule)
624private void AddExtraLines(int linesBetweenTokens, ArrayBuilder<SyntaxTrivia> changes)
628using var _ = ArrayBuilder<SyntaxTrivia>.GetInstance(out var lineBreaks);
641private int GetInsertionIndex(ArrayBuilder<SyntaxTrivia> changes)
757ArrayBuilder<SyntaxTrivia> changes)
766ArrayBuilder<SyntaxTrivia> changes)
831private TextSpan GetTextSpan(SyntaxTrivia trivia1, SyntaxTrivia trivia2)
846private bool IsWhitespaceOrEndOfLine(SyntaxTrivia trivia)
851SyntaxTrivia previousTrivia,
852SyntaxTrivia trivia1,
854SyntaxTrivia trivia2)
903protected LineColumn GetLineColumn(LineColumn lineColumn, SyntaxTrivia trivia)
910protected LineColumnDelta GetLineColumnDelta(LineColumn lineColumn, SyntaxTrivia trivia)
935protected int GetExistingIndentation(SyntaxTrivia trivia)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\FileBannerFacts\AbstractFileBannerFacts.cs (21)
19private readonly Matcher<SyntaxTrivia> _oneOrMoreBlankLines;
24private readonly Matcher<SyntaxTrivia> _bannerMatcher;
29private readonly Matcher<SyntaxTrivia> _fileBannerMatcher;
34Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsWhitespaceTrivia, "\\b"));
35var endOfLine = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsEndOfLineTrivia, "\\n");
38var shebangComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsShebangDirectiveTrivia, "#!");
39var singleLineComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsSingleLineCommentTrivia, "//");
40var multiLineComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsMultiLineCommentTrivia, "/**/");
41var singleLineDocumentationComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsSingleLineDocCommentTrivia, "///");
42var multiLineDocumentationComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsMultiLineDocCommentTrivia, "/** */");
61public abstract SyntaxTrivia CreateTrivia(SyntaxTrivia trivia, string text);
66public ImmutableArray<SyntaxTrivia> GetLeadingBlankLines(SyntaxNode node)
69public ImmutableArray<SyntaxTrivia> GetLeadingBlankLines<TSyntaxNode>(TSyntaxNode node)
83TSyntaxNode node, out ImmutableArray<SyntaxTrivia> strippedTrivia)
86var leadingTriviaToKeep = new List<SyntaxTrivia>(node.GetLeadingTrivia());
96public ImmutableArray<SyntaxTrivia> GetLeadingBannerAndPreprocessorDirectives<TSyntaxNode>(TSyntaxNode node)
111TSyntaxNode node, out ImmutableArray<SyntaxTrivia> strippedTrivia)
125List<SyntaxTrivia> leadingTriviaToStrip, leadingTriviaToKeep;
166public ImmutableArray<SyntaxTrivia> GetFileBanner(SyntaxNode root)
172public ImmutableArray<SyntaxTrivia> GetFileBanner(SyntaxToken firstToken)
Microsoft.CodeAnalysis.CodeStyle (207)
src\Analyzers\Core\Analyzers\RemoveUnnecessarySuppressions\AbstractRemoveUnnecessaryPragmaSuppressionsDiagnosticAnalyzer.cs (20)
157using var _1 = PooledDictionary<string, List<(SyntaxTrivia pragma, bool isDisable)>>.GetInstance(out var idToPragmasMap);
158using var _2 = ArrayBuilder<(SyntaxTrivia pragma, ImmutableArray<string> ids, bool isDisable)>.GetInstance(out var sortedPragmasWithIds);
159using var _3 = PooledDictionary<SyntaxTrivia, bool>.GetInstance(out var pragmasToIsUsedMap);
228PooledDictionary<string, List<(SyntaxTrivia pragma, bool isDisable)>> idToPragmasMap,
229PooledDictionary<SyntaxTrivia, bool> pragmasToIsUsedMap,
230ArrayBuilder<(SyntaxTrivia pragma, ImmutableArray<string> ids, bool isDisable)> sortedPragmasWithIds,
241foreach (var trivia in root.DescendantTrivia(node => node.ContainsDirectives))
510PooledDictionary<string, List<(SyntaxTrivia pragma, bool isDisable)>> idToPragmasMap,
511PooledDictionary<SyntaxTrivia, bool> pragmasToIsUsedMap,
546PooledDictionary<string, List<(SyntaxTrivia pragma, bool isDisable)>> idToPragmasMap,
547PooledDictionary<SyntaxTrivia, bool> pragmasToIsUsedMap)
560SyntaxTrivia? lastEnablePragma = null;
609PooledDictionary<SyntaxTrivia, bool> pragmasToIsUsedMap,
610ArrayBuilder<(SyntaxTrivia pragma, ImmutableArray<string> ids, bool isDisable)> sortedPragmasWithIds,
631PooledDictionary<SyntaxTrivia, bool> pragmasToIsUsedMap,
632ArrayBuilder<(SyntaxTrivia pragma, ImmutableArray<string> ids, bool isDisable)> sortedPragmasWithIds,
644if (TryGetTogglingPragmaDirective(pragma, sortedPragmasWithIds, out var togglePragma) &&
678SyntaxTrivia pragma,
679ArrayBuilder<(SyntaxTrivia pragma, ImmutableArray<string> ids, bool isDisable)> sortedPragmasWithIds,
680out SyntaxTrivia togglePragma)
src\Compilers\Core\Portable\SourceGeneration\GeneratedCodeUtilities.cs (6)
49SyntaxTree tree, Func<SyntaxTrivia, bool> isComment, CancellationToken cancellationToken)
55internal static bool IsGeneratedCode(string? filePath, SyntaxNode root, Func<SyntaxTrivia, bool> isComment)
88private static bool BeginsWithAutoGeneratedComment(SyntaxNode root, Func<SyntaxTrivia, bool> isComment)
94foreach (var trivia in leadingTrivia)
118SyntaxTree tree, Func<SyntaxTrivia, bool> isComment, CancellationToken cancellationToken)
125foreach (var trivia in leadingTrivia)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SyntaxNodeExtensions.cs (26)
376IEnumerable<SyntaxTrivia> trivia,
377Func<SyntaxTrivia, SyntaxTrivia, CancellationToken, Task<SyntaxTrivia>> computeReplacementAsync,
393IEnumerable<SyntaxTrivia>? trivia,
394Func<SyntaxTrivia, SyntaxTrivia, CancellationToken, Task<SyntaxTrivia>>? computeReplacementTriviaAsync,
405var triviaReplacements = new Dictionary<SyntaxTrivia, SyntaxTrivia>();
451else if (triviaToReplace.TryGetValue(span, out var currentTrivia))
453var original = (SyntaxTrivia?)retryAnnotations.GetAnnotations(currentTrivia).SingleOrDefault() ?? currentTrivia;
454var newTrivia = await computeReplacementTriviaAsync!(original, currentTrivia, cancellationToken).ConfigureAwait(false);
498if (!triviaReplacements.TryGetValue(original, out var replaced))
547foreach (var trivia in triviaList)
577foreach (var trivia in triviaList.Reverse())
690params SyntaxTrivia[] trivia) where T : SyntaxNode
697return node.WithPrependedLeadingTrivia((IEnumerable<SyntaxTrivia>)trivia);
714IEnumerable<SyntaxTrivia> trivia) where T : SyntaxNode
724params SyntaxTrivia[] trivia) where T : SyntaxNode
731return node.WithAppendedTrailingTrivia((IEnumerable<SyntaxTrivia>)trivia);
748IEnumerable<SyntaxTrivia> trivia) where T : SyntaxNode
758IEnumerable<SyntaxTrivia> leadingTrivia,
759IEnumerable<SyntaxTrivia> trailingTrivia) where T : SyntaxNode
874foreach (var trivia in token.LeadingTrivia)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\TriviaEngine\AbstractTriviaFormatter.cs (45)
40private delegate LineColumnDelta Formatter<T>(LineColumn lineColumn, SyntaxTrivia trivia, ArrayBuilder<T> changes, CancellationToken cancellationToken);
116protected abstract bool IsWhitespace(SyntaxTrivia trivia);
121protected abstract bool IsEndOfLine(SyntaxTrivia trivia);
126protected abstract bool LineContinuationFollowedByWhitespaceComment(SyntaxTrivia previousTrivia, SyntaxTrivia nextTrivia);
133protected abstract bool IsVisualBasicComment(SyntaxTrivia trivia);
169protected abstract SyntaxTrivia CreateWhitespace(string text);
174protected abstract SyntaxTrivia CreateEndOfLine();
179protected abstract LineColumnRule GetLineColumnRuleBetween(SyntaxTrivia trivia1, LineColumnDelta existingWhitespaceBetween, bool implicitLineBreak, SyntaxTrivia trivia2, CancellationToken cancellationToken);
184protected abstract LineColumnDelta Format(LineColumn lineColumn, SyntaxTrivia trivia, ArrayBuilder<SyntaxTrivia> changes, CancellationToken cancellationToken);
189protected abstract LineColumnDelta Format(LineColumn lineColumn, SyntaxTrivia trivia, ArrayBuilder<TextChange> changes, CancellationToken cancellationToken);
194protected abstract bool ContainsImplicitLineBreak(SyntaxTrivia trivia);
239using var _ = ArrayBuilder<SyntaxTrivia>.GetInstance(out var triviaList);
259private static void AddRange(ArrayBuilder<SyntaxTrivia> result, SyntaxTriviaList triviaList)
261foreach (var trivia in triviaList)
288var previousWhitespaceTrivia = default(SyntaxTrivia);
289var previousTrivia = default(SyntaxTrivia);
296SyntaxTrivia trivia;
372SyntaxTrivia trivia1,
374SyntaxTrivia trivia2,
396private LineColumnRule GetOverallLineColumnRuleBetween(SyntaxTrivia trivia1, LineColumnDelta existingWhitespaceBetween, bool implicitLineBreak, SyntaxTrivia trivia2, CancellationToken cancellationToken)
463private void GetTokensAtEdgeOfStructureTrivia(SyntaxTrivia trivia1, SyntaxTrivia trivia2, out SyntaxToken token1, out SyntaxToken token2)
543LineColumn lineColumnBeforeTrivia1, SyntaxTrivia trivia1, LineColumn lineColumnAfterTrivia1, LineColumnDelta existingWhitespaceBetween, SyntaxTrivia trivia2, LineColumnRule rule)
565LineColumn lineColumnBeforeTrivia1, LineColumn lineColumnAfterTrivia1, LineColumnDelta existingWhitespaceBetween, SyntaxTrivia trivia2, LineColumnRule rule)
624private void AddExtraLines(int linesBetweenTokens, ArrayBuilder<SyntaxTrivia> changes)
628using var _ = ArrayBuilder<SyntaxTrivia>.GetInstance(out var lineBreaks);
641private int GetInsertionIndex(ArrayBuilder<SyntaxTrivia> changes)
757ArrayBuilder<SyntaxTrivia> changes)
766ArrayBuilder<SyntaxTrivia> changes)
831private TextSpan GetTextSpan(SyntaxTrivia trivia1, SyntaxTrivia trivia2)
846private bool IsWhitespaceOrEndOfLine(SyntaxTrivia trivia)
851SyntaxTrivia previousTrivia,
852SyntaxTrivia trivia1,
854SyntaxTrivia trivia2)
903protected LineColumn GetLineColumn(LineColumn lineColumn, SyntaxTrivia trivia)
910protected LineColumnDelta GetLineColumnDelta(LineColumn lineColumn, SyntaxTrivia trivia)
935protected int GetExistingIndentation(SyntaxTrivia trivia)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\FileBannerFacts\AbstractFileBannerFacts.cs (21)
19private readonly Matcher<SyntaxTrivia> _oneOrMoreBlankLines;
24private readonly Matcher<SyntaxTrivia> _bannerMatcher;
29private readonly Matcher<SyntaxTrivia> _fileBannerMatcher;
34Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsWhitespaceTrivia, "\\b"));
35var endOfLine = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsEndOfLineTrivia, "\\n");
38var shebangComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsShebangDirectiveTrivia, "#!");
39var singleLineComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsSingleLineCommentTrivia, "//");
40var multiLineComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsMultiLineCommentTrivia, "/**/");
41var singleLineDocumentationComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsSingleLineDocCommentTrivia, "///");
42var multiLineDocumentationComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsMultiLineDocCommentTrivia, "/** */");
61public abstract SyntaxTrivia CreateTrivia(SyntaxTrivia trivia, string text);
66public ImmutableArray<SyntaxTrivia> GetLeadingBlankLines(SyntaxNode node)
69public ImmutableArray<SyntaxTrivia> GetLeadingBlankLines<TSyntaxNode>(TSyntaxNode node)
83TSyntaxNode node, out ImmutableArray<SyntaxTrivia> strippedTrivia)
86var leadingTriviaToKeep = new List<SyntaxTrivia>(node.GetLeadingTrivia());
96public ImmutableArray<SyntaxTrivia> GetLeadingBannerAndPreprocessorDirectives<TSyntaxNode>(TSyntaxNode node)
111TSyntaxNode node, out ImmutableArray<SyntaxTrivia> strippedTrivia)
125List<SyntaxTrivia> leadingTriviaToStrip, leadingTriviaToKeep;
166public ImmutableArray<SyntaxTrivia> GetFileBanner(SyntaxNode root)
172public ImmutableArray<SyntaxTrivia> GetFileBanner(SyntaxToken firstToken)
Microsoft.CodeAnalysis.CodeStyle.Fixes (31)
src\Analyzers\Core\CodeFixes\FileHeaders\AbstractFileHeaderCodeFixProvider.cs (5)
52var newLineTrivia = generator.EndOfLine(options.NewLine);
57internal static async Task<SyntaxNode> GetTransformedSyntaxRootAsync(ISyntaxFacts syntaxFacts, AbstractFileHeaderHelper fileHeaderHelper, SyntaxTrivia newLineTrivia, Document document, string? fileHeaderTemplate, CancellationToken cancellationToken)
93private static SyntaxNode ReplaceHeader(ISyntaxFacts syntaxFacts, AbstractFileHeaderHelper fileHeaderHelper, SyntaxTrivia newLineTrivia, SyntaxNode root, string expectedFileHeader)
118var triviaLine = triviaList[i];
175private static SyntaxNode AddHeader(ISyntaxFacts syntaxFacts, AbstractFileHeaderHelper fileHeaderHelper, SyntaxTrivia newLineTrivia, SyntaxNode root, string expectedFileHeader)
Microsoft.CodeAnalysis.CSharp (150)
Syntax\CSharpSyntaxNode.cs (15)
247foreach (var tr in token.LeadingTrivia)
287foreach (var tr in token.LeadingTrivia.Reverse())
332internal SyntaxToken GetFirstToken(Func<SyntaxToken, bool>? predicate, Func<SyntaxTrivia, bool>? stepInto = null)
381SyntaxTrivia trivia = GetTriviaFromSyntaxToken(position, nonTriviaToken);
424public new SyntaxTrivia FindTrivia(int position, Func<SyntaxTrivia, bool> stepInto)
435public new SyntaxTrivia FindTrivia(int position, bool findInsideTrivia = false)
467IEnumerable<SyntaxTrivia>? trivia = null,
468Func<SyntaxTrivia, SyntaxTrivia, SyntaxTrivia>? computeReplacementTrivia = null)
493protected internal override SyntaxNode ReplaceTriviaInListCore(SyntaxTrivia originalTrivia, IEnumerable<SyntaxTrivia> newTrivia)
498protected internal override SyntaxNode InsertTriviaInListCore(SyntaxTrivia originalTrivia, IEnumerable<SyntaxTrivia> newTrivia, bool insertBefore)
Syntax\SyntaxReplacer.cs (38)
21IEnumerable<SyntaxTrivia>? trivia = null,
22Func<SyntaxTrivia, SyntaxTrivia, SyntaxTrivia>? computeReplacementTrivia = null)
46IEnumerable<SyntaxTrivia>? trivia = null,
47Func<SyntaxTrivia, SyntaxTrivia, SyntaxTrivia>? computeReplacementTrivia = null)
68private readonly Func<SyntaxTrivia, SyntaxTrivia, SyntaxTrivia>? _computeReplacementTrivia;
72private readonly HashSet<SyntaxTrivia> _triviaSet;
84IEnumerable<SyntaxTrivia>? trivia,
85Func<SyntaxTrivia, SyntaxTrivia, SyntaxTrivia>? computeReplacementTrivia)
93_triviaSet = trivia != null ? new HashSet<SyntaxTrivia>(trivia) : s_noTrivia;
102private static readonly HashSet<SyntaxTrivia> s_noTrivia = new HashSet<SyntaxTrivia>();
133foreach (var trivia in _triviaSet)
251public override SyntaxTrivia VisitListElement(SyntaxTrivia trivia)
253var rewritten = trivia;
300public static SyntaxNode ReplaceTriviaInList(SyntaxNode root, SyntaxTrivia triviaInList, IEnumerable<SyntaxTrivia> newTrivia)
305public static SyntaxNode InsertTriviaInList(SyntaxNode root, SyntaxTrivia triviaInList, IEnumerable<SyntaxTrivia> newTrivia, bool insertBefore)
310public static SyntaxToken ReplaceTriviaInList(SyntaxToken root, SyntaxTrivia triviaInList, IEnumerable<SyntaxTrivia> newTrivia)
315public static SyntaxToken InsertTriviaInList(SyntaxToken root, SyntaxTrivia triviaInList, IEnumerable<SyntaxTrivia> newTrivia, bool insertBefore)
400public override SyntaxTrivia VisitListElement(SyntaxTrivia trivia)
402var rewritten = trivia;
537private readonly SyntaxTrivia _originalTrivia;
538private readonly IEnumerable<SyntaxTrivia> _newTrivia;
541SyntaxTrivia originalTrivia,
542IEnumerable<SyntaxTrivia> newTrivia,
Microsoft.CodeAnalysis.CSharp.CodeStyle (143)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Engine\Trivia\CSharpTriviaFormatter.cs (34)
19private SyntaxTrivia _newLine;
36protected override bool IsWhitespace(SyntaxTrivia trivia)
39protected override bool IsEndOfLine(SyntaxTrivia trivia)
48protected override SyntaxTrivia CreateWhitespace(string text)
51protected override SyntaxTrivia CreateEndOfLine()
61protected override LineColumnRule GetLineColumnRuleBetween(SyntaxTrivia trivia1, LineColumnDelta existingWhitespaceBetween, bool implicitLineBreak, SyntaxTrivia trivia2, CancellationToken cancellationToken)
107var previous = trivia2;
176protected override bool ContainsImplicitLineBreak(SyntaxTrivia trivia)
190private bool IsStartOrEndOfFile(SyntaxTrivia trivia1, SyntaxTrivia trivia2)
204private static bool IsMultilineComment(SyntaxTrivia trivia1)
207private bool TryFormatMultiLineCommentTrivia(LineColumn lineColumn, SyntaxTrivia trivia, out SyntaxTrivia result)
229var firstTrivia = multilineCommentTrivia.First();
240LineColumn lineColumn, SyntaxTrivia trivia, ArrayBuilder<SyntaxTrivia> changes,
248if (TryFormatMultiLineCommentTrivia(lineColumn, trivia, out var newComment))
259LineColumn lineColumn, SyntaxTrivia trivia, ArrayBuilder<TextChange> changes, CancellationToken cancellationToken)
266if (TryFormatMultiLineCommentTrivia(lineColumn, trivia, out var newComment))
275private SyntaxTrivia FormatDocumentComment(LineColumn lineColumn, SyntaxTrivia trivia)
299var newTrivia = singleLineDocumentationCommentExteriorCommentRewriter.VisitTrivia(trivia);
315var newMultiLineTrivia = multiLineDocumentationCommentExteriorCommentRewriter.VisitTrivia(trivia);
321LineColumn lineColumn, SyntaxTrivia trivia, ArrayBuilder<SyntaxTrivia> changes, CancellationToken cancellationToken)
337var formattedTrivia = SyntaxFactory.Trivia((StructuredTriviaSyntax)result.GetFormattedRoot(cancellationToken));
343var docComment = FormatDocumentComment(lineColumn, trivia);
350LineColumn lineColumn, SyntaxTrivia trivia, ArrayBuilder<TextChange> changes, CancellationToken cancellationToken)
371var formattedTrivia = SyntaxFactory.Trivia((StructuredTriviaSyntax)result.GetFormattedRoot(cancellationToken));
375var docComment = FormatDocumentComment(lineColumn, trivia);
384protected override bool LineContinuationFollowedByWhitespaceComment(SyntaxTrivia trivia, SyntaxTrivia nextTrivia)
393protected override bool IsVisualBasicComment(SyntaxTrivia trivia)
Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes (59)
Microsoft.CodeAnalysis.CSharp.EditorFeatures (5)
Microsoft.CodeAnalysis.CSharp.EditorFeatures.UnitTests (2)
Microsoft.CodeAnalysis.CSharp.Features (143)
Microsoft.CodeAnalysis.CSharp.Features.UnitTests (1)
Microsoft.CodeAnalysis.CSharp.Semantic.UnitTests (1)
Microsoft.CodeAnalysis.CSharp.Syntax.UnitTests (247)
Microsoft.CodeAnalysis.CSharp.Test.Utilities (1)
Microsoft.CodeAnalysis.CSharp.Workspaces (171)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Engine\Trivia\CSharpTriviaFormatter.cs (34)
19private SyntaxTrivia _newLine;
36protected override bool IsWhitespace(SyntaxTrivia trivia)
39protected override bool IsEndOfLine(SyntaxTrivia trivia)
48protected override SyntaxTrivia CreateWhitespace(string text)
51protected override SyntaxTrivia CreateEndOfLine()
61protected override LineColumnRule GetLineColumnRuleBetween(SyntaxTrivia trivia1, LineColumnDelta existingWhitespaceBetween, bool implicitLineBreak, SyntaxTrivia trivia2, CancellationToken cancellationToken)
107var previous = trivia2;
176protected override bool ContainsImplicitLineBreak(SyntaxTrivia trivia)
190private bool IsStartOrEndOfFile(SyntaxTrivia trivia1, SyntaxTrivia trivia2)
204private static bool IsMultilineComment(SyntaxTrivia trivia1)
207private bool TryFormatMultiLineCommentTrivia(LineColumn lineColumn, SyntaxTrivia trivia, out SyntaxTrivia result)
229var firstTrivia = multilineCommentTrivia.First();
240LineColumn lineColumn, SyntaxTrivia trivia, ArrayBuilder<SyntaxTrivia> changes,
248if (TryFormatMultiLineCommentTrivia(lineColumn, trivia, out var newComment))
259LineColumn lineColumn, SyntaxTrivia trivia, ArrayBuilder<TextChange> changes, CancellationToken cancellationToken)
266if (TryFormatMultiLineCommentTrivia(lineColumn, trivia, out var newComment))
275private SyntaxTrivia FormatDocumentComment(LineColumn lineColumn, SyntaxTrivia trivia)
299var newTrivia = singleLineDocumentationCommentExteriorCommentRewriter.VisitTrivia(trivia);
315var newMultiLineTrivia = multiLineDocumentationCommentExteriorCommentRewriter.VisitTrivia(trivia);
321LineColumn lineColumn, SyntaxTrivia trivia, ArrayBuilder<SyntaxTrivia> changes, CancellationToken cancellationToken)
337var formattedTrivia = SyntaxFactory.Trivia((StructuredTriviaSyntax)result.GetFormattedRoot(cancellationToken));
343var docComment = FormatDocumentComment(lineColumn, trivia);
350LineColumn lineColumn, SyntaxTrivia trivia, ArrayBuilder<TextChange> changes, CancellationToken cancellationToken)
371var formattedTrivia = SyntaxFactory.Trivia((StructuredTriviaSyntax)result.GetFormattedRoot(cancellationToken));
375var docComment = FormatDocumentComment(lineColumn, trivia);
384protected override bool LineContinuationFollowedByWhitespaceComment(SyntaxTrivia trivia, SyntaxTrivia nextTrivia)
393protected override bool IsVisualBasicComment(SyntaxTrivia trivia)
Microsoft.CodeAnalysis.CSharp.Workspaces.UnitTests (1)
Microsoft.CodeAnalysis.EditorFeatures (5)
Microsoft.CodeAnalysis.EditorFeatures.Test.Utilities (1)
Microsoft.CodeAnalysis.EditorFeatures.UnitTests (2)
Microsoft.CodeAnalysis.Features (163)
CodeFixes\Suppression\AbstractSuppressionCodeFixProvider.PragmaHelpers.cs (10)
65private static int GetPositionForPragmaInsertion(ImmutableArray<SyntaxTrivia> triviaList, TextSpan currentDiagnosticSpan, AbstractSuppressionCodeFixProvider fixer, bool isStartToken, out SyntaxTrivia triviaAtIndex)
71bool shouldConsiderTrivia(SyntaxTrivia trivia)
81var trivia = triviaList[index];
112var index = GetPositionForPragmaInsertion(trivia, currentDiagnosticSpan, fixer, isStartToken: true, triviaAtIndex: out var insertAfterTrivia);
136private static bool IsEndOfLineOrHasLeadingEndOfLine(SyntaxTrivia trivia, AbstractSuppressionCodeFixProvider fixer)
142private static bool IsEndOfLineOrHasTrailingEndOfLine(SyntaxTrivia trivia, AbstractSuppressionCodeFixProvider fixer)
148private static bool IsEndOfLineOrContainsEndOfLine(SyntaxTrivia trivia, AbstractSuppressionCodeFixProvider fixer)
163ImmutableArray<SyntaxTrivia> trivia;
174var index = GetPositionForPragmaInsertion(trivia, currentDiagnosticSpan, fixer, isStartToken: false, triviaAtIndex: out var insertBeforeTrivia);
src\Analyzers\Core\Analyzers\RemoveUnnecessarySuppressions\AbstractRemoveUnnecessaryPragmaSuppressionsDiagnosticAnalyzer.cs (20)
157using var _1 = PooledDictionary<string, List<(SyntaxTrivia pragma, bool isDisable)>>.GetInstance(out var idToPragmasMap);
158using var _2 = ArrayBuilder<(SyntaxTrivia pragma, ImmutableArray<string> ids, bool isDisable)>.GetInstance(out var sortedPragmasWithIds);
159using var _3 = PooledDictionary<SyntaxTrivia, bool>.GetInstance(out var pragmasToIsUsedMap);
228PooledDictionary<string, List<(SyntaxTrivia pragma, bool isDisable)>> idToPragmasMap,
229PooledDictionary<SyntaxTrivia, bool> pragmasToIsUsedMap,
230ArrayBuilder<(SyntaxTrivia pragma, ImmutableArray<string> ids, bool isDisable)> sortedPragmasWithIds,
241foreach (var trivia in root.DescendantTrivia(node => node.ContainsDirectives))
510PooledDictionary<string, List<(SyntaxTrivia pragma, bool isDisable)>> idToPragmasMap,
511PooledDictionary<SyntaxTrivia, bool> pragmasToIsUsedMap,
546PooledDictionary<string, List<(SyntaxTrivia pragma, bool isDisable)>> idToPragmasMap,
547PooledDictionary<SyntaxTrivia, bool> pragmasToIsUsedMap)
560SyntaxTrivia? lastEnablePragma = null;
609PooledDictionary<SyntaxTrivia, bool> pragmasToIsUsedMap,
610ArrayBuilder<(SyntaxTrivia pragma, ImmutableArray<string> ids, bool isDisable)> sortedPragmasWithIds,
631PooledDictionary<SyntaxTrivia, bool> pragmasToIsUsedMap,
632ArrayBuilder<(SyntaxTrivia pragma, ImmutableArray<string> ids, bool isDisable)> sortedPragmasWithIds,
644if (TryGetTogglingPragmaDirective(pragma, sortedPragmasWithIds, out var togglePragma) &&
678SyntaxTrivia pragma,
679ArrayBuilder<(SyntaxTrivia pragma, ImmutableArray<string> ids, bool isDisable)> sortedPragmasWithIds,
680out SyntaxTrivia togglePragma)
src\Analyzers\Core\CodeFixes\FileHeaders\AbstractFileHeaderCodeFixProvider.cs (4)
57internal static async Task<SyntaxNode> GetTransformedSyntaxRootAsync(ISyntaxFacts syntaxFacts, AbstractFileHeaderHelper fileHeaderHelper, SyntaxTrivia newLineTrivia, Document document, string? fileHeaderTemplate, CancellationToken cancellationToken)
93private static SyntaxNode ReplaceHeader(ISyntaxFacts syntaxFacts, AbstractFileHeaderHelper fileHeaderHelper, SyntaxTrivia newLineTrivia, SyntaxNode root, string expectedFileHeader)
118var triviaLine = triviaList[i];
175private static SyntaxNode AddHeader(ISyntaxFacts syntaxFacts, AbstractFileHeaderHelper fileHeaderHelper, SyntaxTrivia newLineTrivia, SyntaxNode root, string expectedFileHeader)
Microsoft.CodeAnalysis.PerformanceSensitiveAnalyzers (190)
Microsoft.CodeAnalysis.PublicApiAnalyzers (174)
src\Compilers\Core\Portable\SourceGeneration\GeneratedCodeUtilities.cs (6)
49SyntaxTree tree, Func<SyntaxTrivia, bool> isComment, CancellationToken cancellationToken)
55internal static bool IsGeneratedCode(string? filePath, SyntaxNode root, Func<SyntaxTrivia, bool> isComment)
88private static bool BeginsWithAutoGeneratedComment(SyntaxNode root, Func<SyntaxTrivia, bool> isComment)
94foreach (var trivia in leadingTrivia)
118SyntaxTree tree, Func<SyntaxTrivia, bool> isComment, CancellationToken cancellationToken)
125foreach (var trivia in leadingTrivia)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SyntaxNodeExtensions.cs (26)
376IEnumerable<SyntaxTrivia> trivia,
377Func<SyntaxTrivia, SyntaxTrivia, CancellationToken, Task<SyntaxTrivia>> computeReplacementAsync,
393IEnumerable<SyntaxTrivia>? trivia,
394Func<SyntaxTrivia, SyntaxTrivia, CancellationToken, Task<SyntaxTrivia>>? computeReplacementTriviaAsync,
405var triviaReplacements = new Dictionary<SyntaxTrivia, SyntaxTrivia>();
451else if (triviaToReplace.TryGetValue(span, out var currentTrivia))
453var original = (SyntaxTrivia?)retryAnnotations.GetAnnotations(currentTrivia).SingleOrDefault() ?? currentTrivia;
454var newTrivia = await computeReplacementTriviaAsync!(original, currentTrivia, cancellationToken).ConfigureAwait(false);
498if (!triviaReplacements.TryGetValue(original, out var replaced))
547foreach (var trivia in triviaList)
577foreach (var trivia in triviaList.Reverse())
690params SyntaxTrivia[] trivia) where T : SyntaxNode
697return node.WithPrependedLeadingTrivia((IEnumerable<SyntaxTrivia>)trivia);
714IEnumerable<SyntaxTrivia> trivia) where T : SyntaxNode
724params SyntaxTrivia[] trivia) where T : SyntaxNode
731return node.WithAppendedTrailingTrivia((IEnumerable<SyntaxTrivia>)trivia);
748IEnumerable<SyntaxTrivia> trivia) where T : SyntaxNode
758IEnumerable<SyntaxTrivia> leadingTrivia,
759IEnumerable<SyntaxTrivia> trailingTrivia) where T : SyntaxNode
874foreach (var trivia in token.LeadingTrivia)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\TriviaEngine\AbstractTriviaFormatter.cs (45)
40private delegate LineColumnDelta Formatter<T>(LineColumn lineColumn, SyntaxTrivia trivia, ArrayBuilder<T> changes, CancellationToken cancellationToken);
116protected abstract bool IsWhitespace(SyntaxTrivia trivia);
121protected abstract bool IsEndOfLine(SyntaxTrivia trivia);
126protected abstract bool LineContinuationFollowedByWhitespaceComment(SyntaxTrivia previousTrivia, SyntaxTrivia nextTrivia);
133protected abstract bool IsVisualBasicComment(SyntaxTrivia trivia);
169protected abstract SyntaxTrivia CreateWhitespace(string text);
174protected abstract SyntaxTrivia CreateEndOfLine();
179protected abstract LineColumnRule GetLineColumnRuleBetween(SyntaxTrivia trivia1, LineColumnDelta existingWhitespaceBetween, bool implicitLineBreak, SyntaxTrivia trivia2, CancellationToken cancellationToken);
184protected abstract LineColumnDelta Format(LineColumn lineColumn, SyntaxTrivia trivia, ArrayBuilder<SyntaxTrivia> changes, CancellationToken cancellationToken);
189protected abstract LineColumnDelta Format(LineColumn lineColumn, SyntaxTrivia trivia, ArrayBuilder<TextChange> changes, CancellationToken cancellationToken);
194protected abstract bool ContainsImplicitLineBreak(SyntaxTrivia trivia);
239using var _ = ArrayBuilder<SyntaxTrivia>.GetInstance(out var triviaList);
259private static void AddRange(ArrayBuilder<SyntaxTrivia> result, SyntaxTriviaList triviaList)
261foreach (var trivia in triviaList)
288var previousWhitespaceTrivia = default(SyntaxTrivia);
289var previousTrivia = default(SyntaxTrivia);
296SyntaxTrivia trivia;
372SyntaxTrivia trivia1,
374SyntaxTrivia trivia2,
396private LineColumnRule GetOverallLineColumnRuleBetween(SyntaxTrivia trivia1, LineColumnDelta existingWhitespaceBetween, bool implicitLineBreak, SyntaxTrivia trivia2, CancellationToken cancellationToken)
463private void GetTokensAtEdgeOfStructureTrivia(SyntaxTrivia trivia1, SyntaxTrivia trivia2, out SyntaxToken token1, out SyntaxToken token2)
543LineColumn lineColumnBeforeTrivia1, SyntaxTrivia trivia1, LineColumn lineColumnAfterTrivia1, LineColumnDelta existingWhitespaceBetween, SyntaxTrivia trivia2, LineColumnRule rule)
565LineColumn lineColumnBeforeTrivia1, LineColumn lineColumnAfterTrivia1, LineColumnDelta existingWhitespaceBetween, SyntaxTrivia trivia2, LineColumnRule rule)
624private void AddExtraLines(int linesBetweenTokens, ArrayBuilder<SyntaxTrivia> changes)
628using var _ = ArrayBuilder<SyntaxTrivia>.GetInstance(out var lineBreaks);
641private int GetInsertionIndex(ArrayBuilder<SyntaxTrivia> changes)
757ArrayBuilder<SyntaxTrivia> changes)
766ArrayBuilder<SyntaxTrivia> changes)
831private TextSpan GetTextSpan(SyntaxTrivia trivia1, SyntaxTrivia trivia2)
846private bool IsWhitespaceOrEndOfLine(SyntaxTrivia trivia)
851SyntaxTrivia previousTrivia,
852SyntaxTrivia trivia1,
854SyntaxTrivia trivia2)
903protected LineColumn GetLineColumn(LineColumn lineColumn, SyntaxTrivia trivia)
910protected LineColumnDelta GetLineColumnDelta(LineColumn lineColumn, SyntaxTrivia trivia)
935protected int GetExistingIndentation(SyntaxTrivia trivia)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\FileBannerFacts\AbstractFileBannerFacts.cs (21)
19private readonly Matcher<SyntaxTrivia> _oneOrMoreBlankLines;
24private readonly Matcher<SyntaxTrivia> _bannerMatcher;
29private readonly Matcher<SyntaxTrivia> _fileBannerMatcher;
34Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsWhitespaceTrivia, "\\b"));
35var endOfLine = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsEndOfLineTrivia, "\\n");
38var shebangComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsShebangDirectiveTrivia, "#!");
39var singleLineComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsSingleLineCommentTrivia, "//");
40var multiLineComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsMultiLineCommentTrivia, "/**/");
41var singleLineDocumentationComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsSingleLineDocCommentTrivia, "///");
42var multiLineDocumentationComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsMultiLineDocCommentTrivia, "/** */");
61public abstract SyntaxTrivia CreateTrivia(SyntaxTrivia trivia, string text);
66public ImmutableArray<SyntaxTrivia> GetLeadingBlankLines(SyntaxNode node)
69public ImmutableArray<SyntaxTrivia> GetLeadingBlankLines<TSyntaxNode>(TSyntaxNode node)
83TSyntaxNode node, out ImmutableArray<SyntaxTrivia> strippedTrivia)
86var leadingTriviaToKeep = new List<SyntaxTrivia>(node.GetLeadingTrivia());
96public ImmutableArray<SyntaxTrivia> GetLeadingBannerAndPreprocessorDirectives<TSyntaxNode>(TSyntaxNode node)
111TSyntaxNode node, out ImmutableArray<SyntaxTrivia> strippedTrivia)
125List<SyntaxTrivia> leadingTriviaToStrip, leadingTriviaToKeep;
166public ImmutableArray<SyntaxTrivia> GetFileBanner(SyntaxNode root)
172public ImmutableArray<SyntaxTrivia> GetFileBanner(SyntaxToken firstToken)
Microsoft.CodeAnalysis.ResxSourceGenerator (174)
src\Compilers\Core\Portable\SourceGeneration\GeneratedCodeUtilities.cs (6)
49SyntaxTree tree, Func<SyntaxTrivia, bool> isComment, CancellationToken cancellationToken)
55internal static bool IsGeneratedCode(string? filePath, SyntaxNode root, Func<SyntaxTrivia, bool> isComment)
88private static bool BeginsWithAutoGeneratedComment(SyntaxNode root, Func<SyntaxTrivia, bool> isComment)
94foreach (var trivia in leadingTrivia)
118SyntaxTree tree, Func<SyntaxTrivia, bool> isComment, CancellationToken cancellationToken)
125foreach (var trivia in leadingTrivia)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SyntaxNodeExtensions.cs (26)
376IEnumerable<SyntaxTrivia> trivia,
377Func<SyntaxTrivia, SyntaxTrivia, CancellationToken, Task<SyntaxTrivia>> computeReplacementAsync,
393IEnumerable<SyntaxTrivia>? trivia,
394Func<SyntaxTrivia, SyntaxTrivia, CancellationToken, Task<SyntaxTrivia>>? computeReplacementTriviaAsync,
405var triviaReplacements = new Dictionary<SyntaxTrivia, SyntaxTrivia>();
451else if (triviaToReplace.TryGetValue(span, out var currentTrivia))
453var original = (SyntaxTrivia?)retryAnnotations.GetAnnotations(currentTrivia).SingleOrDefault() ?? currentTrivia;
454var newTrivia = await computeReplacementTriviaAsync!(original, currentTrivia, cancellationToken).ConfigureAwait(false);
498if (!triviaReplacements.TryGetValue(original, out var replaced))
547foreach (var trivia in triviaList)
577foreach (var trivia in triviaList.Reverse())
690params SyntaxTrivia[] trivia) where T : SyntaxNode
697return node.WithPrependedLeadingTrivia((IEnumerable<SyntaxTrivia>)trivia);
714IEnumerable<SyntaxTrivia> trivia) where T : SyntaxNode
724params SyntaxTrivia[] trivia) where T : SyntaxNode
731return node.WithAppendedTrailingTrivia((IEnumerable<SyntaxTrivia>)trivia);
748IEnumerable<SyntaxTrivia> trivia) where T : SyntaxNode
758IEnumerable<SyntaxTrivia> leadingTrivia,
759IEnumerable<SyntaxTrivia> trailingTrivia) where T : SyntaxNode
874foreach (var trivia in token.LeadingTrivia)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\TriviaEngine\AbstractTriviaFormatter.cs (45)
40private delegate LineColumnDelta Formatter<T>(LineColumn lineColumn, SyntaxTrivia trivia, ArrayBuilder<T> changes, CancellationToken cancellationToken);
116protected abstract bool IsWhitespace(SyntaxTrivia trivia);
121protected abstract bool IsEndOfLine(SyntaxTrivia trivia);
126protected abstract bool LineContinuationFollowedByWhitespaceComment(SyntaxTrivia previousTrivia, SyntaxTrivia nextTrivia);
133protected abstract bool IsVisualBasicComment(SyntaxTrivia trivia);
169protected abstract SyntaxTrivia CreateWhitespace(string text);
174protected abstract SyntaxTrivia CreateEndOfLine();
179protected abstract LineColumnRule GetLineColumnRuleBetween(SyntaxTrivia trivia1, LineColumnDelta existingWhitespaceBetween, bool implicitLineBreak, SyntaxTrivia trivia2, CancellationToken cancellationToken);
184protected abstract LineColumnDelta Format(LineColumn lineColumn, SyntaxTrivia trivia, ArrayBuilder<SyntaxTrivia> changes, CancellationToken cancellationToken);
189protected abstract LineColumnDelta Format(LineColumn lineColumn, SyntaxTrivia trivia, ArrayBuilder<TextChange> changes, CancellationToken cancellationToken);
194protected abstract bool ContainsImplicitLineBreak(SyntaxTrivia trivia);
239using var _ = ArrayBuilder<SyntaxTrivia>.GetInstance(out var triviaList);
259private static void AddRange(ArrayBuilder<SyntaxTrivia> result, SyntaxTriviaList triviaList)
261foreach (var trivia in triviaList)
288var previousWhitespaceTrivia = default(SyntaxTrivia);
289var previousTrivia = default(SyntaxTrivia);
296SyntaxTrivia trivia;
372SyntaxTrivia trivia1,
374SyntaxTrivia trivia2,
396private LineColumnRule GetOverallLineColumnRuleBetween(SyntaxTrivia trivia1, LineColumnDelta existingWhitespaceBetween, bool implicitLineBreak, SyntaxTrivia trivia2, CancellationToken cancellationToken)
463private void GetTokensAtEdgeOfStructureTrivia(SyntaxTrivia trivia1, SyntaxTrivia trivia2, out SyntaxToken token1, out SyntaxToken token2)
543LineColumn lineColumnBeforeTrivia1, SyntaxTrivia trivia1, LineColumn lineColumnAfterTrivia1, LineColumnDelta existingWhitespaceBetween, SyntaxTrivia trivia2, LineColumnRule rule)
565LineColumn lineColumnBeforeTrivia1, LineColumn lineColumnAfterTrivia1, LineColumnDelta existingWhitespaceBetween, SyntaxTrivia trivia2, LineColumnRule rule)
624private void AddExtraLines(int linesBetweenTokens, ArrayBuilder<SyntaxTrivia> changes)
628using var _ = ArrayBuilder<SyntaxTrivia>.GetInstance(out var lineBreaks);
641private int GetInsertionIndex(ArrayBuilder<SyntaxTrivia> changes)
757ArrayBuilder<SyntaxTrivia> changes)
766ArrayBuilder<SyntaxTrivia> changes)
831private TextSpan GetTextSpan(SyntaxTrivia trivia1, SyntaxTrivia trivia2)
846private bool IsWhitespaceOrEndOfLine(SyntaxTrivia trivia)
851SyntaxTrivia previousTrivia,
852SyntaxTrivia trivia1,
854SyntaxTrivia trivia2)
903protected LineColumn GetLineColumn(LineColumn lineColumn, SyntaxTrivia trivia)
910protected LineColumnDelta GetLineColumnDelta(LineColumn lineColumn, SyntaxTrivia trivia)
935protected int GetExistingIndentation(SyntaxTrivia trivia)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\FileBannerFacts\AbstractFileBannerFacts.cs (21)
19private readonly Matcher<SyntaxTrivia> _oneOrMoreBlankLines;
24private readonly Matcher<SyntaxTrivia> _bannerMatcher;
29private readonly Matcher<SyntaxTrivia> _fileBannerMatcher;
34Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsWhitespaceTrivia, "\\b"));
35var endOfLine = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsEndOfLineTrivia, "\\n");
38var shebangComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsShebangDirectiveTrivia, "#!");
39var singleLineComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsSingleLineCommentTrivia, "//");
40var multiLineComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsMultiLineCommentTrivia, "/**/");
41var singleLineDocumentationComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsSingleLineDocCommentTrivia, "///");
42var multiLineDocumentationComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsMultiLineDocCommentTrivia, "/** */");
61public abstract SyntaxTrivia CreateTrivia(SyntaxTrivia trivia, string text);
66public ImmutableArray<SyntaxTrivia> GetLeadingBlankLines(SyntaxNode node)
69public ImmutableArray<SyntaxTrivia> GetLeadingBlankLines<TSyntaxNode>(TSyntaxNode node)
83TSyntaxNode node, out ImmutableArray<SyntaxTrivia> strippedTrivia)
86var leadingTriviaToKeep = new List<SyntaxTrivia>(node.GetLeadingTrivia());
96public ImmutableArray<SyntaxTrivia> GetLeadingBannerAndPreprocessorDirectives<TSyntaxNode>(TSyntaxNode node)
111TSyntaxNode node, out ImmutableArray<SyntaxTrivia> strippedTrivia)
125List<SyntaxTrivia> leadingTriviaToStrip, leadingTriviaToKeep;
166public ImmutableArray<SyntaxTrivia> GetFileBanner(SyntaxNode root)
172public ImmutableArray<SyntaxTrivia> GetFileBanner(SyntaxToken firstToken)
Microsoft.CodeAnalysis.Test.Utilities (10)
Microsoft.CodeAnalysis.UnitTests (20)
Microsoft.CodeAnalysis.VisualBasic (155)
Syntax\SyntaxFactory.vb (38)
17Public Shared ReadOnly Property CarriageReturnLineFeed As SyntaxTrivia = CType(InternalSyntax.SyntaxFactory.CarriageReturnLineFeed, SyntaxTrivia)
22Public Shared ReadOnly Property LineFeed As SyntaxTrivia = CType(InternalSyntax.SyntaxFactory.LineFeed, SyntaxTrivia)
27Public Shared ReadOnly Property CarriageReturn As SyntaxTrivia = CType(InternalSyntax.SyntaxFactory.CarriageReturn, SyntaxTrivia)
32Public Shared ReadOnly Property Space As SyntaxTrivia = CType(InternalSyntax.SyntaxFactory.Space, SyntaxTrivia)
37Public Shared ReadOnly Property Tab As SyntaxTrivia = CType(InternalSyntax.SyntaxFactory.Tab, SyntaxTrivia)
44Public Shared ReadOnly Property ElasticCarriageReturnLineFeed As SyntaxTrivia = CType(InternalSyntax.SyntaxFactory.ElasticCarriageReturnLineFeed, SyntaxTrivia)
51Public Shared ReadOnly Property ElasticLineFeed As SyntaxTrivia = CType(InternalSyntax.SyntaxFactory.ElasticLineFeed, SyntaxTrivia)
58Public Shared ReadOnly Property ElasticCarriageReturn As SyntaxTrivia = CType(InternalSyntax.SyntaxFactory.ElasticCarriageReturn, SyntaxTrivia)
64Public Shared ReadOnly Property ElasticSpace As SyntaxTrivia = CType(InternalSyntax.SyntaxFactory.ElasticSpace, SyntaxTrivia)
70Public Shared ReadOnly Property ElasticTab As SyntaxTrivia = CType(InternalSyntax.SyntaxFactory.ElasticTab, SyntaxTrivia)
77Public Shared ReadOnly Property ElasticMarker As SyntaxTrivia = CType(InternalSyntax.SyntaxFactory.ElasticZeroSpace, SyntaxTrivia)
78Private Shared ReadOnly s_elasticMarkerList As SyntaxTriviaList = SyntaxFactory.TriviaList(CType(InternalSyntax.SyntaxFactory.ElasticZeroSpace, SyntaxTrivia))
85Public Shared Function EndOfLine(text As String) As SyntaxTrivia
86Return CType(InternalSyntax.SyntaxFactory.EndOfLine(text, elastic:=False), SyntaxTrivia)
95Public Shared Function ElasticEndOfLine(text As String) As SyntaxTrivia
96Return CType(InternalSyntax.SyntaxFactory.EndOfLine(text, elastic:=True), SyntaxTrivia)
101Public Shared Function EndOfLine(text As String, elastic As Boolean) As SyntaxTrivia
102Return CType(InternalSyntax.SyntaxFactory.EndOfLine(text, elastic), SyntaxTrivia)
110Public Shared Function Whitespace(text As String) As SyntaxTrivia
111Return CType(InternalSyntax.SyntaxFactory.Whitespace(text, elastic:=False), SyntaxTrivia)
120Public Shared Function ElasticWhitespace(text As String) As SyntaxTrivia
121Return CType(InternalSyntax.SyntaxFactory.Whitespace(text, elastic:=True), SyntaxTrivia)
126Public Shared Function Whitespace(text As String, elastic As Boolean) As SyntaxTrivia
127Return CType(InternalSyntax.SyntaxFactory.Whitespace(text, elastic), SyntaxTrivia)
189Friend Shared Function Token(kind As SyntaxKind, trailing As SyntaxTrivia, Optional text As String = Nothing) As SyntaxToken
203Friend Shared Function Token(leading As SyntaxTrivia, kind As SyntaxKind, trailing As SyntaxTrivia, Optional text As String = Nothing) As SyntaxToken
Syntax\SyntaxReplacer.vb (35)
21Optional trivia As IEnumerable(Of SyntaxTrivia) = Nothing,
22Optional computeReplacementTrivia As Func(Of SyntaxTrivia, SyntaxTrivia, SyntaxTrivia) = Nothing) As SyntaxNode
39Optional trivia As IEnumerable(Of SyntaxTrivia) = Nothing,
40Optional computeReplacementTrivia As Func(Of SyntaxTrivia, SyntaxTrivia, SyntaxTrivia) = Nothing) As SyntaxToken
56Private ReadOnly _computeReplacementTrivia As Func(Of SyntaxTrivia, SyntaxTrivia, SyntaxTrivia)
60Private ReadOnly _triviaSet As HashSet(Of SyntaxTrivia)
72trivia As IEnumerable(Of SyntaxTrivia),
73computeReplacementTrivia As Func(Of SyntaxTrivia, SyntaxTrivia, SyntaxTrivia))
81Me._triviaSet = If(trivia IsNot Nothing, New HashSet(Of SyntaxTrivia)(trivia), s_noTrivia)
98Private Shared ReadOnly s_noTrivia As HashSet(Of SyntaxTrivia) = New HashSet(Of SyntaxTrivia)()
174Public Overrides Function VisitListElement(trivia As SyntaxTrivia) As SyntaxTrivia
205Public Shared Function ReplaceTriviaInList(root As SyntaxNode, triviaInList As SyntaxTrivia, newTrivia As IEnumerable(Of SyntaxTrivia)) As SyntaxNode
209Public Shared Function InsertTriviaInList(root As SyntaxNode, triviaInList As SyntaxTrivia, newTrivia As IEnumerable(Of SyntaxTrivia), insertBefore As Boolean) As SyntaxNode
213Public Shared Function ReplaceTriviaInList(root As SyntaxToken, triviaInList As SyntaxTrivia, newTrivia As IEnumerable(Of SyntaxTrivia)) As SyntaxToken
217Public Shared Function InsertTriviaInList(root As SyntaxToken, triviaInList As SyntaxTrivia, newTrivia As IEnumerable(Of SyntaxTrivia), insertBefore As Boolean) As SyntaxToken
276Public Overrides Function VisitListElement(element As SyntaxTrivia) As SyntaxTrivia
379Private ReadOnly _originalTrivia As SyntaxTrivia
380Private ReadOnly _newTrivia As IEnumerable(Of SyntaxTrivia)
382Public Sub New(originalTrivia As SyntaxTrivia, newTrivia As IEnumerable(Of SyntaxTrivia), editKind As ListEditKind)
Microsoft.CodeAnalysis.VisualBasic.CodeStyle (81)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Formatting\Engine\Trivia\VisualBasicTriviaFormatter.vb (24)
16Private ReadOnly _lineContinuationTrivia As SyntaxTrivia = SyntaxFactory.LineContinuationTrivia("_")
17Private _newLine As SyntaxTrivia
35Protected Overrides Function IsWhitespace(trivia As SyntaxTrivia) As Boolean
39Protected Overrides Function IsEndOfLine(trivia As SyntaxTrivia) As Boolean
51Protected Overrides Function CreateWhitespace(text As String) As SyntaxTrivia
55Protected Overrides Function CreateEndOfLine() As SyntaxTrivia
63Protected Overrides Function GetLineColumnRuleBetween(trivia1 As SyntaxTrivia, existingWhitespaceBetween As LineColumnDelta, implicitLineBreak As Boolean, trivia2 As SyntaxTrivia, cancellationToken As CancellationToken) As LineColumnRule
150Protected Overrides Function ContainsImplicitLineBreak(syntaxTrivia As SyntaxTrivia) As Boolean
154Private Function IsStartOrEndOfFile(trivia1 As SyntaxTrivia, trivia2 As SyntaxTrivia) As Boolean
159trivia As SyntaxTrivia,
160changes As ArrayBuilder(Of SyntaxTrivia),
175trivia As SyntaxTrivia,
195Private Function FormatLineContinuationTrivia(trivia As SyntaxTrivia) As SyntaxTrivia
204trivia As SyntaxTrivia,
205changes As ArrayBuilder(Of SyntaxTrivia),
231trivia As SyntaxTrivia,
263Private Function FormatDocumentComment(lineColumn As LineColumn, trivia As SyntaxTrivia) As SyntaxTrivia
301Protected Overrides Function LineContinuationFollowedByWhitespaceComment(trivia As SyntaxTrivia, nextTrivia As SyntaxTrivia) As Boolean
305Protected Overrides Function IsVisualBasicComment(trivia As SyntaxTrivia) As Boolean
Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes (18)
Microsoft.CodeAnalysis.VisualBasic.EditorFeatures (9)
Microsoft.CodeAnalysis.VisualBasic.Features (49)
Microsoft.CodeAnalysis.VisualBasic.Semantic.UnitTests (1)
Microsoft.CodeAnalysis.VisualBasic.Syntax.UnitTests (42)
Microsoft.CodeAnalysis.VisualBasic.Test.Utilities (2)
Microsoft.CodeAnalysis.VisualBasic.Workspaces (129)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Formatting\Engine\Trivia\VisualBasicTriviaFormatter.vb (24)
16Private ReadOnly _lineContinuationTrivia As SyntaxTrivia = SyntaxFactory.LineContinuationTrivia("_")
17Private _newLine As SyntaxTrivia
35Protected Overrides Function IsWhitespace(trivia As SyntaxTrivia) As Boolean
39Protected Overrides Function IsEndOfLine(trivia As SyntaxTrivia) As Boolean
51Protected Overrides Function CreateWhitespace(text As String) As SyntaxTrivia
55Protected Overrides Function CreateEndOfLine() As SyntaxTrivia
63Protected Overrides Function GetLineColumnRuleBetween(trivia1 As SyntaxTrivia, existingWhitespaceBetween As LineColumnDelta, implicitLineBreak As Boolean, trivia2 As SyntaxTrivia, cancellationToken As CancellationToken) As LineColumnRule
150Protected Overrides Function ContainsImplicitLineBreak(syntaxTrivia As SyntaxTrivia) As Boolean
154Private Function IsStartOrEndOfFile(trivia1 As SyntaxTrivia, trivia2 As SyntaxTrivia) As Boolean
159trivia As SyntaxTrivia,
160changes As ArrayBuilder(Of SyntaxTrivia),
175trivia As SyntaxTrivia,
195Private Function FormatLineContinuationTrivia(trivia As SyntaxTrivia) As SyntaxTrivia
204trivia As SyntaxTrivia,
205changes As ArrayBuilder(Of SyntaxTrivia),
231trivia As SyntaxTrivia,
263Private Function FormatDocumentComment(lineColumn As LineColumn, trivia As SyntaxTrivia) As SyntaxTrivia
301Protected Overrides Function LineContinuationFollowedByWhitespaceComment(trivia As SyntaxTrivia, nextTrivia As SyntaxTrivia) As Boolean
305Protected Overrides Function IsVisualBasicComment(trivia As SyntaxTrivia) As Boolean
Microsoft.CodeAnalysis.Workspaces (202)
src\Compilers\Core\Portable\SourceGeneration\GeneratedCodeUtilities.cs (6)
49SyntaxTree tree, Func<SyntaxTrivia, bool> isComment, CancellationToken cancellationToken)
55internal static bool IsGeneratedCode(string? filePath, SyntaxNode root, Func<SyntaxTrivia, bool> isComment)
88private static bool BeginsWithAutoGeneratedComment(SyntaxNode root, Func<SyntaxTrivia, bool> isComment)
94foreach (var trivia in leadingTrivia)
118SyntaxTree tree, Func<SyntaxTrivia, bool> isComment, CancellationToken cancellationToken)
125foreach (var trivia in leadingTrivia)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SyntaxNodeExtensions.cs (26)
376IEnumerable<SyntaxTrivia> trivia,
377Func<SyntaxTrivia, SyntaxTrivia, CancellationToken, Task<SyntaxTrivia>> computeReplacementAsync,
393IEnumerable<SyntaxTrivia>? trivia,
394Func<SyntaxTrivia, SyntaxTrivia, CancellationToken, Task<SyntaxTrivia>>? computeReplacementTriviaAsync,
405var triviaReplacements = new Dictionary<SyntaxTrivia, SyntaxTrivia>();
451else if (triviaToReplace.TryGetValue(span, out var currentTrivia))
453var original = (SyntaxTrivia?)retryAnnotations.GetAnnotations(currentTrivia).SingleOrDefault() ?? currentTrivia;
454var newTrivia = await computeReplacementTriviaAsync!(original, currentTrivia, cancellationToken).ConfigureAwait(false);
498if (!triviaReplacements.TryGetValue(original, out var replaced))
547foreach (var trivia in triviaList)
577foreach (var trivia in triviaList.Reverse())
690params SyntaxTrivia[] trivia) where T : SyntaxNode
697return node.WithPrependedLeadingTrivia((IEnumerable<SyntaxTrivia>)trivia);
714IEnumerable<SyntaxTrivia> trivia) where T : SyntaxNode
724params SyntaxTrivia[] trivia) where T : SyntaxNode
731return node.WithAppendedTrailingTrivia((IEnumerable<SyntaxTrivia>)trivia);
748IEnumerable<SyntaxTrivia> trivia) where T : SyntaxNode
758IEnumerable<SyntaxTrivia> leadingTrivia,
759IEnumerable<SyntaxTrivia> trailingTrivia) where T : SyntaxNode
874foreach (var trivia in token.LeadingTrivia)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\TriviaEngine\AbstractTriviaFormatter.cs (45)
40private delegate LineColumnDelta Formatter<T>(LineColumn lineColumn, SyntaxTrivia trivia, ArrayBuilder<T> changes, CancellationToken cancellationToken);
116protected abstract bool IsWhitespace(SyntaxTrivia trivia);
121protected abstract bool IsEndOfLine(SyntaxTrivia trivia);
126protected abstract bool LineContinuationFollowedByWhitespaceComment(SyntaxTrivia previousTrivia, SyntaxTrivia nextTrivia);
133protected abstract bool IsVisualBasicComment(SyntaxTrivia trivia);
169protected abstract SyntaxTrivia CreateWhitespace(string text);
174protected abstract SyntaxTrivia CreateEndOfLine();
179protected abstract LineColumnRule GetLineColumnRuleBetween(SyntaxTrivia trivia1, LineColumnDelta existingWhitespaceBetween, bool implicitLineBreak, SyntaxTrivia trivia2, CancellationToken cancellationToken);
184protected abstract LineColumnDelta Format(LineColumn lineColumn, SyntaxTrivia trivia, ArrayBuilder<SyntaxTrivia> changes, CancellationToken cancellationToken);
189protected abstract LineColumnDelta Format(LineColumn lineColumn, SyntaxTrivia trivia, ArrayBuilder<TextChange> changes, CancellationToken cancellationToken);
194protected abstract bool ContainsImplicitLineBreak(SyntaxTrivia trivia);
239using var _ = ArrayBuilder<SyntaxTrivia>.GetInstance(out var triviaList);
259private static void AddRange(ArrayBuilder<SyntaxTrivia> result, SyntaxTriviaList triviaList)
261foreach (var trivia in triviaList)
288var previousWhitespaceTrivia = default(SyntaxTrivia);
289var previousTrivia = default(SyntaxTrivia);
296SyntaxTrivia trivia;
372SyntaxTrivia trivia1,
374SyntaxTrivia trivia2,
396private LineColumnRule GetOverallLineColumnRuleBetween(SyntaxTrivia trivia1, LineColumnDelta existingWhitespaceBetween, bool implicitLineBreak, SyntaxTrivia trivia2, CancellationToken cancellationToken)
463private void GetTokensAtEdgeOfStructureTrivia(SyntaxTrivia trivia1, SyntaxTrivia trivia2, out SyntaxToken token1, out SyntaxToken token2)
543LineColumn lineColumnBeforeTrivia1, SyntaxTrivia trivia1, LineColumn lineColumnAfterTrivia1, LineColumnDelta existingWhitespaceBetween, SyntaxTrivia trivia2, LineColumnRule rule)
565LineColumn lineColumnBeforeTrivia1, LineColumn lineColumnAfterTrivia1, LineColumnDelta existingWhitespaceBetween, SyntaxTrivia trivia2, LineColumnRule rule)
624private void AddExtraLines(int linesBetweenTokens, ArrayBuilder<SyntaxTrivia> changes)
628using var _ = ArrayBuilder<SyntaxTrivia>.GetInstance(out var lineBreaks);
641private int GetInsertionIndex(ArrayBuilder<SyntaxTrivia> changes)
757ArrayBuilder<SyntaxTrivia> changes)
766ArrayBuilder<SyntaxTrivia> changes)
831private TextSpan GetTextSpan(SyntaxTrivia trivia1, SyntaxTrivia trivia2)
846private bool IsWhitespaceOrEndOfLine(SyntaxTrivia trivia)
851SyntaxTrivia previousTrivia,
852SyntaxTrivia trivia1,
854SyntaxTrivia trivia2)
903protected LineColumn GetLineColumn(LineColumn lineColumn, SyntaxTrivia trivia)
910protected LineColumnDelta GetLineColumnDelta(LineColumn lineColumn, SyntaxTrivia trivia)
935protected int GetExistingIndentation(SyntaxTrivia trivia)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\FileBannerFacts\AbstractFileBannerFacts.cs (21)
19private readonly Matcher<SyntaxTrivia> _oneOrMoreBlankLines;
24private readonly Matcher<SyntaxTrivia> _bannerMatcher;
29private readonly Matcher<SyntaxTrivia> _fileBannerMatcher;
34Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsWhitespaceTrivia, "\\b"));
35var endOfLine = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsEndOfLineTrivia, "\\n");
38var shebangComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsShebangDirectiveTrivia, "#!");
39var singleLineComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsSingleLineCommentTrivia, "//");
40var multiLineComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsMultiLineCommentTrivia, "/**/");
41var singleLineDocumentationComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsSingleLineDocCommentTrivia, "///");
42var multiLineDocumentationComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsMultiLineDocCommentTrivia, "/** */");
61public abstract SyntaxTrivia CreateTrivia(SyntaxTrivia trivia, string text);
66public ImmutableArray<SyntaxTrivia> GetLeadingBlankLines(SyntaxNode node)
69public ImmutableArray<SyntaxTrivia> GetLeadingBlankLines<TSyntaxNode>(TSyntaxNode node)
83TSyntaxNode node, out ImmutableArray<SyntaxTrivia> strippedTrivia)
86var leadingTriviaToKeep = new List<SyntaxTrivia>(node.GetLeadingTrivia());
96public ImmutableArray<SyntaxTrivia> GetLeadingBannerAndPreprocessorDirectives<TSyntaxNode>(TSyntaxNode node)
111TSyntaxNode node, out ImmutableArray<SyntaxTrivia> strippedTrivia)
125List<SyntaxTrivia> leadingTriviaToStrip, leadingTriviaToKeep;
166public ImmutableArray<SyntaxTrivia> GetFileBanner(SyntaxNode root)
172public ImmutableArray<SyntaxTrivia> GetFileBanner(SyntaxToken firstToken)
Microsoft.Gen.Logging (1)
Microsoft.VisualStudio.LanguageServices (1)
Microsoft.VisualStudio.LanguageServices.CSharp (10)
Microsoft.VisualStudio.LanguageServices.VisualBasic (4)
Roslyn.Diagnostics.Analyzers (190)
src\Compilers\Core\Portable\SourceGeneration\GeneratedCodeUtilities.cs (6)
49SyntaxTree tree, Func<SyntaxTrivia, bool> isComment, CancellationToken cancellationToken)
55internal static bool IsGeneratedCode(string? filePath, SyntaxNode root, Func<SyntaxTrivia, bool> isComment)
88private static bool BeginsWithAutoGeneratedComment(SyntaxNode root, Func<SyntaxTrivia, bool> isComment)
94foreach (var trivia in leadingTrivia)
118SyntaxTree tree, Func<SyntaxTrivia, bool> isComment, CancellationToken cancellationToken)
125foreach (var trivia in leadingTrivia)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SyntaxNodeExtensions.cs (26)
376IEnumerable<SyntaxTrivia> trivia,
377Func<SyntaxTrivia, SyntaxTrivia, CancellationToken, Task<SyntaxTrivia>> computeReplacementAsync,
393IEnumerable<SyntaxTrivia>? trivia,
394Func<SyntaxTrivia, SyntaxTrivia, CancellationToken, Task<SyntaxTrivia>>? computeReplacementTriviaAsync,
405var triviaReplacements = new Dictionary<SyntaxTrivia, SyntaxTrivia>();
451else if (triviaToReplace.TryGetValue(span, out var currentTrivia))
453var original = (SyntaxTrivia?)retryAnnotations.GetAnnotations(currentTrivia).SingleOrDefault() ?? currentTrivia;
454var newTrivia = await computeReplacementTriviaAsync!(original, currentTrivia, cancellationToken).ConfigureAwait(false);
498if (!triviaReplacements.TryGetValue(original, out var replaced))
547foreach (var trivia in triviaList)
577foreach (var trivia in triviaList.Reverse())
690params SyntaxTrivia[] trivia) where T : SyntaxNode
697return node.WithPrependedLeadingTrivia((IEnumerable<SyntaxTrivia>)trivia);
714IEnumerable<SyntaxTrivia> trivia) where T : SyntaxNode
724params SyntaxTrivia[] trivia) where T : SyntaxNode
731return node.WithAppendedTrailingTrivia((IEnumerable<SyntaxTrivia>)trivia);
748IEnumerable<SyntaxTrivia> trivia) where T : SyntaxNode
758IEnumerable<SyntaxTrivia> leadingTrivia,
759IEnumerable<SyntaxTrivia> trailingTrivia) where T : SyntaxNode
874foreach (var trivia in token.LeadingTrivia)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\TriviaEngine\AbstractTriviaFormatter.cs (45)
40private delegate LineColumnDelta Formatter<T>(LineColumn lineColumn, SyntaxTrivia trivia, ArrayBuilder<T> changes, CancellationToken cancellationToken);
116protected abstract bool IsWhitespace(SyntaxTrivia trivia);
121protected abstract bool IsEndOfLine(SyntaxTrivia trivia);
126protected abstract bool LineContinuationFollowedByWhitespaceComment(SyntaxTrivia previousTrivia, SyntaxTrivia nextTrivia);
133protected abstract bool IsVisualBasicComment(SyntaxTrivia trivia);
169protected abstract SyntaxTrivia CreateWhitespace(string text);
174protected abstract SyntaxTrivia CreateEndOfLine();
179protected abstract LineColumnRule GetLineColumnRuleBetween(SyntaxTrivia trivia1, LineColumnDelta existingWhitespaceBetween, bool implicitLineBreak, SyntaxTrivia trivia2, CancellationToken cancellationToken);
184protected abstract LineColumnDelta Format(LineColumn lineColumn, SyntaxTrivia trivia, ArrayBuilder<SyntaxTrivia> changes, CancellationToken cancellationToken);
189protected abstract LineColumnDelta Format(LineColumn lineColumn, SyntaxTrivia trivia, ArrayBuilder<TextChange> changes, CancellationToken cancellationToken);
194protected abstract bool ContainsImplicitLineBreak(SyntaxTrivia trivia);
239using var _ = ArrayBuilder<SyntaxTrivia>.GetInstance(out var triviaList);
259private static void AddRange(ArrayBuilder<SyntaxTrivia> result, SyntaxTriviaList triviaList)
261foreach (var trivia in triviaList)
288var previousWhitespaceTrivia = default(SyntaxTrivia);
289var previousTrivia = default(SyntaxTrivia);
296SyntaxTrivia trivia;
372SyntaxTrivia trivia1,
374SyntaxTrivia trivia2,
396private LineColumnRule GetOverallLineColumnRuleBetween(SyntaxTrivia trivia1, LineColumnDelta existingWhitespaceBetween, bool implicitLineBreak, SyntaxTrivia trivia2, CancellationToken cancellationToken)
463private void GetTokensAtEdgeOfStructureTrivia(SyntaxTrivia trivia1, SyntaxTrivia trivia2, out SyntaxToken token1, out SyntaxToken token2)
543LineColumn lineColumnBeforeTrivia1, SyntaxTrivia trivia1, LineColumn lineColumnAfterTrivia1, LineColumnDelta existingWhitespaceBetween, SyntaxTrivia trivia2, LineColumnRule rule)
565LineColumn lineColumnBeforeTrivia1, LineColumn lineColumnAfterTrivia1, LineColumnDelta existingWhitespaceBetween, SyntaxTrivia trivia2, LineColumnRule rule)
624private void AddExtraLines(int linesBetweenTokens, ArrayBuilder<SyntaxTrivia> changes)
628using var _ = ArrayBuilder<SyntaxTrivia>.GetInstance(out var lineBreaks);
641private int GetInsertionIndex(ArrayBuilder<SyntaxTrivia> changes)
757ArrayBuilder<SyntaxTrivia> changes)
766ArrayBuilder<SyntaxTrivia> changes)
831private TextSpan GetTextSpan(SyntaxTrivia trivia1, SyntaxTrivia trivia2)
846private bool IsWhitespaceOrEndOfLine(SyntaxTrivia trivia)
851SyntaxTrivia previousTrivia,
852SyntaxTrivia trivia1,
854SyntaxTrivia trivia2)
903protected LineColumn GetLineColumn(LineColumn lineColumn, SyntaxTrivia trivia)
910protected LineColumnDelta GetLineColumnDelta(LineColumn lineColumn, SyntaxTrivia trivia)
935protected int GetExistingIndentation(SyntaxTrivia trivia)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\FileBannerFacts\AbstractFileBannerFacts.cs (21)
19private readonly Matcher<SyntaxTrivia> _oneOrMoreBlankLines;
24private readonly Matcher<SyntaxTrivia> _bannerMatcher;
29private readonly Matcher<SyntaxTrivia> _fileBannerMatcher;
34Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsWhitespaceTrivia, "\\b"));
35var endOfLine = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsEndOfLineTrivia, "\\n");
38var shebangComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsShebangDirectiveTrivia, "#!");
39var singleLineComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsSingleLineCommentTrivia, "//");
40var multiLineComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsMultiLineCommentTrivia, "/**/");
41var singleLineDocumentationComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsSingleLineDocCommentTrivia, "///");
42var multiLineDocumentationComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsMultiLineDocCommentTrivia, "/** */");
61public abstract SyntaxTrivia CreateTrivia(SyntaxTrivia trivia, string text);
66public ImmutableArray<SyntaxTrivia> GetLeadingBlankLines(SyntaxNode node)
69public ImmutableArray<SyntaxTrivia> GetLeadingBlankLines<TSyntaxNode>(TSyntaxNode node)
83TSyntaxNode node, out ImmutableArray<SyntaxTrivia> strippedTrivia)
86var leadingTriviaToKeep = new List<SyntaxTrivia>(node.GetLeadingTrivia());
96public ImmutableArray<SyntaxTrivia> GetLeadingBannerAndPreprocessorDirectives<TSyntaxNode>(TSyntaxNode node)
111TSyntaxNode node, out ImmutableArray<SyntaxTrivia> strippedTrivia)
125List<SyntaxTrivia> leadingTriviaToStrip, leadingTriviaToKeep;
166public ImmutableArray<SyntaxTrivia> GetFileBanner(SyntaxNode root)
172public ImmutableArray<SyntaxTrivia> GetFileBanner(SyntaxToken firstToken)
Roslyn.Diagnostics.CSharp.Analyzers (147)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Engine\Trivia\CSharpTriviaFormatter.cs (34)
19private SyntaxTrivia _newLine;
36protected override bool IsWhitespace(SyntaxTrivia trivia)
39protected override bool IsEndOfLine(SyntaxTrivia trivia)
48protected override SyntaxTrivia CreateWhitespace(string text)
51protected override SyntaxTrivia CreateEndOfLine()
61protected override LineColumnRule GetLineColumnRuleBetween(SyntaxTrivia trivia1, LineColumnDelta existingWhitespaceBetween, bool implicitLineBreak, SyntaxTrivia trivia2, CancellationToken cancellationToken)
107var previous = trivia2;
176protected override bool ContainsImplicitLineBreak(SyntaxTrivia trivia)
190private bool IsStartOrEndOfFile(SyntaxTrivia trivia1, SyntaxTrivia trivia2)
204private static bool IsMultilineComment(SyntaxTrivia trivia1)
207private bool TryFormatMultiLineCommentTrivia(LineColumn lineColumn, SyntaxTrivia trivia, out SyntaxTrivia result)
229var firstTrivia = multilineCommentTrivia.First();
240LineColumn lineColumn, SyntaxTrivia trivia, ArrayBuilder<SyntaxTrivia> changes,
248if (TryFormatMultiLineCommentTrivia(lineColumn, trivia, out var newComment))
259LineColumn lineColumn, SyntaxTrivia trivia, ArrayBuilder<TextChange> changes, CancellationToken cancellationToken)
266if (TryFormatMultiLineCommentTrivia(lineColumn, trivia, out var newComment))
275private SyntaxTrivia FormatDocumentComment(LineColumn lineColumn, SyntaxTrivia trivia)
299var newTrivia = singleLineDocumentationCommentExteriorCommentRewriter.VisitTrivia(trivia);
315var newMultiLineTrivia = multiLineDocumentationCommentExteriorCommentRewriter.VisitTrivia(trivia);
321LineColumn lineColumn, SyntaxTrivia trivia, ArrayBuilder<SyntaxTrivia> changes, CancellationToken cancellationToken)
337var formattedTrivia = SyntaxFactory.Trivia((StructuredTriviaSyntax)result.GetFormattedRoot(cancellationToken));
343var docComment = FormatDocumentComment(lineColumn, trivia);
350LineColumn lineColumn, SyntaxTrivia trivia, ArrayBuilder<TextChange> changes, CancellationToken cancellationToken)
371var formattedTrivia = SyntaxFactory.Trivia((StructuredTriviaSyntax)result.GetFormattedRoot(cancellationToken));
375var docComment = FormatDocumentComment(lineColumn, trivia);
384protected override bool LineContinuationFollowedByWhitespaceComment(SyntaxTrivia trivia, SyntaxTrivia nextTrivia)
393protected override bool IsVisualBasicComment(SyntaxTrivia trivia)
Roslyn.Diagnostics.VisualBasic.Analyzers (57)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Formatting\Engine\Trivia\VisualBasicTriviaFormatter.vb (24)
16Private ReadOnly _lineContinuationTrivia As SyntaxTrivia = SyntaxFactory.LineContinuationTrivia("_")
17Private _newLine As SyntaxTrivia
35Protected Overrides Function IsWhitespace(trivia As SyntaxTrivia) As Boolean
39Protected Overrides Function IsEndOfLine(trivia As SyntaxTrivia) As Boolean
51Protected Overrides Function CreateWhitespace(text As String) As SyntaxTrivia
55Protected Overrides Function CreateEndOfLine() As SyntaxTrivia
63Protected Overrides Function GetLineColumnRuleBetween(trivia1 As SyntaxTrivia, existingWhitespaceBetween As LineColumnDelta, implicitLineBreak As Boolean, trivia2 As SyntaxTrivia, cancellationToken As CancellationToken) As LineColumnRule
150Protected Overrides Function ContainsImplicitLineBreak(syntaxTrivia As SyntaxTrivia) As Boolean
154Private Function IsStartOrEndOfFile(trivia1 As SyntaxTrivia, trivia2 As SyntaxTrivia) As Boolean
159trivia As SyntaxTrivia,
160changes As ArrayBuilder(Of SyntaxTrivia),
175trivia As SyntaxTrivia,
195Private Function FormatLineContinuationTrivia(trivia As SyntaxTrivia) As SyntaxTrivia
204trivia As SyntaxTrivia,
205changes As ArrayBuilder(Of SyntaxTrivia),
231trivia As SyntaxTrivia,
263Private Function FormatDocumentComment(lineColumn As LineColumn, trivia As SyntaxTrivia) As SyntaxTrivia
301Protected Overrides Function LineContinuationFollowedByWhitespaceComment(trivia As SyntaxTrivia, nextTrivia As SyntaxTrivia) As Boolean
305Protected Overrides Function IsVisualBasicComment(trivia As SyntaxTrivia) As Boolean
Test.Utilities (174)
src\Compilers\Core\Portable\SourceGeneration\GeneratedCodeUtilities.cs (6)
49SyntaxTree tree, Func<SyntaxTrivia, bool> isComment, CancellationToken cancellationToken)
55internal static bool IsGeneratedCode(string? filePath, SyntaxNode root, Func<SyntaxTrivia, bool> isComment)
88private static bool BeginsWithAutoGeneratedComment(SyntaxNode root, Func<SyntaxTrivia, bool> isComment)
94foreach (var trivia in leadingTrivia)
118SyntaxTree tree, Func<SyntaxTrivia, bool> isComment, CancellationToken cancellationToken)
125foreach (var trivia in leadingTrivia)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SyntaxNodeExtensions.cs (26)
376IEnumerable<SyntaxTrivia> trivia,
377Func<SyntaxTrivia, SyntaxTrivia, CancellationToken, Task<SyntaxTrivia>> computeReplacementAsync,
393IEnumerable<SyntaxTrivia>? trivia,
394Func<SyntaxTrivia, SyntaxTrivia, CancellationToken, Task<SyntaxTrivia>>? computeReplacementTriviaAsync,
405var triviaReplacements = new Dictionary<SyntaxTrivia, SyntaxTrivia>();
451else if (triviaToReplace.TryGetValue(span, out var currentTrivia))
453var original = (SyntaxTrivia?)retryAnnotations.GetAnnotations(currentTrivia).SingleOrDefault() ?? currentTrivia;
454var newTrivia = await computeReplacementTriviaAsync!(original, currentTrivia, cancellationToken).ConfigureAwait(false);
498if (!triviaReplacements.TryGetValue(original, out var replaced))
547foreach (var trivia in triviaList)
577foreach (var trivia in triviaList.Reverse())
690params SyntaxTrivia[] trivia) where T : SyntaxNode
697return node.WithPrependedLeadingTrivia((IEnumerable<SyntaxTrivia>)trivia);
714IEnumerable<SyntaxTrivia> trivia) where T : SyntaxNode
724params SyntaxTrivia[] trivia) where T : SyntaxNode
731return node.WithAppendedTrailingTrivia((IEnumerable<SyntaxTrivia>)trivia);
748IEnumerable<SyntaxTrivia> trivia) where T : SyntaxNode
758IEnumerable<SyntaxTrivia> leadingTrivia,
759IEnumerable<SyntaxTrivia> trailingTrivia) where T : SyntaxNode
874foreach (var trivia in token.LeadingTrivia)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\TriviaEngine\AbstractTriviaFormatter.cs (45)
40private delegate LineColumnDelta Formatter<T>(LineColumn lineColumn, SyntaxTrivia trivia, ArrayBuilder<T> changes, CancellationToken cancellationToken);
116protected abstract bool IsWhitespace(SyntaxTrivia trivia);
121protected abstract bool IsEndOfLine(SyntaxTrivia trivia);
126protected abstract bool LineContinuationFollowedByWhitespaceComment(SyntaxTrivia previousTrivia, SyntaxTrivia nextTrivia);
133protected abstract bool IsVisualBasicComment(SyntaxTrivia trivia);
169protected abstract SyntaxTrivia CreateWhitespace(string text);
174protected abstract SyntaxTrivia CreateEndOfLine();
179protected abstract LineColumnRule GetLineColumnRuleBetween(SyntaxTrivia trivia1, LineColumnDelta existingWhitespaceBetween, bool implicitLineBreak, SyntaxTrivia trivia2, CancellationToken cancellationToken);
184protected abstract LineColumnDelta Format(LineColumn lineColumn, SyntaxTrivia trivia, ArrayBuilder<SyntaxTrivia> changes, CancellationToken cancellationToken);
189protected abstract LineColumnDelta Format(LineColumn lineColumn, SyntaxTrivia trivia, ArrayBuilder<TextChange> changes, CancellationToken cancellationToken);
194protected abstract bool ContainsImplicitLineBreak(SyntaxTrivia trivia);
239using var _ = ArrayBuilder<SyntaxTrivia>.GetInstance(out var triviaList);
259private static void AddRange(ArrayBuilder<SyntaxTrivia> result, SyntaxTriviaList triviaList)
261foreach (var trivia in triviaList)
288var previousWhitespaceTrivia = default(SyntaxTrivia);
289var previousTrivia = default(SyntaxTrivia);
296SyntaxTrivia trivia;
372SyntaxTrivia trivia1,
374SyntaxTrivia trivia2,
396private LineColumnRule GetOverallLineColumnRuleBetween(SyntaxTrivia trivia1, LineColumnDelta existingWhitespaceBetween, bool implicitLineBreak, SyntaxTrivia trivia2, CancellationToken cancellationToken)
463private void GetTokensAtEdgeOfStructureTrivia(SyntaxTrivia trivia1, SyntaxTrivia trivia2, out SyntaxToken token1, out SyntaxToken token2)
543LineColumn lineColumnBeforeTrivia1, SyntaxTrivia trivia1, LineColumn lineColumnAfterTrivia1, LineColumnDelta existingWhitespaceBetween, SyntaxTrivia trivia2, LineColumnRule rule)
565LineColumn lineColumnBeforeTrivia1, LineColumn lineColumnAfterTrivia1, LineColumnDelta existingWhitespaceBetween, SyntaxTrivia trivia2, LineColumnRule rule)
624private void AddExtraLines(int linesBetweenTokens, ArrayBuilder<SyntaxTrivia> changes)
628using var _ = ArrayBuilder<SyntaxTrivia>.GetInstance(out var lineBreaks);
641private int GetInsertionIndex(ArrayBuilder<SyntaxTrivia> changes)
757ArrayBuilder<SyntaxTrivia> changes)
766ArrayBuilder<SyntaxTrivia> changes)
831private TextSpan GetTextSpan(SyntaxTrivia trivia1, SyntaxTrivia trivia2)
846private bool IsWhitespaceOrEndOfLine(SyntaxTrivia trivia)
851SyntaxTrivia previousTrivia,
852SyntaxTrivia trivia1,
854SyntaxTrivia trivia2)
903protected LineColumn GetLineColumn(LineColumn lineColumn, SyntaxTrivia trivia)
910protected LineColumnDelta GetLineColumnDelta(LineColumn lineColumn, SyntaxTrivia trivia)
935protected int GetExistingIndentation(SyntaxTrivia trivia)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\FileBannerFacts\AbstractFileBannerFacts.cs (21)
19private readonly Matcher<SyntaxTrivia> _oneOrMoreBlankLines;
24private readonly Matcher<SyntaxTrivia> _bannerMatcher;
29private readonly Matcher<SyntaxTrivia> _fileBannerMatcher;
34Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsWhitespaceTrivia, "\\b"));
35var endOfLine = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsEndOfLineTrivia, "\\n");
38var shebangComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsShebangDirectiveTrivia, "#!");
39var singleLineComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsSingleLineCommentTrivia, "//");
40var multiLineComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsMultiLineCommentTrivia, "/**/");
41var singleLineDocumentationComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsSingleLineDocCommentTrivia, "///");
42var multiLineDocumentationComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsMultiLineDocCommentTrivia, "/** */");
61public abstract SyntaxTrivia CreateTrivia(SyntaxTrivia trivia, string text);
66public ImmutableArray<SyntaxTrivia> GetLeadingBlankLines(SyntaxNode node)
69public ImmutableArray<SyntaxTrivia> GetLeadingBlankLines<TSyntaxNode>(TSyntaxNode node)
83TSyntaxNode node, out ImmutableArray<SyntaxTrivia> strippedTrivia)
86var leadingTriviaToKeep = new List<SyntaxTrivia>(node.GetLeadingTrivia());
96public ImmutableArray<SyntaxTrivia> GetLeadingBannerAndPreprocessorDirectives<TSyntaxNode>(TSyntaxNode node)
111TSyntaxNode node, out ImmutableArray<SyntaxTrivia> strippedTrivia)
125List<SyntaxTrivia> leadingTriviaToStrip, leadingTriviaToKeep;
166public ImmutableArray<SyntaxTrivia> GetFileBanner(SyntaxNode root)
172public ImmutableArray<SyntaxTrivia> GetFileBanner(SyntaxToken firstToken)
Text.Analyzers (190)
src\Compilers\Core\Portable\SourceGeneration\GeneratedCodeUtilities.cs (6)
49SyntaxTree tree, Func<SyntaxTrivia, bool> isComment, CancellationToken cancellationToken)
55internal static bool IsGeneratedCode(string? filePath, SyntaxNode root, Func<SyntaxTrivia, bool> isComment)
88private static bool BeginsWithAutoGeneratedComment(SyntaxNode root, Func<SyntaxTrivia, bool> isComment)
94foreach (var trivia in leadingTrivia)
118SyntaxTree tree, Func<SyntaxTrivia, bool> isComment, CancellationToken cancellationToken)
125foreach (var trivia in leadingTrivia)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SyntaxNodeExtensions.cs (26)
376IEnumerable<SyntaxTrivia> trivia,
377Func<SyntaxTrivia, SyntaxTrivia, CancellationToken, Task<SyntaxTrivia>> computeReplacementAsync,
393IEnumerable<SyntaxTrivia>? trivia,
394Func<SyntaxTrivia, SyntaxTrivia, CancellationToken, Task<SyntaxTrivia>>? computeReplacementTriviaAsync,
405var triviaReplacements = new Dictionary<SyntaxTrivia, SyntaxTrivia>();
451else if (triviaToReplace.TryGetValue(span, out var currentTrivia))
453var original = (SyntaxTrivia?)retryAnnotations.GetAnnotations(currentTrivia).SingleOrDefault() ?? currentTrivia;
454var newTrivia = await computeReplacementTriviaAsync!(original, currentTrivia, cancellationToken).ConfigureAwait(false);
498if (!triviaReplacements.TryGetValue(original, out var replaced))
547foreach (var trivia in triviaList)
577foreach (var trivia in triviaList.Reverse())
690params SyntaxTrivia[] trivia) where T : SyntaxNode
697return node.WithPrependedLeadingTrivia((IEnumerable<SyntaxTrivia>)trivia);
714IEnumerable<SyntaxTrivia> trivia) where T : SyntaxNode
724params SyntaxTrivia[] trivia) where T : SyntaxNode
731return node.WithAppendedTrailingTrivia((IEnumerable<SyntaxTrivia>)trivia);
748IEnumerable<SyntaxTrivia> trivia) where T : SyntaxNode
758IEnumerable<SyntaxTrivia> leadingTrivia,
759IEnumerable<SyntaxTrivia> trailingTrivia) where T : SyntaxNode
874foreach (var trivia in token.LeadingTrivia)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\TriviaEngine\AbstractTriviaFormatter.cs (45)
40private delegate LineColumnDelta Formatter<T>(LineColumn lineColumn, SyntaxTrivia trivia, ArrayBuilder<T> changes, CancellationToken cancellationToken);
116protected abstract bool IsWhitespace(SyntaxTrivia trivia);
121protected abstract bool IsEndOfLine(SyntaxTrivia trivia);
126protected abstract bool LineContinuationFollowedByWhitespaceComment(SyntaxTrivia previousTrivia, SyntaxTrivia nextTrivia);
133protected abstract bool IsVisualBasicComment(SyntaxTrivia trivia);
169protected abstract SyntaxTrivia CreateWhitespace(string text);
174protected abstract SyntaxTrivia CreateEndOfLine();
179protected abstract LineColumnRule GetLineColumnRuleBetween(SyntaxTrivia trivia1, LineColumnDelta existingWhitespaceBetween, bool implicitLineBreak, SyntaxTrivia trivia2, CancellationToken cancellationToken);
184protected abstract LineColumnDelta Format(LineColumn lineColumn, SyntaxTrivia trivia, ArrayBuilder<SyntaxTrivia> changes, CancellationToken cancellationToken);
189protected abstract LineColumnDelta Format(LineColumn lineColumn, SyntaxTrivia trivia, ArrayBuilder<TextChange> changes, CancellationToken cancellationToken);
194protected abstract bool ContainsImplicitLineBreak(SyntaxTrivia trivia);
239using var _ = ArrayBuilder<SyntaxTrivia>.GetInstance(out var triviaList);
259private static void AddRange(ArrayBuilder<SyntaxTrivia> result, SyntaxTriviaList triviaList)
261foreach (var trivia in triviaList)
288var previousWhitespaceTrivia = default(SyntaxTrivia);
289var previousTrivia = default(SyntaxTrivia);
296SyntaxTrivia trivia;
372SyntaxTrivia trivia1,
374SyntaxTrivia trivia2,
396private LineColumnRule GetOverallLineColumnRuleBetween(SyntaxTrivia trivia1, LineColumnDelta existingWhitespaceBetween, bool implicitLineBreak, SyntaxTrivia trivia2, CancellationToken cancellationToken)
463private void GetTokensAtEdgeOfStructureTrivia(SyntaxTrivia trivia1, SyntaxTrivia trivia2, out SyntaxToken token1, out SyntaxToken token2)
543LineColumn lineColumnBeforeTrivia1, SyntaxTrivia trivia1, LineColumn lineColumnAfterTrivia1, LineColumnDelta existingWhitespaceBetween, SyntaxTrivia trivia2, LineColumnRule rule)
565LineColumn lineColumnBeforeTrivia1, LineColumn lineColumnAfterTrivia1, LineColumnDelta existingWhitespaceBetween, SyntaxTrivia trivia2, LineColumnRule rule)
624private void AddExtraLines(int linesBetweenTokens, ArrayBuilder<SyntaxTrivia> changes)
628using var _ = ArrayBuilder<SyntaxTrivia>.GetInstance(out var lineBreaks);
641private int GetInsertionIndex(ArrayBuilder<SyntaxTrivia> changes)
757ArrayBuilder<SyntaxTrivia> changes)
766ArrayBuilder<SyntaxTrivia> changes)
831private TextSpan GetTextSpan(SyntaxTrivia trivia1, SyntaxTrivia trivia2)
846private bool IsWhitespaceOrEndOfLine(SyntaxTrivia trivia)
851SyntaxTrivia previousTrivia,
852SyntaxTrivia trivia1,
854SyntaxTrivia trivia2)
903protected LineColumn GetLineColumn(LineColumn lineColumn, SyntaxTrivia trivia)
910protected LineColumnDelta GetLineColumnDelta(LineColumn lineColumn, SyntaxTrivia trivia)
935protected int GetExistingIndentation(SyntaxTrivia trivia)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\FileBannerFacts\AbstractFileBannerFacts.cs (21)
19private readonly Matcher<SyntaxTrivia> _oneOrMoreBlankLines;
24private readonly Matcher<SyntaxTrivia> _bannerMatcher;
29private readonly Matcher<SyntaxTrivia> _fileBannerMatcher;
34Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsWhitespaceTrivia, "\\b"));
35var endOfLine = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsEndOfLineTrivia, "\\n");
38var shebangComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsShebangDirectiveTrivia, "#!");
39var singleLineComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsSingleLineCommentTrivia, "//");
40var multiLineComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsMultiLineCommentTrivia, "/**/");
41var singleLineDocumentationComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsSingleLineDocCommentTrivia, "///");
42var multiLineDocumentationComment = Matcher.Single<SyntaxTrivia>(this.SyntaxFacts.IsMultiLineDocCommentTrivia, "/** */");
61public abstract SyntaxTrivia CreateTrivia(SyntaxTrivia trivia, string text);
66public ImmutableArray<SyntaxTrivia> GetLeadingBlankLines(SyntaxNode node)
69public ImmutableArray<SyntaxTrivia> GetLeadingBlankLines<TSyntaxNode>(TSyntaxNode node)
83TSyntaxNode node, out ImmutableArray<SyntaxTrivia> strippedTrivia)
86var leadingTriviaToKeep = new List<SyntaxTrivia>(node.GetLeadingTrivia());
96public ImmutableArray<SyntaxTrivia> GetLeadingBannerAndPreprocessorDirectives<TSyntaxNode>(TSyntaxNode node)
111TSyntaxNode node, out ImmutableArray<SyntaxTrivia> strippedTrivia)
125List<SyntaxTrivia> leadingTriviaToStrip, leadingTriviaToKeep;
166public ImmutableArray<SyntaxTrivia> GetFileBanner(SyntaxNode root)
172public ImmutableArray<SyntaxTrivia> GetFileBanner(SyntaxToken firstToken)