src\roslyn\src\Compilers\Core\Portable\Text\TextChangeRangeExtensions.cs (4)
225addAndAdjustOldDelta(builder, ref oldDelta, new TextChangeRange(new TextSpan(oldChange.Span.Start, oldChangeLeadingDeletion), oldChangeLeadingInsertion));
226oldChange = new TextChangeRange(new TextSpan(newChange.SpanStart - oldDelta, oldChange.Span.Length - oldChangeLeadingDeletion), oldChange.NewLength - oldChangeLeadingInsertion);
380add(builder, new TextChangeRange(new TextSpan(newChange.SpanStart - oldDelta, newChange.SpanLength), newChange.NewLength));
391builder[^1] = new TextChangeRange(new TextSpan(last.Span.Start, last.Span.Length + change.Span.Length), last.NewLength + change.NewLength);
Navigation\IDocumentNavigationService.cs (2)
37=> CanNavigateToSpanAsync(workspace, documentId, new TextSpan(position, 0), allowInvalidSpan: allowInvalidPosition, cancellationToken);
43=> GetLocationForSpanAsync(workspace, documentId, new TextSpan(position, 0), allowInvalidSpan: allowInvalidPosition, cancellationToken);
src\roslyn\src\Analyzers\Core\Analyzers\ValidateFormatString\AbstractValidateFormatStringDiagnosticAnalyzer.cs (1)
354new Text.TextSpan(
src\roslyn\src\Compilers\Core\Portable\Text\TextChangeRangeExtensions.cs (4)
225addAndAdjustOldDelta(builder, ref oldDelta, new TextChangeRange(new TextSpan(oldChange.Span.Start, oldChangeLeadingDeletion), oldChangeLeadingInsertion));
226oldChange = new TextChangeRange(new TextSpan(newChange.SpanStart - oldDelta, oldChange.Span.Length - oldChangeLeadingDeletion), oldChange.NewLength - oldChangeLeadingInsertion);
380add(builder, new TextChangeRange(new TextSpan(newChange.SpanStart - oldDelta, newChange.SpanLength), newChange.NewLength));
391builder[^1] = new TextChangeRange(new TextSpan(last.Span.Start, last.Span.Length + change.Span.Length), last.NewLength + change.NewLength);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Collections\NormalizedTextSpanCollection.cs (40)
14internal sealed class NormalizedTextSpanCollection : ReadOnlyCollection<TextSpan>
29public NormalizedTextSpanCollection(TextSpan span)
42public NormalizedTextSpanCollection(IEnumerable<TextSpan> spans)
93var span1 = left[index1];
94var span2 = right[index2];
122spans.Add(TextSpan.FromBounds(start, end));
161var span1 = left[index1];
162var span2 = right[index2];
221var span1 = left[index1];
222var span2 = right[index2];
283var span1 = left[index1];
284var span2 = right[index2];
296spans.Add(TextSpan.FromBounds(Math.Max(lastEnd, span1.Start), span1.End));
307spans.Add(TextSpan.FromBounds(Math.Max(lastEnd, span1.Start), span2.Start));
333var span1 = left[index1++];
334spans.Add(TextSpan.FromBounds(Math.Max(lastEnd, span1.Start), span1.End));
398var span1 = this[index1];
399var span2 = set[index2];
429public bool OverlapsWith(TextSpan span)
458var span1 = this[index1];
459var span2 = set[index2];
483public bool IntersectsWith(TextSpan span)
506foreach (var s in this)
533foreach (var s in this)
546private static IList<TextSpan> ListFromSpan(TextSpan span)
548IList<TextSpan> list =
564private static void UpdateSpanUnion(TextSpan span, IList<TextSpan> spans, ref int start, ref int end)
568spans.Add(TextSpan.FromBounds(start, end));
585private static IList<TextSpan> NormalizeSpans(IEnumerable<TextSpan> spans)
592var sorted = new List<TextSpan>(spans);
599sorted.Sort(delegate (TextSpan s1, TextSpan s2) { return s1.Start.CompareTo(s2.Start); });
601IList<TextSpan> normalized = new List<TextSpan>(sorted.Count);
611normalized.Add(TextSpan.FromBounds(oldStart, oldEnd));
621normalized.Add(TextSpan.FromBounds(oldStart, oldEnd));
626private sealed class OrderedSpanList : List<TextSpan>
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Diagnostics\IPragmaSuppressionsAnalyzer.cs (1)
24TextSpan? span,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\EmbeddedLanguages\Common\EmbeddedSyntaxTrivia.cs (1)
34public TextSpan GetSpan()
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\AnalysisContextExtensions.cs (13)
13private static bool ShouldAnalyze(TextSpan? contextFilterSpan, TextSpan span)
23public static bool ShouldAnalyzeSpan(this SyntaxTreeAnalysisContext context, TextSpan span)
33public static bool ShouldAnalyzeSpan(this SemanticModelAnalysisContext context, TextSpan span)
43public static bool ShouldAnalyzeSpan(this SymbolStartAnalysisContext context, TextSpan span, SyntaxTree tree)
63public static bool ShouldAnalyzeSpan(this SymbolAnalysisContext context, TextSpan span, SyntaxTree tree)
83public static bool ShouldAnalyzeSpan(this AdditionalFileAnalysisContext context, TextSpan span)
93public static bool ShouldAnalyzeSpan(this OperationBlockStartAnalysisContext context, TextSpan span)
103public static bool ShouldAnalyzeSpan(this OperationBlockAnalysisContext context, TextSpan span)
113public static bool ShouldAnalyzeSpan(this OperationAnalysisContext context, TextSpan span)
123public static bool ShouldAnalyzeSpan(this SyntaxNodeAnalysisContext context, TextSpan span)
133public static bool ShouldAnalyzeSpan<TSytnaxKind>(this CodeBlockStartAnalysisContext<TSytnaxKind> context, TextSpan span) where TSytnaxKind : struct
143public static bool ShouldAnalyzeSpan(this CodeBlockAnalysisContext context, TextSpan span)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SourceTextExtensions_SharedWithCodeStyle.cs (2)
32this SourceText text, TextSpan span, Func<int, CancellationToken, bool> isPositionHidden, CancellationToken cancellationToken)
44this SourceText text, TextSpan span, Func<int, CancellationToken, bool> isPositionHidden,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\TextSpanExtensions.cs (22)
18public static IEnumerable<TextSpan> ToNormalizedSpans(this IEnumerable<TextSpan> spans)
21public static ImmutableArray<TextSpan> ToNormalizedSpans(this ImmutableArray<TextSpan> spans)
24public static TextSpan Collapse(this IEnumerable<TextSpan> spans)
29foreach (var span in spans)
48return TextSpan.FromBounds(start, end);
54public static bool IsAround(this TextSpan span, SyntaxNodeOrToken node) => IsAround(span, node, node);
60public static bool IsAround(this TextSpan span, SyntaxNodeOrToken startNode, SyntaxNodeOrToken endNode)
62var innerSpan = TextSpan.FromBounds(startNode.Span.Start, endNode.Span.End);
63var outerSpan = TextSpan.FromBounds(startNode.FullSpan.Start, endNode.FullSpan.End);
67public static IEnumerable<TextSpan> Subtract(this TextSpan span, TextSpan except)
81yield return TextSpan.FromBounds(span.Start, startSegmentEnd);
85yield return TextSpan.FromBounds(endSegmentStart, span.End);
88public static IEnumerable<TextSpan> Subtract(this IEnumerable<TextSpan> spans, TextSpan except)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\Context\FormattingContext.IndentationData.cs (14)
17private abstract class IndentationData(TextSpan textSpan)
19public TextSpan TextSpan { get; } = textSpan;
22public IndentationData WithTextSpan(TextSpan span)
25protected abstract IndentationData WithTextSpanCore(TextSpan span);
28private sealed class SimpleIndentationData(TextSpan textSpan, int indentation) : IndentationData(textSpan)
32protected override IndentationData WithTextSpanCore(TextSpan span)
56public RelativeIndentationData(FormattingContext formattingContext, int inseparableRegionSpanStart, TextSpan textSpan, IndentBlockOperation operation, Func<FormattingContext, IndentBlockOperation, SyntaxToken> effectiveBaseTokenGetter, Func<FormattingContext, IndentBlockOperation, SyntaxToken, int> indentationDeltaGetter, Func<FormattingContext, SyntaxToken, int> baseIndentationGetter)
67this.InseparableRegionSpan = TextSpan.FromBounds(inseparableRegionSpanStart, textSpan.End);
70private RelativeIndentationData(FormattingContext formattingContext, int inseparableRegionSpanStart, TextSpan textSpan, IndentBlockOperation operation, Func<FormattingContext, IndentBlockOperation, SyntaxToken> effectiveBaseTokenGetter, Func<FormattingContext, IndentBlockOperation, SyntaxToken, int> indentationDeltaGetter, Func<FormattingContext, SyntaxToken, int> baseIndentationGetter, int lazyIndentationDelta)
81this.InseparableRegionSpan = TextSpan.FromBounds(inseparableRegionSpanStart, textSpan.End);
84public TextSpan InseparableRegionSpan { get; }
106protected override IndentationData WithTextSpanCore(TextSpan span)
118public AdjustedIndentationData(TextSpan textSpan, IndentationData baseIndentationData, int adjustment)
141protected override IndentationData WithTextSpanCore(TextSpan span)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\Rules\BaseIndentationFormattingRule.cs (10)
20private readonly TextSpan _span;
22public BaseIndentationFormattingRule(SyntaxNode root, TextSpan span, int baseIndentation, AbstractFormattingRule? vbHelperFormattingRule = null)
130private TextSpan AdjustTextSpan(TextSpan textSpan)
131=> TextSpan.FromBounds(Math.Max(_span.Start, textSpan.Start), Math.Min(_span.End, textSpan.End));
133private static void SetInnermostNodeForSpan(SyntaxNode root, ref TextSpan span, out SyntaxToken token1, out SyntaxToken token2, out SyntaxNode? commonNode)
149private static void GetTokens(SyntaxNode root, TextSpan span, out SyntaxToken token1, out SyntaxToken token2)
168private static TextSpan GetSpanFromTokens(TextSpan span, SyntaxToken token1, SyntaxToken token2)
217return TextSpan.FromBounds(start, end);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\Rules\Operations\FormattingOperations.cs (8)
30=> CreateAnchorIndentationOperation(anchorToken, endToken, TextSpan.FromBounds(anchorToken.Span.End, endToken.Span.End));
35public static AnchorIndentationOperation CreateAnchorIndentationOperation(SyntaxToken anchorToken, SyntaxToken endToken, TextSpan textSpan)
42=> CreateSuppressOperation(startToken, endToken, TextSpan.FromBounds(startToken.SpanStart, endToken.Span.End), option);
47private static SuppressOperation CreateSuppressOperation(SyntaxToken startToken, SyntaxToken endToken, TextSpan textSpan, SuppressOption option)
55var span = CommonFormattingHelpers.GetSpanIncludingTrailingAndLeadingTriviaOfAdjacentTokens(startToken, endToken);
62public static IndentBlockOperation CreateIndentBlockOperation(SyntaxToken startToken, SyntaxToken endToken, TextSpan textSpan, int indentationDelta, IndentBlockOption option)
70var span = CommonFormattingHelpers.GetSpanIncludingTrailingAndLeadingTriviaOfAdjacentTokens(startToken, endToken);
78public static IndentBlockOperation CreateRelativeIndentBlockOperation(SyntaxToken baseToken, SyntaxToken startToken, SyntaxToken endToken, TextSpan textSpan, int indentationDelta, IndentBlockOption option)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\TriviaEngine\AbstractTriviaFormatter.cs (13)
45private delegate void WhitespaceAppender<T>(LineColumn lineColumn, LineColumnDelta delta, TextSpan span, ArrayBuilder<T> changes);
387var span = GetTextSpan(trivia1, trivia2);
499var span = TextSpan.FromBounds(start, end);
715var insertionPoint = GetInsertionSpan(changes);
730private TextSpan GetInsertionSpan(ArrayBuilder<TextChange> changes)
765TextSpan notUsed,
822private TextChange GetWhitespaceTextChange(LineColumn lineColumn, LineColumnDelta delta, TextSpan span)
825private void AddWhitespaceTextChange(LineColumn lineColumn, LineColumnDelta delta, TextSpan span, ArrayBuilder<TextChange> changes)
831private TextSpan GetTextSpan(SyntaxTrivia trivia1, SyntaxTrivia trivia2)
835return TextSpan.FromBounds(this.StartPosition, trivia2.FullSpan.Start);
840return TextSpan.FromBounds(trivia1.FullSpan.End, this.EndPosition);
843return TextSpan.FromBounds(trivia1.FullSpan.End, trivia2.FullSpan.Start);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\NamingStyle.cs (21)
160var spanToCheck = TextSpan.FromBounds(0, name.Length - Suffix.Length);
174private WordSpanEnumerable GetWordSpans(string name, TextSpan nameSpan)
177private static string Substring(string name, TextSpan wordSpan)
180private static readonly Func<string, TextSpan, bool> s_firstCharIsLowerCase = (val, span) => !DoesCharacterHaveCasing(val[span.Start]) || char.IsLower(val[span.Start]);
181private static readonly Func<string, TextSpan, bool> s_firstCharIsUpperCase = (val, span) => !DoesCharacterHaveCasing(val[span.Start]) || char.IsUpper(val[span.Start]);
183private static readonly Func<string, TextSpan, bool> s_wordIsAllUpperCase = (val, span) =>
196private static readonly Func<string, TextSpan, bool> s_wordIsAllLowerCase = (val, span) =>
210string name, TextSpan nameSpan, Func<string, TextSpan, bool> wordCheck,
216foreach (var wordSpan in GetWordSpans(name, nameSpan))
232private bool CheckPascalCase(string name, TextSpan nameSpan, out string reason)
237private bool CheckAllUpper(string name, TextSpan nameSpan, out string reason)
242private bool CheckAllLower(string name, TextSpan nameSpan, out string reason)
248string name, TextSpan nameSpan,
249Func<string, TextSpan, bool> firstWordCheck,
250Func<string, TextSpan, bool> restWordCheck,
260foreach (var wordSpan in GetWordSpans(name, nameSpan))
291private bool CheckCamelCase(string name, TextSpan nameSpan, out string reason)
298private bool CheckFirstUpper(string name, TextSpan nameSpan, out string reason)
406using var parts = TemporaryArray<TextSpan>.Empty;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\RefactoringHelpers\AbstractRefactoringHelpers.cs (10)
39/// Returns unchanged <paramref name="span"/> in case <see cref="TextSpan.IsEmpty"/>.
40/// Returns empty Span with original <see cref="TextSpan.Start"/> in case it contains only whitespace.
42private static TextSpan GetTrimmedTextSpan(SourceText sourceText, TextSpan span)
56return TextSpan.FromBounds(start, end);
60SourceText sourceText, SyntaxNode root, TextSpan selectionRaw, bool allowEmptyNodes, int maxCount, ref TemporaryArray<TSyntaxNode> result, CancellationToken cancellationToken) where TSyntaxNode : SyntaxNode
69var selectionTrimmed = GetTrimmedTextSpan(sourceText, selectionRaw);
354var rightNodeSpanWithoutAttributes = syntaxFacts.GetSpanWithoutAttributes(root, rightNode);
366TextSpan selectionTrimmed,
384var spanWithoutAttributes = syntaxFacts.GetSpanWithoutAttributes(root, nonHiddenExtractedNode);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SelectedMembers\AbstractSelectedMembers.cs (4)
34SyntaxTree tree, TextSpan textSpan, bool allowPartialSelection, CancellationToken cancellationToken)
38SyntaxTree tree, TextSpan textSpan, bool allowPartialSelection, CancellationToken cancellationToken)
42SyntaxTree tree, TextSpan textSpan, bool allowPartialSelection,
77SyntaxNode root, SourceText text, TextSpan textSpan,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\CommonFormattingHelpers.cs (10)
45public static IEnumerable<(SyntaxToken, SyntaxToken)> ConvertToTokenPairs(this SyntaxNode root, IReadOnlyList<TextSpan> spans)
81public static ValueTuple<SyntaxToken, SyntaxToken> ConvertToTokenPair(this SyntaxNode root, TextSpan textSpan)
157=> (token1.RawKind == 0) ? text.ToString(TextSpan.FromBounds(0, token2.SpanStart)) : text.ToString(TextSpan.FromBounds(token1.Span.End, token2.SpanStart));
259public static TextSpan GetSpanIncludingTrailingAndLeadingTriviaOfAdjacentTokens(SyntaxToken startToken, SyntaxToken endToken)
266return TextSpan.FromBounds(startPosition, endPosition);
324var fullSpan = node.FullSpan;
357public static TextSpan GetFormattingSpan(SyntaxNode root, TextSpan span)
367return TextSpan.FromBounds(startPosition, endPosition);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\StringBreaker.cs (10)
17public static void AddWordParts(ReadOnlySpan<char> identifier, ref TemporaryArray<TextSpan> parts)
20public static void AddCharacterParts(ReadOnlySpan<char> identifier, ref TemporaryArray<TextSpan> parts)
23public static void AddParts(ReadOnlySpan<char> text, bool word, ref TemporaryArray<TextSpan> parts)
27var span = StringBreaker.GenerateSpan(text, start, word);
41public static TextSpan GenerateSpan(ReadOnlySpan<char> identifier, int wordStart, bool word)
81private static TextSpan ScanCharacterRun(ReadOnlySpan<char> identifier, int length, int wordStart)
102private static TextSpan ScanWordRun(ReadOnlySpan<char> identifier, int length, int wordStart)
151private static TextSpan ScanLowerCaseRun(ReadOnlySpan<char> identifier, int length, int wordStart)
162private static TextSpan ScanNumber(ReadOnlySpan<char> identifier, int length, int wordStart)
170return TextSpan.FromBounds(wordStart, current);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeFixesAndRefactorings\AbstractFixAllSpanMappingService.cs (8)
20protected abstract Task<ImmutableDictionary<Document, ImmutableArray<TextSpan>>> GetFixAllSpansIfWithinGlobalStatementAsync(
21Document document, TextSpan span, CancellationToken cancellationToken);
23public Task<ImmutableDictionary<Document, ImmutableArray<TextSpan>>> GetFixAllSpansAsync(
24Document document, TextSpan triggerSpan, FixAllScope fixAllScope, CancellationToken cancellationToken)
32private async Task<ImmutableDictionary<Document, ImmutableArray<TextSpan>>> GetFixAllSpansAsync(
33Document document, TextSpan span, bool fixAllInContainingMember, CancellationToken cancellationToken)
50var builder = PooledDictionary<Document, ArrayBuilder<TextSpan>>.GetInstance();
75TextSpan span,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeRefactorings\CodeRefactoringContextExtensions.cs (9)
21this CodeRefactoringContext context, ImmutableArray<TCodeAction> actions, TextSpan? applicableToSpan = null)
59public static async Task<TSyntaxNode?> TryGetRelevantNodeAsync<TSyntaxNode>(this Document document, TextSpan span, CancellationToken cancellationToken) where TSyntaxNode : SyntaxNode
65public static TSyntaxNode? TryGetRelevantNode<TSyntaxNode>(this ParsedDocument document, TextSpan span, CancellationToken cancellationToken) where TSyntaxNode : SyntaxNode
68public static TSyntaxNode? TryGetRelevantNode<TSyntaxNode>(this ParsedDocument document, TextSpan span, bool allowEmptyNode, CancellationToken cancellationToken) where TSyntaxNode : SyntaxNode
76this Document document, TextSpan span, CancellationToken cancellationToken) where TSyntaxNode : SyntaxNode
82this Document document, TextSpan span, bool allowEmptyNodes, CancellationToken cancellationToken) where TSyntaxNode : SyntaxNode
89this ParsedDocument document, TextSpan span, CancellationToken cancellationToken) where TSyntaxNode : SyntaxNode
93this ParsedDocument document, TextSpan span, bool allowEmptyNodes, CancellationToken cancellationToken) where TSyntaxNode : SyntaxNode
102this ParsedDocument document, TextSpan span, bool allowEmptyNodes, int maxCount, ref TemporaryArray<TSyntaxNode> result, CancellationToken cancellationToken) where TSyntaxNode : SyntaxNode
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Simplification\Simplifiers\AbstractSimplifier.cs (1)
21out TextSpan issueSpan,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Utilities\NullableHelpers.cs (1)
56TextSpan span,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Collections\NormalizedTextSpanCollection.cs (40)
14internal sealed class NormalizedTextSpanCollection : ReadOnlyCollection<TextSpan>
29public NormalizedTextSpanCollection(TextSpan span)
42public NormalizedTextSpanCollection(IEnumerable<TextSpan> spans)
93var span1 = left[index1];
94var span2 = right[index2];
122spans.Add(TextSpan.FromBounds(start, end));
161var span1 = left[index1];
162var span2 = right[index2];
221var span1 = left[index1];
222var span2 = right[index2];
283var span1 = left[index1];
284var span2 = right[index2];
296spans.Add(TextSpan.FromBounds(Math.Max(lastEnd, span1.Start), span1.End));
307spans.Add(TextSpan.FromBounds(Math.Max(lastEnd, span1.Start), span2.Start));
333var span1 = left[index1++];
334spans.Add(TextSpan.FromBounds(Math.Max(lastEnd, span1.Start), span1.End));
398var span1 = this[index1];
399var span2 = set[index2];
429public bool OverlapsWith(TextSpan span)
458var span1 = this[index1];
459var span2 = set[index2];
483public bool IntersectsWith(TextSpan span)
506foreach (var s in this)
533foreach (var s in this)
546private static IList<TextSpan> ListFromSpan(TextSpan span)
548IList<TextSpan> list =
564private static void UpdateSpanUnion(TextSpan span, IList<TextSpan> spans, ref int start, ref int end)
568spans.Add(TextSpan.FromBounds(start, end));
585private static IList<TextSpan> NormalizeSpans(IEnumerable<TextSpan> spans)
592var sorted = new List<TextSpan>(spans);
599sorted.Sort(delegate (TextSpan s1, TextSpan s2) { return s1.Start.CompareTo(s2.Start); });
601IList<TextSpan> normalized = new List<TextSpan>(sorted.Count);
611normalized.Add(TextSpan.FromBounds(oldStart, oldEnd));
621normalized.Add(TextSpan.FromBounds(oldStart, oldEnd));
626private sealed class OrderedSpanList : List<TextSpan>
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Diagnostics\IPragmaSuppressionsAnalyzer.cs (1)
24TextSpan? span,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\EmbeddedLanguages\Common\EmbeddedSyntaxTrivia.cs (1)
34public TextSpan GetSpan()
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\AnalysisContextExtensions.cs (13)
13private static bool ShouldAnalyze(TextSpan? contextFilterSpan, TextSpan span)
23public static bool ShouldAnalyzeSpan(this SyntaxTreeAnalysisContext context, TextSpan span)
33public static bool ShouldAnalyzeSpan(this SemanticModelAnalysisContext context, TextSpan span)
43public static bool ShouldAnalyzeSpan(this SymbolStartAnalysisContext context, TextSpan span, SyntaxTree tree)
63public static bool ShouldAnalyzeSpan(this SymbolAnalysisContext context, TextSpan span, SyntaxTree tree)
83public static bool ShouldAnalyzeSpan(this AdditionalFileAnalysisContext context, TextSpan span)
93public static bool ShouldAnalyzeSpan(this OperationBlockStartAnalysisContext context, TextSpan span)
103public static bool ShouldAnalyzeSpan(this OperationBlockAnalysisContext context, TextSpan span)
113public static bool ShouldAnalyzeSpan(this OperationAnalysisContext context, TextSpan span)
123public static bool ShouldAnalyzeSpan(this SyntaxNodeAnalysisContext context, TextSpan span)
133public static bool ShouldAnalyzeSpan<TSytnaxKind>(this CodeBlockStartAnalysisContext<TSytnaxKind> context, TextSpan span) where TSytnaxKind : struct
143public static bool ShouldAnalyzeSpan(this CodeBlockAnalysisContext context, TextSpan span)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SourceTextExtensions_SharedWithCodeStyle.cs (2)
32this SourceText text, TextSpan span, Func<int, CancellationToken, bool> isPositionHidden, CancellationToken cancellationToken)
44this SourceText text, TextSpan span, Func<int, CancellationToken, bool> isPositionHidden,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\TextSpanExtensions.cs (22)
18public static IEnumerable<TextSpan> ToNormalizedSpans(this IEnumerable<TextSpan> spans)
21public static ImmutableArray<TextSpan> ToNormalizedSpans(this ImmutableArray<TextSpan> spans)
24public static TextSpan Collapse(this IEnumerable<TextSpan> spans)
29foreach (var span in spans)
48return TextSpan.FromBounds(start, end);
54public static bool IsAround(this TextSpan span, SyntaxNodeOrToken node) => IsAround(span, node, node);
60public static bool IsAround(this TextSpan span, SyntaxNodeOrToken startNode, SyntaxNodeOrToken endNode)
62var innerSpan = TextSpan.FromBounds(startNode.Span.Start, endNode.Span.End);
63var outerSpan = TextSpan.FromBounds(startNode.FullSpan.Start, endNode.FullSpan.End);
67public static IEnumerable<TextSpan> Subtract(this TextSpan span, TextSpan except)
81yield return TextSpan.FromBounds(span.Start, startSegmentEnd);
85yield return TextSpan.FromBounds(endSegmentStart, span.End);
88public static IEnumerable<TextSpan> Subtract(this IEnumerable<TextSpan> spans, TextSpan except)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\Context\FormattingContext.IndentationData.cs (14)
17private abstract class IndentationData(TextSpan textSpan)
19public TextSpan TextSpan { get; } = textSpan;
22public IndentationData WithTextSpan(TextSpan span)
25protected abstract IndentationData WithTextSpanCore(TextSpan span);
28private sealed class SimpleIndentationData(TextSpan textSpan, int indentation) : IndentationData(textSpan)
32protected override IndentationData WithTextSpanCore(TextSpan span)
56public RelativeIndentationData(FormattingContext formattingContext, int inseparableRegionSpanStart, TextSpan textSpan, IndentBlockOperation operation, Func<FormattingContext, IndentBlockOperation, SyntaxToken> effectiveBaseTokenGetter, Func<FormattingContext, IndentBlockOperation, SyntaxToken, int> indentationDeltaGetter, Func<FormattingContext, SyntaxToken, int> baseIndentationGetter)
67this.InseparableRegionSpan = TextSpan.FromBounds(inseparableRegionSpanStart, textSpan.End);
70private RelativeIndentationData(FormattingContext formattingContext, int inseparableRegionSpanStart, TextSpan textSpan, IndentBlockOperation operation, Func<FormattingContext, IndentBlockOperation, SyntaxToken> effectiveBaseTokenGetter, Func<FormattingContext, IndentBlockOperation, SyntaxToken, int> indentationDeltaGetter, Func<FormattingContext, SyntaxToken, int> baseIndentationGetter, int lazyIndentationDelta)
81this.InseparableRegionSpan = TextSpan.FromBounds(inseparableRegionSpanStart, textSpan.End);
84public TextSpan InseparableRegionSpan { get; }
106protected override IndentationData WithTextSpanCore(TextSpan span)
118public AdjustedIndentationData(TextSpan textSpan, IndentationData baseIndentationData, int adjustment)
141protected override IndentationData WithTextSpanCore(TextSpan span)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\Rules\BaseIndentationFormattingRule.cs (10)
20private readonly TextSpan _span;
22public BaseIndentationFormattingRule(SyntaxNode root, TextSpan span, int baseIndentation, AbstractFormattingRule? vbHelperFormattingRule = null)
130private TextSpan AdjustTextSpan(TextSpan textSpan)
131=> TextSpan.FromBounds(Math.Max(_span.Start, textSpan.Start), Math.Min(_span.End, textSpan.End));
133private static void SetInnermostNodeForSpan(SyntaxNode root, ref TextSpan span, out SyntaxToken token1, out SyntaxToken token2, out SyntaxNode? commonNode)
149private static void GetTokens(SyntaxNode root, TextSpan span, out SyntaxToken token1, out SyntaxToken token2)
168private static TextSpan GetSpanFromTokens(TextSpan span, SyntaxToken token1, SyntaxToken token2)
217return TextSpan.FromBounds(start, end);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\Rules\Operations\FormattingOperations.cs (8)
30=> CreateAnchorIndentationOperation(anchorToken, endToken, TextSpan.FromBounds(anchorToken.Span.End, endToken.Span.End));
35public static AnchorIndentationOperation CreateAnchorIndentationOperation(SyntaxToken anchorToken, SyntaxToken endToken, TextSpan textSpan)
42=> CreateSuppressOperation(startToken, endToken, TextSpan.FromBounds(startToken.SpanStart, endToken.Span.End), option);
47private static SuppressOperation CreateSuppressOperation(SyntaxToken startToken, SyntaxToken endToken, TextSpan textSpan, SuppressOption option)
55var span = CommonFormattingHelpers.GetSpanIncludingTrailingAndLeadingTriviaOfAdjacentTokens(startToken, endToken);
62public static IndentBlockOperation CreateIndentBlockOperation(SyntaxToken startToken, SyntaxToken endToken, TextSpan textSpan, int indentationDelta, IndentBlockOption option)
70var span = CommonFormattingHelpers.GetSpanIncludingTrailingAndLeadingTriviaOfAdjacentTokens(startToken, endToken);
78public static IndentBlockOperation CreateRelativeIndentBlockOperation(SyntaxToken baseToken, SyntaxToken startToken, SyntaxToken endToken, TextSpan textSpan, int indentationDelta, IndentBlockOption option)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\TriviaEngine\AbstractTriviaFormatter.cs (13)
45private delegate void WhitespaceAppender<T>(LineColumn lineColumn, LineColumnDelta delta, TextSpan span, ArrayBuilder<T> changes);
387var span = GetTextSpan(trivia1, trivia2);
499var span = TextSpan.FromBounds(start, end);
715var insertionPoint = GetInsertionSpan(changes);
730private TextSpan GetInsertionSpan(ArrayBuilder<TextChange> changes)
765TextSpan notUsed,
822private TextChange GetWhitespaceTextChange(LineColumn lineColumn, LineColumnDelta delta, TextSpan span)
825private void AddWhitespaceTextChange(LineColumn lineColumn, LineColumnDelta delta, TextSpan span, ArrayBuilder<TextChange> changes)
831private TextSpan GetTextSpan(SyntaxTrivia trivia1, SyntaxTrivia trivia2)
835return TextSpan.FromBounds(this.StartPosition, trivia2.FullSpan.Start);
840return TextSpan.FromBounds(trivia1.FullSpan.End, this.EndPosition);
843return TextSpan.FromBounds(trivia1.FullSpan.End, trivia2.FullSpan.Start);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\NamingStyle.cs (21)
160var spanToCheck = TextSpan.FromBounds(0, name.Length - Suffix.Length);
174private WordSpanEnumerable GetWordSpans(string name, TextSpan nameSpan)
177private static string Substring(string name, TextSpan wordSpan)
180private static readonly Func<string, TextSpan, bool> s_firstCharIsLowerCase = (val, span) => !DoesCharacterHaveCasing(val[span.Start]) || char.IsLower(val[span.Start]);
181private static readonly Func<string, TextSpan, bool> s_firstCharIsUpperCase = (val, span) => !DoesCharacterHaveCasing(val[span.Start]) || char.IsUpper(val[span.Start]);
183private static readonly Func<string, TextSpan, bool> s_wordIsAllUpperCase = (val, span) =>
196private static readonly Func<string, TextSpan, bool> s_wordIsAllLowerCase = (val, span) =>
210string name, TextSpan nameSpan, Func<string, TextSpan, bool> wordCheck,
216foreach (var wordSpan in GetWordSpans(name, nameSpan))
232private bool CheckPascalCase(string name, TextSpan nameSpan, out string reason)
237private bool CheckAllUpper(string name, TextSpan nameSpan, out string reason)
242private bool CheckAllLower(string name, TextSpan nameSpan, out string reason)
248string name, TextSpan nameSpan,
249Func<string, TextSpan, bool> firstWordCheck,
250Func<string, TextSpan, bool> restWordCheck,
260foreach (var wordSpan in GetWordSpans(name, nameSpan))
291private bool CheckCamelCase(string name, TextSpan nameSpan, out string reason)
298private bool CheckFirstUpper(string name, TextSpan nameSpan, out string reason)
406using var parts = TemporaryArray<TextSpan>.Empty;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\RefactoringHelpers\AbstractRefactoringHelpers.cs (10)
39/// Returns unchanged <paramref name="span"/> in case <see cref="TextSpan.IsEmpty"/>.
40/// Returns empty Span with original <see cref="TextSpan.Start"/> in case it contains only whitespace.
42private static TextSpan GetTrimmedTextSpan(SourceText sourceText, TextSpan span)
56return TextSpan.FromBounds(start, end);
60SourceText sourceText, SyntaxNode root, TextSpan selectionRaw, bool allowEmptyNodes, int maxCount, ref TemporaryArray<TSyntaxNode> result, CancellationToken cancellationToken) where TSyntaxNode : SyntaxNode
69var selectionTrimmed = GetTrimmedTextSpan(sourceText, selectionRaw);
354var rightNodeSpanWithoutAttributes = syntaxFacts.GetSpanWithoutAttributes(root, rightNode);
366TextSpan selectionTrimmed,
384var spanWithoutAttributes = syntaxFacts.GetSpanWithoutAttributes(root, nonHiddenExtractedNode);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SelectedMembers\AbstractSelectedMembers.cs (4)
34SyntaxTree tree, TextSpan textSpan, bool allowPartialSelection, CancellationToken cancellationToken)
38SyntaxTree tree, TextSpan textSpan, bool allowPartialSelection, CancellationToken cancellationToken)
42SyntaxTree tree, TextSpan textSpan, bool allowPartialSelection,
77SyntaxNode root, SourceText text, TextSpan textSpan,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\CommonFormattingHelpers.cs (10)
45public static IEnumerable<(SyntaxToken, SyntaxToken)> ConvertToTokenPairs(this SyntaxNode root, IReadOnlyList<TextSpan> spans)
81public static ValueTuple<SyntaxToken, SyntaxToken> ConvertToTokenPair(this SyntaxNode root, TextSpan textSpan)
157=> (token1.RawKind == 0) ? text.ToString(TextSpan.FromBounds(0, token2.SpanStart)) : text.ToString(TextSpan.FromBounds(token1.Span.End, token2.SpanStart));
259public static TextSpan GetSpanIncludingTrailingAndLeadingTriviaOfAdjacentTokens(SyntaxToken startToken, SyntaxToken endToken)
266return TextSpan.FromBounds(startPosition, endPosition);
324var fullSpan = node.FullSpan;
357public static TextSpan GetFormattingSpan(SyntaxNode root, TextSpan span)
367return TextSpan.FromBounds(startPosition, endPosition);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\StringBreaker.cs (10)
17public static void AddWordParts(ReadOnlySpan<char> identifier, ref TemporaryArray<TextSpan> parts)
20public static void AddCharacterParts(ReadOnlySpan<char> identifier, ref TemporaryArray<TextSpan> parts)
23public static void AddParts(ReadOnlySpan<char> text, bool word, ref TemporaryArray<TextSpan> parts)
27var span = StringBreaker.GenerateSpan(text, start, word);
41public static TextSpan GenerateSpan(ReadOnlySpan<char> identifier, int wordStart, bool word)
81private static TextSpan ScanCharacterRun(ReadOnlySpan<char> identifier, int length, int wordStart)
102private static TextSpan ScanWordRun(ReadOnlySpan<char> identifier, int length, int wordStart)
151private static TextSpan ScanLowerCaseRun(ReadOnlySpan<char> identifier, int length, int wordStart)
162private static TextSpan ScanNumber(ReadOnlySpan<char> identifier, int length, int wordStart)
170return TextSpan.FromBounds(wordStart, current);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeFixesAndRefactorings\AbstractFixAllSpanMappingService.cs (8)
20protected abstract Task<ImmutableDictionary<Document, ImmutableArray<TextSpan>>> GetFixAllSpansIfWithinGlobalStatementAsync(
21Document document, TextSpan span, CancellationToken cancellationToken);
23public Task<ImmutableDictionary<Document, ImmutableArray<TextSpan>>> GetFixAllSpansAsync(
24Document document, TextSpan triggerSpan, FixAllScope fixAllScope, CancellationToken cancellationToken)
32private async Task<ImmutableDictionary<Document, ImmutableArray<TextSpan>>> GetFixAllSpansAsync(
33Document document, TextSpan span, bool fixAllInContainingMember, CancellationToken cancellationToken)
50var builder = PooledDictionary<Document, ArrayBuilder<TextSpan>>.GetInstance();
75TextSpan span,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeRefactorings\CodeRefactoringContextExtensions.cs (9)
21this CodeRefactoringContext context, ImmutableArray<TCodeAction> actions, TextSpan? applicableToSpan = null)
59public static async Task<TSyntaxNode?> TryGetRelevantNodeAsync<TSyntaxNode>(this Document document, TextSpan span, CancellationToken cancellationToken) where TSyntaxNode : SyntaxNode
65public static TSyntaxNode? TryGetRelevantNode<TSyntaxNode>(this ParsedDocument document, TextSpan span, CancellationToken cancellationToken) where TSyntaxNode : SyntaxNode
68public static TSyntaxNode? TryGetRelevantNode<TSyntaxNode>(this ParsedDocument document, TextSpan span, bool allowEmptyNode, CancellationToken cancellationToken) where TSyntaxNode : SyntaxNode
76this Document document, TextSpan span, CancellationToken cancellationToken) where TSyntaxNode : SyntaxNode
82this Document document, TextSpan span, bool allowEmptyNodes, CancellationToken cancellationToken) where TSyntaxNode : SyntaxNode
89this ParsedDocument document, TextSpan span, CancellationToken cancellationToken) where TSyntaxNode : SyntaxNode
93this ParsedDocument document, TextSpan span, bool allowEmptyNodes, CancellationToken cancellationToken) where TSyntaxNode : SyntaxNode
102this ParsedDocument document, TextSpan span, bool allowEmptyNodes, int maxCount, ref TemporaryArray<TSyntaxNode> result, CancellationToken cancellationToken) where TSyntaxNode : SyntaxNode
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Simplification\Simplifiers\AbstractSimplifier.cs (1)
21out TextSpan issueSpan,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Utilities\NullableHelpers.cs (1)
56TextSpan span,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Collections\NormalizedTextSpanCollection.cs (40)
14internal sealed class NormalizedTextSpanCollection : ReadOnlyCollection<TextSpan>
29public NormalizedTextSpanCollection(TextSpan span)
42public NormalizedTextSpanCollection(IEnumerable<TextSpan> spans)
93var span1 = left[index1];
94var span2 = right[index2];
122spans.Add(TextSpan.FromBounds(start, end));
161var span1 = left[index1];
162var span2 = right[index2];
221var span1 = left[index1];
222var span2 = right[index2];
283var span1 = left[index1];
284var span2 = right[index2];
296spans.Add(TextSpan.FromBounds(Math.Max(lastEnd, span1.Start), span1.End));
307spans.Add(TextSpan.FromBounds(Math.Max(lastEnd, span1.Start), span2.Start));
333var span1 = left[index1++];
334spans.Add(TextSpan.FromBounds(Math.Max(lastEnd, span1.Start), span1.End));
398var span1 = this[index1];
399var span2 = set[index2];
429public bool OverlapsWith(TextSpan span)
458var span1 = this[index1];
459var span2 = set[index2];
483public bool IntersectsWith(TextSpan span)
506foreach (var s in this)
533foreach (var s in this)
546private static IList<TextSpan> ListFromSpan(TextSpan span)
548IList<TextSpan> list =
564private static void UpdateSpanUnion(TextSpan span, IList<TextSpan> spans, ref int start, ref int end)
568spans.Add(TextSpan.FromBounds(start, end));
585private static IList<TextSpan> NormalizeSpans(IEnumerable<TextSpan> spans)
592var sorted = new List<TextSpan>(spans);
599sorted.Sort(delegate (TextSpan s1, TextSpan s2) { return s1.Start.CompareTo(s2.Start); });
601IList<TextSpan> normalized = new List<TextSpan>(sorted.Count);
611normalized.Add(TextSpan.FromBounds(oldStart, oldEnd));
621normalized.Add(TextSpan.FromBounds(oldStart, oldEnd));
626private sealed class OrderedSpanList : List<TextSpan>
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Diagnostics\IPragmaSuppressionsAnalyzer.cs (1)
24TextSpan? span,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\EmbeddedLanguages\Common\EmbeddedSyntaxTrivia.cs (1)
34public TextSpan GetSpan()
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\AnalysisContextExtensions.cs (13)
13private static bool ShouldAnalyze(TextSpan? contextFilterSpan, TextSpan span)
23public static bool ShouldAnalyzeSpan(this SyntaxTreeAnalysisContext context, TextSpan span)
33public static bool ShouldAnalyzeSpan(this SemanticModelAnalysisContext context, TextSpan span)
43public static bool ShouldAnalyzeSpan(this SymbolStartAnalysisContext context, TextSpan span, SyntaxTree tree)
63public static bool ShouldAnalyzeSpan(this SymbolAnalysisContext context, TextSpan span, SyntaxTree tree)
83public static bool ShouldAnalyzeSpan(this AdditionalFileAnalysisContext context, TextSpan span)
93public static bool ShouldAnalyzeSpan(this OperationBlockStartAnalysisContext context, TextSpan span)
103public static bool ShouldAnalyzeSpan(this OperationBlockAnalysisContext context, TextSpan span)
113public static bool ShouldAnalyzeSpan(this OperationAnalysisContext context, TextSpan span)
123public static bool ShouldAnalyzeSpan(this SyntaxNodeAnalysisContext context, TextSpan span)
133public static bool ShouldAnalyzeSpan<TSytnaxKind>(this CodeBlockStartAnalysisContext<TSytnaxKind> context, TextSpan span) where TSytnaxKind : struct
143public static bool ShouldAnalyzeSpan(this CodeBlockAnalysisContext context, TextSpan span)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SourceTextExtensions_SharedWithCodeStyle.cs (2)
32this SourceText text, TextSpan span, Func<int, CancellationToken, bool> isPositionHidden, CancellationToken cancellationToken)
44this SourceText text, TextSpan span, Func<int, CancellationToken, bool> isPositionHidden,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\TextSpanExtensions.cs (22)
18public static IEnumerable<TextSpan> ToNormalizedSpans(this IEnumerable<TextSpan> spans)
21public static ImmutableArray<TextSpan> ToNormalizedSpans(this ImmutableArray<TextSpan> spans)
24public static TextSpan Collapse(this IEnumerable<TextSpan> spans)
29foreach (var span in spans)
48return TextSpan.FromBounds(start, end);
54public static bool IsAround(this TextSpan span, SyntaxNodeOrToken node) => IsAround(span, node, node);
60public static bool IsAround(this TextSpan span, SyntaxNodeOrToken startNode, SyntaxNodeOrToken endNode)
62var innerSpan = TextSpan.FromBounds(startNode.Span.Start, endNode.Span.End);
63var outerSpan = TextSpan.FromBounds(startNode.FullSpan.Start, endNode.FullSpan.End);
67public static IEnumerable<TextSpan> Subtract(this TextSpan span, TextSpan except)
81yield return TextSpan.FromBounds(span.Start, startSegmentEnd);
85yield return TextSpan.FromBounds(endSegmentStart, span.End);
88public static IEnumerable<TextSpan> Subtract(this IEnumerable<TextSpan> spans, TextSpan except)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\Context\FormattingContext.IndentationData.cs (14)
17private abstract class IndentationData(TextSpan textSpan)
19public TextSpan TextSpan { get; } = textSpan;
22public IndentationData WithTextSpan(TextSpan span)
25protected abstract IndentationData WithTextSpanCore(TextSpan span);
28private sealed class SimpleIndentationData(TextSpan textSpan, int indentation) : IndentationData(textSpan)
32protected override IndentationData WithTextSpanCore(TextSpan span)
56public RelativeIndentationData(FormattingContext formattingContext, int inseparableRegionSpanStart, TextSpan textSpan, IndentBlockOperation operation, Func<FormattingContext, IndentBlockOperation, SyntaxToken> effectiveBaseTokenGetter, Func<FormattingContext, IndentBlockOperation, SyntaxToken, int> indentationDeltaGetter, Func<FormattingContext, SyntaxToken, int> baseIndentationGetter)
67this.InseparableRegionSpan = TextSpan.FromBounds(inseparableRegionSpanStart, textSpan.End);
70private RelativeIndentationData(FormattingContext formattingContext, int inseparableRegionSpanStart, TextSpan textSpan, IndentBlockOperation operation, Func<FormattingContext, IndentBlockOperation, SyntaxToken> effectiveBaseTokenGetter, Func<FormattingContext, IndentBlockOperation, SyntaxToken, int> indentationDeltaGetter, Func<FormattingContext, SyntaxToken, int> baseIndentationGetter, int lazyIndentationDelta)
81this.InseparableRegionSpan = TextSpan.FromBounds(inseparableRegionSpanStart, textSpan.End);
84public TextSpan InseparableRegionSpan { get; }
106protected override IndentationData WithTextSpanCore(TextSpan span)
118public AdjustedIndentationData(TextSpan textSpan, IndentationData baseIndentationData, int adjustment)
141protected override IndentationData WithTextSpanCore(TextSpan span)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\Rules\BaseIndentationFormattingRule.cs (10)
20private readonly TextSpan _span;
22public BaseIndentationFormattingRule(SyntaxNode root, TextSpan span, int baseIndentation, AbstractFormattingRule? vbHelperFormattingRule = null)
130private TextSpan AdjustTextSpan(TextSpan textSpan)
131=> TextSpan.FromBounds(Math.Max(_span.Start, textSpan.Start), Math.Min(_span.End, textSpan.End));
133private static void SetInnermostNodeForSpan(SyntaxNode root, ref TextSpan span, out SyntaxToken token1, out SyntaxToken token2, out SyntaxNode? commonNode)
149private static void GetTokens(SyntaxNode root, TextSpan span, out SyntaxToken token1, out SyntaxToken token2)
168private static TextSpan GetSpanFromTokens(TextSpan span, SyntaxToken token1, SyntaxToken token2)
217return TextSpan.FromBounds(start, end);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\Rules\Operations\FormattingOperations.cs (8)
30=> CreateAnchorIndentationOperation(anchorToken, endToken, TextSpan.FromBounds(anchorToken.Span.End, endToken.Span.End));
35public static AnchorIndentationOperation CreateAnchorIndentationOperation(SyntaxToken anchorToken, SyntaxToken endToken, TextSpan textSpan)
42=> CreateSuppressOperation(startToken, endToken, TextSpan.FromBounds(startToken.SpanStart, endToken.Span.End), option);
47private static SuppressOperation CreateSuppressOperation(SyntaxToken startToken, SyntaxToken endToken, TextSpan textSpan, SuppressOption option)
55var span = CommonFormattingHelpers.GetSpanIncludingTrailingAndLeadingTriviaOfAdjacentTokens(startToken, endToken);
62public static IndentBlockOperation CreateIndentBlockOperation(SyntaxToken startToken, SyntaxToken endToken, TextSpan textSpan, int indentationDelta, IndentBlockOption option)
70var span = CommonFormattingHelpers.GetSpanIncludingTrailingAndLeadingTriviaOfAdjacentTokens(startToken, endToken);
78public static IndentBlockOperation CreateRelativeIndentBlockOperation(SyntaxToken baseToken, SyntaxToken startToken, SyntaxToken endToken, TextSpan textSpan, int indentationDelta, IndentBlockOption option)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\TriviaEngine\AbstractTriviaFormatter.cs (13)
45private delegate void WhitespaceAppender<T>(LineColumn lineColumn, LineColumnDelta delta, TextSpan span, ArrayBuilder<T> changes);
387var span = GetTextSpan(trivia1, trivia2);
499var span = TextSpan.FromBounds(start, end);
715var insertionPoint = GetInsertionSpan(changes);
730private TextSpan GetInsertionSpan(ArrayBuilder<TextChange> changes)
765TextSpan notUsed,
822private TextChange GetWhitespaceTextChange(LineColumn lineColumn, LineColumnDelta delta, TextSpan span)
825private void AddWhitespaceTextChange(LineColumn lineColumn, LineColumnDelta delta, TextSpan span, ArrayBuilder<TextChange> changes)
831private TextSpan GetTextSpan(SyntaxTrivia trivia1, SyntaxTrivia trivia2)
835return TextSpan.FromBounds(this.StartPosition, trivia2.FullSpan.Start);
840return TextSpan.FromBounds(trivia1.FullSpan.End, this.EndPosition);
843return TextSpan.FromBounds(trivia1.FullSpan.End, trivia2.FullSpan.Start);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\NamingStyle.cs (21)
160var spanToCheck = TextSpan.FromBounds(0, name.Length - Suffix.Length);
174private WordSpanEnumerable GetWordSpans(string name, TextSpan nameSpan)
177private static string Substring(string name, TextSpan wordSpan)
180private static readonly Func<string, TextSpan, bool> s_firstCharIsLowerCase = (val, span) => !DoesCharacterHaveCasing(val[span.Start]) || char.IsLower(val[span.Start]);
181private static readonly Func<string, TextSpan, bool> s_firstCharIsUpperCase = (val, span) => !DoesCharacterHaveCasing(val[span.Start]) || char.IsUpper(val[span.Start]);
183private static readonly Func<string, TextSpan, bool> s_wordIsAllUpperCase = (val, span) =>
196private static readonly Func<string, TextSpan, bool> s_wordIsAllLowerCase = (val, span) =>
210string name, TextSpan nameSpan, Func<string, TextSpan, bool> wordCheck,
216foreach (var wordSpan in GetWordSpans(name, nameSpan))
232private bool CheckPascalCase(string name, TextSpan nameSpan, out string reason)
237private bool CheckAllUpper(string name, TextSpan nameSpan, out string reason)
242private bool CheckAllLower(string name, TextSpan nameSpan, out string reason)
248string name, TextSpan nameSpan,
249Func<string, TextSpan, bool> firstWordCheck,
250Func<string, TextSpan, bool> restWordCheck,
260foreach (var wordSpan in GetWordSpans(name, nameSpan))
291private bool CheckCamelCase(string name, TextSpan nameSpan, out string reason)
298private bool CheckFirstUpper(string name, TextSpan nameSpan, out string reason)
406using var parts = TemporaryArray<TextSpan>.Empty;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\RefactoringHelpers\AbstractRefactoringHelpers.cs (10)
39/// Returns unchanged <paramref name="span"/> in case <see cref="TextSpan.IsEmpty"/>.
40/// Returns empty Span with original <see cref="TextSpan.Start"/> in case it contains only whitespace.
42private static TextSpan GetTrimmedTextSpan(SourceText sourceText, TextSpan span)
56return TextSpan.FromBounds(start, end);
60SourceText sourceText, SyntaxNode root, TextSpan selectionRaw, bool allowEmptyNodes, int maxCount, ref TemporaryArray<TSyntaxNode> result, CancellationToken cancellationToken) where TSyntaxNode : SyntaxNode
69var selectionTrimmed = GetTrimmedTextSpan(sourceText, selectionRaw);
354var rightNodeSpanWithoutAttributes = syntaxFacts.GetSpanWithoutAttributes(root, rightNode);
366TextSpan selectionTrimmed,
384var spanWithoutAttributes = syntaxFacts.GetSpanWithoutAttributes(root, nonHiddenExtractedNode);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SelectedMembers\AbstractSelectedMembers.cs (4)
34SyntaxTree tree, TextSpan textSpan, bool allowPartialSelection, CancellationToken cancellationToken)
38SyntaxTree tree, TextSpan textSpan, bool allowPartialSelection, CancellationToken cancellationToken)
42SyntaxTree tree, TextSpan textSpan, bool allowPartialSelection,
77SyntaxNode root, SourceText text, TextSpan textSpan,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\CommonFormattingHelpers.cs (10)
45public static IEnumerable<(SyntaxToken, SyntaxToken)> ConvertToTokenPairs(this SyntaxNode root, IReadOnlyList<TextSpan> spans)
81public static ValueTuple<SyntaxToken, SyntaxToken> ConvertToTokenPair(this SyntaxNode root, TextSpan textSpan)
157=> (token1.RawKind == 0) ? text.ToString(TextSpan.FromBounds(0, token2.SpanStart)) : text.ToString(TextSpan.FromBounds(token1.Span.End, token2.SpanStart));
259public static TextSpan GetSpanIncludingTrailingAndLeadingTriviaOfAdjacentTokens(SyntaxToken startToken, SyntaxToken endToken)
266return TextSpan.FromBounds(startPosition, endPosition);
324var fullSpan = node.FullSpan;
357public static TextSpan GetFormattingSpan(SyntaxNode root, TextSpan span)
367return TextSpan.FromBounds(startPosition, endPosition);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\StringBreaker.cs (10)
17public static void AddWordParts(ReadOnlySpan<char> identifier, ref TemporaryArray<TextSpan> parts)
20public static void AddCharacterParts(ReadOnlySpan<char> identifier, ref TemporaryArray<TextSpan> parts)
23public static void AddParts(ReadOnlySpan<char> text, bool word, ref TemporaryArray<TextSpan> parts)
27var span = StringBreaker.GenerateSpan(text, start, word);
41public static TextSpan GenerateSpan(ReadOnlySpan<char> identifier, int wordStart, bool word)
81private static TextSpan ScanCharacterRun(ReadOnlySpan<char> identifier, int length, int wordStart)
102private static TextSpan ScanWordRun(ReadOnlySpan<char> identifier, int length, int wordStart)
151private static TextSpan ScanLowerCaseRun(ReadOnlySpan<char> identifier, int length, int wordStart)
162private static TextSpan ScanNumber(ReadOnlySpan<char> identifier, int length, int wordStart)
170return TextSpan.FromBounds(wordStart, current);
src\roslyn\src\Analyzers\Core\Analyzers\SimplifyTypeNames\SimplifyTypeNamesDiagnosticAnalyzerBase.cs (5)
67out TextSpan issueSpan, out string diagnosticId, out bool inDeclaration,
104out var issueSpan, out var diagnosticId, out var inDeclaration,
121internal static Diagnostic CreateDiagnostic(SemanticModel model, TSimplifierOptions options, AnalyzerOptions analyzerOptions, TextSpan issueSpan, string diagnosticId, bool inDeclaration)
192/// indicate that <c>intervalTree</c> may be updated by adding a new non-overlapping <see cref="TextSpan"/>
235static bool TryProceedWithInterval(bool addIfAvailable, TextSpan span, StrongBox<bool> completed, TextSpanMutableIntervalTree intervalTree)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Collections\NormalizedTextSpanCollection.cs (40)
14internal sealed class NormalizedTextSpanCollection : ReadOnlyCollection<TextSpan>
29public NormalizedTextSpanCollection(TextSpan span)
42public NormalizedTextSpanCollection(IEnumerable<TextSpan> spans)
93var span1 = left[index1];
94var span2 = right[index2];
122spans.Add(TextSpan.FromBounds(start, end));
161var span1 = left[index1];
162var span2 = right[index2];
221var span1 = left[index1];
222var span2 = right[index2];
283var span1 = left[index1];
284var span2 = right[index2];
296spans.Add(TextSpan.FromBounds(Math.Max(lastEnd, span1.Start), span1.End));
307spans.Add(TextSpan.FromBounds(Math.Max(lastEnd, span1.Start), span2.Start));
333var span1 = left[index1++];
334spans.Add(TextSpan.FromBounds(Math.Max(lastEnd, span1.Start), span1.End));
398var span1 = this[index1];
399var span2 = set[index2];
429public bool OverlapsWith(TextSpan span)
458var span1 = this[index1];
459var span2 = set[index2];
483public bool IntersectsWith(TextSpan span)
506foreach (var s in this)
533foreach (var s in this)
546private static IList<TextSpan> ListFromSpan(TextSpan span)
548IList<TextSpan> list =
564private static void UpdateSpanUnion(TextSpan span, IList<TextSpan> spans, ref int start, ref int end)
568spans.Add(TextSpan.FromBounds(start, end));
585private static IList<TextSpan> NormalizeSpans(IEnumerable<TextSpan> spans)
592var sorted = new List<TextSpan>(spans);
599sorted.Sort(delegate (TextSpan s1, TextSpan s2) { return s1.Start.CompareTo(s2.Start); });
601IList<TextSpan> normalized = new List<TextSpan>(sorted.Count);
611normalized.Add(TextSpan.FromBounds(oldStart, oldEnd));
621normalized.Add(TextSpan.FromBounds(oldStart, oldEnd));
626private sealed class OrderedSpanList : List<TextSpan>
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Diagnostics\IPragmaSuppressionsAnalyzer.cs (1)
24TextSpan? span,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\EmbeddedLanguages\Common\EmbeddedSyntaxTrivia.cs (1)
34public TextSpan GetSpan()
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\AnalysisContextExtensions.cs (13)
13private static bool ShouldAnalyze(TextSpan? contextFilterSpan, TextSpan span)
23public static bool ShouldAnalyzeSpan(this SyntaxTreeAnalysisContext context, TextSpan span)
33public static bool ShouldAnalyzeSpan(this SemanticModelAnalysisContext context, TextSpan span)
43public static bool ShouldAnalyzeSpan(this SymbolStartAnalysisContext context, TextSpan span, SyntaxTree tree)
63public static bool ShouldAnalyzeSpan(this SymbolAnalysisContext context, TextSpan span, SyntaxTree tree)
83public static bool ShouldAnalyzeSpan(this AdditionalFileAnalysisContext context, TextSpan span)
93public static bool ShouldAnalyzeSpan(this OperationBlockStartAnalysisContext context, TextSpan span)
103public static bool ShouldAnalyzeSpan(this OperationBlockAnalysisContext context, TextSpan span)
113public static bool ShouldAnalyzeSpan(this OperationAnalysisContext context, TextSpan span)
123public static bool ShouldAnalyzeSpan(this SyntaxNodeAnalysisContext context, TextSpan span)
133public static bool ShouldAnalyzeSpan<TSytnaxKind>(this CodeBlockStartAnalysisContext<TSytnaxKind> context, TextSpan span) where TSytnaxKind : struct
143public static bool ShouldAnalyzeSpan(this CodeBlockAnalysisContext context, TextSpan span)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SourceTextExtensions_SharedWithCodeStyle.cs (2)
32this SourceText text, TextSpan span, Func<int, CancellationToken, bool> isPositionHidden, CancellationToken cancellationToken)
44this SourceText text, TextSpan span, Func<int, CancellationToken, bool> isPositionHidden,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\TextSpanExtensions.cs (22)
18public static IEnumerable<TextSpan> ToNormalizedSpans(this IEnumerable<TextSpan> spans)
21public static ImmutableArray<TextSpan> ToNormalizedSpans(this ImmutableArray<TextSpan> spans)
24public static TextSpan Collapse(this IEnumerable<TextSpan> spans)
29foreach (var span in spans)
48return TextSpan.FromBounds(start, end);
54public static bool IsAround(this TextSpan span, SyntaxNodeOrToken node) => IsAround(span, node, node);
60public static bool IsAround(this TextSpan span, SyntaxNodeOrToken startNode, SyntaxNodeOrToken endNode)
62var innerSpan = TextSpan.FromBounds(startNode.Span.Start, endNode.Span.End);
63var outerSpan = TextSpan.FromBounds(startNode.FullSpan.Start, endNode.FullSpan.End);
67public static IEnumerable<TextSpan> Subtract(this TextSpan span, TextSpan except)
81yield return TextSpan.FromBounds(span.Start, startSegmentEnd);
85yield return TextSpan.FromBounds(endSegmentStart, span.End);
88public static IEnumerable<TextSpan> Subtract(this IEnumerable<TextSpan> spans, TextSpan except)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\Context\FormattingContext.IndentationData.cs (14)
17private abstract class IndentationData(TextSpan textSpan)
19public TextSpan TextSpan { get; } = textSpan;
22public IndentationData WithTextSpan(TextSpan span)
25protected abstract IndentationData WithTextSpanCore(TextSpan span);
28private sealed class SimpleIndentationData(TextSpan textSpan, int indentation) : IndentationData(textSpan)
32protected override IndentationData WithTextSpanCore(TextSpan span)
56public RelativeIndentationData(FormattingContext formattingContext, int inseparableRegionSpanStart, TextSpan textSpan, IndentBlockOperation operation, Func<FormattingContext, IndentBlockOperation, SyntaxToken> effectiveBaseTokenGetter, Func<FormattingContext, IndentBlockOperation, SyntaxToken, int> indentationDeltaGetter, Func<FormattingContext, SyntaxToken, int> baseIndentationGetter)
67this.InseparableRegionSpan = TextSpan.FromBounds(inseparableRegionSpanStart, textSpan.End);
70private RelativeIndentationData(FormattingContext formattingContext, int inseparableRegionSpanStart, TextSpan textSpan, IndentBlockOperation operation, Func<FormattingContext, IndentBlockOperation, SyntaxToken> effectiveBaseTokenGetter, Func<FormattingContext, IndentBlockOperation, SyntaxToken, int> indentationDeltaGetter, Func<FormattingContext, SyntaxToken, int> baseIndentationGetter, int lazyIndentationDelta)
81this.InseparableRegionSpan = TextSpan.FromBounds(inseparableRegionSpanStart, textSpan.End);
84public TextSpan InseparableRegionSpan { get; }
106protected override IndentationData WithTextSpanCore(TextSpan span)
118public AdjustedIndentationData(TextSpan textSpan, IndentationData baseIndentationData, int adjustment)
141protected override IndentationData WithTextSpanCore(TextSpan span)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\Rules\BaseIndentationFormattingRule.cs (10)
20private readonly TextSpan _span;
22public BaseIndentationFormattingRule(SyntaxNode root, TextSpan span, int baseIndentation, AbstractFormattingRule? vbHelperFormattingRule = null)
130private TextSpan AdjustTextSpan(TextSpan textSpan)
131=> TextSpan.FromBounds(Math.Max(_span.Start, textSpan.Start), Math.Min(_span.End, textSpan.End));
133private static void SetInnermostNodeForSpan(SyntaxNode root, ref TextSpan span, out SyntaxToken token1, out SyntaxToken token2, out SyntaxNode? commonNode)
149private static void GetTokens(SyntaxNode root, TextSpan span, out SyntaxToken token1, out SyntaxToken token2)
168private static TextSpan GetSpanFromTokens(TextSpan span, SyntaxToken token1, SyntaxToken token2)
217return TextSpan.FromBounds(start, end);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\Rules\Operations\FormattingOperations.cs (8)
30=> CreateAnchorIndentationOperation(anchorToken, endToken, TextSpan.FromBounds(anchorToken.Span.End, endToken.Span.End));
35public static AnchorIndentationOperation CreateAnchorIndentationOperation(SyntaxToken anchorToken, SyntaxToken endToken, TextSpan textSpan)
42=> CreateSuppressOperation(startToken, endToken, TextSpan.FromBounds(startToken.SpanStart, endToken.Span.End), option);
47private static SuppressOperation CreateSuppressOperation(SyntaxToken startToken, SyntaxToken endToken, TextSpan textSpan, SuppressOption option)
55var span = CommonFormattingHelpers.GetSpanIncludingTrailingAndLeadingTriviaOfAdjacentTokens(startToken, endToken);
62public static IndentBlockOperation CreateIndentBlockOperation(SyntaxToken startToken, SyntaxToken endToken, TextSpan textSpan, int indentationDelta, IndentBlockOption option)
70var span = CommonFormattingHelpers.GetSpanIncludingTrailingAndLeadingTriviaOfAdjacentTokens(startToken, endToken);
78public static IndentBlockOperation CreateRelativeIndentBlockOperation(SyntaxToken baseToken, SyntaxToken startToken, SyntaxToken endToken, TextSpan textSpan, int indentationDelta, IndentBlockOption option)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\TriviaEngine\AbstractTriviaFormatter.cs (13)
45private delegate void WhitespaceAppender<T>(LineColumn lineColumn, LineColumnDelta delta, TextSpan span, ArrayBuilder<T> changes);
387var span = GetTextSpan(trivia1, trivia2);
499var span = TextSpan.FromBounds(start, end);
715var insertionPoint = GetInsertionSpan(changes);
730private TextSpan GetInsertionSpan(ArrayBuilder<TextChange> changes)
765TextSpan notUsed,
822private TextChange GetWhitespaceTextChange(LineColumn lineColumn, LineColumnDelta delta, TextSpan span)
825private void AddWhitespaceTextChange(LineColumn lineColumn, LineColumnDelta delta, TextSpan span, ArrayBuilder<TextChange> changes)
831private TextSpan GetTextSpan(SyntaxTrivia trivia1, SyntaxTrivia trivia2)
835return TextSpan.FromBounds(this.StartPosition, trivia2.FullSpan.Start);
840return TextSpan.FromBounds(trivia1.FullSpan.End, this.EndPosition);
843return TextSpan.FromBounds(trivia1.FullSpan.End, trivia2.FullSpan.Start);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\NamingStyle.cs (21)
160var spanToCheck = TextSpan.FromBounds(0, name.Length - Suffix.Length);
174private WordSpanEnumerable GetWordSpans(string name, TextSpan nameSpan)
177private static string Substring(string name, TextSpan wordSpan)
180private static readonly Func<string, TextSpan, bool> s_firstCharIsLowerCase = (val, span) => !DoesCharacterHaveCasing(val[span.Start]) || char.IsLower(val[span.Start]);
181private static readonly Func<string, TextSpan, bool> s_firstCharIsUpperCase = (val, span) => !DoesCharacterHaveCasing(val[span.Start]) || char.IsUpper(val[span.Start]);
183private static readonly Func<string, TextSpan, bool> s_wordIsAllUpperCase = (val, span) =>
196private static readonly Func<string, TextSpan, bool> s_wordIsAllLowerCase = (val, span) =>
210string name, TextSpan nameSpan, Func<string, TextSpan, bool> wordCheck,
216foreach (var wordSpan in GetWordSpans(name, nameSpan))
232private bool CheckPascalCase(string name, TextSpan nameSpan, out string reason)
237private bool CheckAllUpper(string name, TextSpan nameSpan, out string reason)
242private bool CheckAllLower(string name, TextSpan nameSpan, out string reason)
248string name, TextSpan nameSpan,
249Func<string, TextSpan, bool> firstWordCheck,
250Func<string, TextSpan, bool> restWordCheck,
260foreach (var wordSpan in GetWordSpans(name, nameSpan))
291private bool CheckCamelCase(string name, TextSpan nameSpan, out string reason)
298private bool CheckFirstUpper(string name, TextSpan nameSpan, out string reason)
406using var parts = TemporaryArray<TextSpan>.Empty;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\RefactoringHelpers\AbstractRefactoringHelpers.cs (10)
39/// Returns unchanged <paramref name="span"/> in case <see cref="TextSpan.IsEmpty"/>.
40/// Returns empty Span with original <see cref="TextSpan.Start"/> in case it contains only whitespace.
42private static TextSpan GetTrimmedTextSpan(SourceText sourceText, TextSpan span)
56return TextSpan.FromBounds(start, end);
60SourceText sourceText, SyntaxNode root, TextSpan selectionRaw, bool allowEmptyNodes, int maxCount, ref TemporaryArray<TSyntaxNode> result, CancellationToken cancellationToken) where TSyntaxNode : SyntaxNode
69var selectionTrimmed = GetTrimmedTextSpan(sourceText, selectionRaw);
354var rightNodeSpanWithoutAttributes = syntaxFacts.GetSpanWithoutAttributes(root, rightNode);
366TextSpan selectionTrimmed,
384var spanWithoutAttributes = syntaxFacts.GetSpanWithoutAttributes(root, nonHiddenExtractedNode);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SelectedMembers\AbstractSelectedMembers.cs (4)
34SyntaxTree tree, TextSpan textSpan, bool allowPartialSelection, CancellationToken cancellationToken)
38SyntaxTree tree, TextSpan textSpan, bool allowPartialSelection, CancellationToken cancellationToken)
42SyntaxTree tree, TextSpan textSpan, bool allowPartialSelection,
77SyntaxNode root, SourceText text, TextSpan textSpan,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\CommonFormattingHelpers.cs (10)
45public static IEnumerable<(SyntaxToken, SyntaxToken)> ConvertToTokenPairs(this SyntaxNode root, IReadOnlyList<TextSpan> spans)
81public static ValueTuple<SyntaxToken, SyntaxToken> ConvertToTokenPair(this SyntaxNode root, TextSpan textSpan)
157=> (token1.RawKind == 0) ? text.ToString(TextSpan.FromBounds(0, token2.SpanStart)) : text.ToString(TextSpan.FromBounds(token1.Span.End, token2.SpanStart));
259public static TextSpan GetSpanIncludingTrailingAndLeadingTriviaOfAdjacentTokens(SyntaxToken startToken, SyntaxToken endToken)
266return TextSpan.FromBounds(startPosition, endPosition);
324var fullSpan = node.FullSpan;
357public static TextSpan GetFormattingSpan(SyntaxNode root, TextSpan span)
367return TextSpan.FromBounds(startPosition, endPosition);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\StringBreaker.cs (10)
17public static void AddWordParts(ReadOnlySpan<char> identifier, ref TemporaryArray<TextSpan> parts)
20public static void AddCharacterParts(ReadOnlySpan<char> identifier, ref TemporaryArray<TextSpan> parts)
23public static void AddParts(ReadOnlySpan<char> text, bool word, ref TemporaryArray<TextSpan> parts)
27var span = StringBreaker.GenerateSpan(text, start, word);
41public static TextSpan GenerateSpan(ReadOnlySpan<char> identifier, int wordStart, bool word)
81private static TextSpan ScanCharacterRun(ReadOnlySpan<char> identifier, int length, int wordStart)
102private static TextSpan ScanWordRun(ReadOnlySpan<char> identifier, int length, int wordStart)
151private static TextSpan ScanLowerCaseRun(ReadOnlySpan<char> identifier, int length, int wordStart)
162private static TextSpan ScanNumber(ReadOnlySpan<char> identifier, int length, int wordStart)
170return TextSpan.FromBounds(wordStart, current);
src\roslyn\src\Analyzers\Core\CodeFixes\ConflictMarkerResolution\AbstractConflictMarkerCodeFixProvider.cs (8)
334edits.Add(new TextChange(TextSpan.FromBounds(startPos, startEnd), ""));
338edits.Add(new TextChange(TextSpan.FromBounds(firstMiddlePos, bottomEnd), ""));
347edits.Add(new TextChange(TextSpan.FromBounds(startPos, equalsEnd), ""));
351edits.Add(new TextChange(TextSpan.FromBounds(endPos, bottomEnd), ""));
360edits.Add(new TextChange(TextSpan.FromBounds(startPos, startEnd), ""));
366edits.Add(new TextChange(TextSpan.FromBounds(secondMiddlePos, equalsEnd), ""));
372edits.Add(new TextChange(TextSpan.FromBounds(firstMiddlePos, equalsEnd), ""));
377edits.Add(new TextChange(TextSpan.FromBounds(endPos, bottomEnd), ""));
src\roslyn\src\Analyzers\Core\CodeFixes\ImplementInterface\AbstractImplementInterfaceCodeFixProvider.cs (1)
21var span = context.Span;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeFixesAndRefactorings\AbstractFixAllSpanMappingService.cs (8)
20protected abstract Task<ImmutableDictionary<Document, ImmutableArray<TextSpan>>> GetFixAllSpansIfWithinGlobalStatementAsync(
21Document document, TextSpan span, CancellationToken cancellationToken);
23public Task<ImmutableDictionary<Document, ImmutableArray<TextSpan>>> GetFixAllSpansAsync(
24Document document, TextSpan triggerSpan, FixAllScope fixAllScope, CancellationToken cancellationToken)
32private async Task<ImmutableDictionary<Document, ImmutableArray<TextSpan>>> GetFixAllSpansAsync(
33Document document, TextSpan span, bool fixAllInContainingMember, CancellationToken cancellationToken)
50var builder = PooledDictionary<Document, ArrayBuilder<TextSpan>>.GetInstance();
75TextSpan span,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeRefactorings\CodeRefactoringContextExtensions.cs (9)
21this CodeRefactoringContext context, ImmutableArray<TCodeAction> actions, TextSpan? applicableToSpan = null)
59public static async Task<TSyntaxNode?> TryGetRelevantNodeAsync<TSyntaxNode>(this Document document, TextSpan span, CancellationToken cancellationToken) where TSyntaxNode : SyntaxNode
65public static TSyntaxNode? TryGetRelevantNode<TSyntaxNode>(this ParsedDocument document, TextSpan span, CancellationToken cancellationToken) where TSyntaxNode : SyntaxNode
68public static TSyntaxNode? TryGetRelevantNode<TSyntaxNode>(this ParsedDocument document, TextSpan span, bool allowEmptyNode, CancellationToken cancellationToken) where TSyntaxNode : SyntaxNode
76this Document document, TextSpan span, CancellationToken cancellationToken) where TSyntaxNode : SyntaxNode
82this Document document, TextSpan span, bool allowEmptyNodes, CancellationToken cancellationToken) where TSyntaxNode : SyntaxNode
89this ParsedDocument document, TextSpan span, CancellationToken cancellationToken) where TSyntaxNode : SyntaxNode
93this ParsedDocument document, TextSpan span, bool allowEmptyNodes, CancellationToken cancellationToken) where TSyntaxNode : SyntaxNode
102this ParsedDocument document, TextSpan span, bool allowEmptyNodes, int maxCount, ref TemporaryArray<TSyntaxNode> result, CancellationToken cancellationToken) where TSyntaxNode : SyntaxNode
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Simplification\Simplifiers\AbstractSimplifier.cs (1)
21out TextSpan issueSpan,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Utilities\NullableHelpers.cs (1)
56TextSpan span,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Indentation\CSharpSmartTokenFormatter.cs (2)
65_root, [TextSpan.FromBounds(startToken.SpanStart, endToken.Span.End)], _options.FormattingOptions, smartTokenformattingRules, cancellationToken);
119_root, [TextSpan.FromBounds(adjustedStartPosition, adjustedEndPosition)], _options.FormattingOptions, smartTokenFormattingRules, cancellationToken);
src\roslyn\src\Analyzers\CSharp\CodeFixes\GenerateMethod\GenerateDeconstructMethodCodeFixProvider.cs (1)
42var span = context.Span;
src\roslyn\src\Analyzers\CSharp\CodeFixes\MakeMemberRequired\CSharpMakeMemberRequiredCodeFixProvider.cs (1)
34var span = context.Span;
Completion\CompletionProviders\DeclarationName\DeclarationNameRecommender.NameGenerator.cs (7)
26using var parts = TemporaryArray<TextSpan>.Empty;
43using var breaks = TemporaryArray<TextSpan>.Empty;
50in TemporaryArray<TextSpan> breaks, string baseName, bool pluralize)
68private static Words GetLongestBackwardSubsequence(int length, in TemporaryArray<TextSpan> breaks, string baseName, bool pluralize)
75private static Words GetLongestForwardSubsequence(int length, in TemporaryArray<TextSpan> breaks, string baseName, bool pluralize)
78private static Words GetWords(int start, int end, in TemporaryArray<TextSpan> breaks, string baseName, bool pluralize)
84var @break = breaks[start];
ConvertToRawString\ConvertInterpolatedStringToRawStringCodeRefactoringProvider.cs (17)
314builder.Append(text.ToString(TextSpan.FromBounds(line.End, line.EndIncludingLineBreak)));
334builder.Append(text.ToString(TextSpan.FromBounds(firstNonWhitespacePos, line.EndIncludingLineBreak)));
482private static (ImmutableIntervalTree<TextSpan> interpolationInteriorSpans, ImmutableIntervalTree<TextSpan> restrictedSpans) GetInterpolationSpans(
485var interpolationInteriorSpans = new SegmentedList<TextSpan>();
486var restrictedSpans = new SegmentedList<TextSpan>();
493interpolationInteriorSpans.Add(TextSpan.FromBounds(interpolation.OpenBraceToken.Span.End, interpolation.CloseBraceToken.Span.Start));
503var descendantSpan = descendant.Span;
514restrictedSpans.Add(TextSpan.FromBounds(start, descendantSpan.End));
522ImmutableIntervalTree<TextSpan>.CreateFromUnsorted(new TextSpanIntervalIntrospector(), interpolationInteriorSpans),
523ImmutableIntervalTree<TextSpan>.CreateFromUnsorted(new TextSpanIntervalIntrospector(), restrictedSpans));
579builder.Append(text.ToString(TextSpan.FromBounds(line.End, line.EndIncludingLineBreak)));
591var currentLineLeadingWhitespace = line.Text!.ToString(TextSpan.FromBounds(line.Start, pos));
594builder.Append(text.ToString(TextSpan.FromBounds(line.Start + commonWhitespacePrefix.Length, line.EndIncludingLineBreak)));
612builder.Append(text.ToString(TextSpan.FromBounds(line.Start + commonWhitespacePrefix.Length, line.EndIncludingLineBreak)));
637ImmutableIntervalTree<TextSpan> interpolationInteriorSpans)
666var currentLineLeadingWhitespace = line.Text!.ToString(TextSpan.FromBounds(line.Start, pos));
EditAndContinue\BreakpointSpans.cs (35)
19public static bool TryGetBreakpointSpan(SyntaxTree tree, int position, CancellationToken cancellationToken, out TextSpan breakpointSpan)
70public static bool TryGetClosestBreakpointSpan(SyntaxNode root, int position, int minLength, out TextSpan span)
73var candidate = (TextSpan?)null;
110private static TextSpan CreateSpan(SyntaxToken startToken, SyntaxToken endToken)
111=> TextSpan.FromBounds(startToken.SpanStart, endToken.Span.End);
113private static TextSpan CreateSpan(SyntaxNode node)
116private static TextSpan CreateSpan(SyntaxNode node, SyntaxToken token)
117=> TextSpan.FromBounds(node.SpanStart, token.Span.End);
119private static TextSpan CreateSpan(SyntaxToken token)
120=> TextSpan.FromBounds(token.SpanStart, token.Span.End);
122private static TextSpan CreateSpan(SyntaxTokenList startOpt, SyntaxNodeOrToken startFallbackOpt, SyntaxNodeOrToken endOpt)
150return TextSpan.FromBounds(startPos, endPos);
165private static TextSpan? TryCreateSpanForNode(SyntaxNode node, int position)
300TextSpan createSpanForSwitchArm(SwitchExpressionArmSyntax switchArm)
440internal static TextSpan? CreateSpanForConstructorDeclaration(ConstructorDeclarationSyntax constructorSyntax, int position)
472internal static TextSpan CreateSpanForImplicitConstructorInitializer(ConstructorDeclarationSyntax constructor)
478internal static TextSpan CreateSpanForExplicitConstructorInitializer(ConstructorInitializerSyntax constructorInitializer)
484internal static TextSpan CreateSpanForImplicitPrimaryConstructorInitializer(TypeDeclarationSyntax typeDeclaration)
487return TextSpan.FromBounds(typeDeclaration.Identifier.SpanStart, typeDeclaration.ParameterList.Span.End);
506internal static TextSpan CreateSpanForExplicitPrimaryConstructorInitializer(PrimaryConstructorBaseTypeSyntax baseTypeSyntax)
512internal static TextSpan CreateSpanForCopyConstructor(RecordDeclarationSyntax recordDeclaration)
528internal static TextSpan CreateSpanForRecordParameter(ParameterSyntax parameter)
545internal static TextSpan CreateSpanForAutoPropertyAccessor(AccessorDeclarationSyntax accessor)
551private static TextSpan? TryCreateSpanForFieldDeclaration(BaseFieldDeclarationSyntax fieldDeclaration, int position)
554private static TextSpan? TryCreateSpanForSwitchLabel(SwitchLabelSyntax switchLabel, int position)
564private static TextSpan CreateSpanForBlock(BlockSyntax block, int position)
578private static TextSpan? TryCreateSpanForStatement(StatementSyntax statement, int position)
773private static TextSpan? TryCreateSpanForVariableDeclaration(VariableDeclarationSyntax declaration, int position)
782private static TextSpan? TryCreateSpanForVariableDeclaration(
797return default(TextSpan);
804return default(TextSpan);
828return default(TextSpan);
849internal static TextSpan CreateSpanForVariableDeclarator(
937private static TextSpan CreateSpanForCatchClause(CatchClauseSyntax catchClause)
997private static TextSpan? CreateSpanForAccessors(SyntaxList<AccessorDeclarationSyntax> accessors, int position)
EditAndContinue\CSharpEditAndContinueAnalyzer.cs (40)
69internal override bool TryFindMemberDeclaration(SyntaxNode? root, SyntaxNode node, TextSpan activeSpan, out OneOrMany<SyntaxNode> declarations)
182TextSpan span,
309private static TextSpan GetActiveSpan(BlockSyntax node, BlockPart part)
323private static TextSpan GetActiveSpan(ForEachStatementSyntax node, ForEachPart part)
327ForEachPart.VariableDeclaration => TextSpan.FromBounds(node.Type.SpanStart, node.Identifier.Span.End),
333private static TextSpan GetActiveSpan(ForEachVariableStatementSyntax node, ForEachPart part)
337ForEachPart.VariableDeclaration => TextSpan.FromBounds(node.Variable.SpanStart, node.Variable.Span.End),
343private static TextSpan GetActiveSpan(SwitchExpressionSyntax node, SwitchExpressionPart part)
347SwitchExpressionPart.SwitchBody => TextSpan.FromBounds(node.SwitchKeyword.SpanStart, node.CloseBraceToken.Span.End),
576protected override bool TryGetEnclosingBreakpointSpan(SyntaxToken token, out TextSpan span)
579protected override bool TryGetActiveSpan(SyntaxNode node, int statementPart, int minLength, out TextSpan span)
1595protected override TextSpan? TryGetDiagnosticSpan(SyntaxNode node, EditKind editKind)
1598internal static new TextSpan GetDiagnosticSpan(SyntaxNode node, EditKind editKind)
1601private static TextSpan? TryGetDiagnosticSpanImpl(SyntaxNode node, EditKind editKind)
1605internal static TextSpan? TryGetDiagnosticSpanImpl(SyntaxKind kind, SyntaxNode node, EditKind editKind)
1635return TextSpan.FromBounds(ns.NamespaceKeyword.SpanStart, ns.Name.Span.End);
1722return TextSpan.FromBounds(constraint.WhereKeyword.SpanStart, constraint.Constraints.Last().Span.End);
1763return TextSpan.FromBounds(usingStatement.UsingKeyword.SpanStart, usingStatement.CloseParenToken.Span.End);
1767return TextSpan.FromBounds(fixedStatement.FixedKeyword.SpanStart, fixedStatement.CloseParenToken.Span.End);
1771return TextSpan.FromBounds(lockStatement.LockKeyword.SpanStart, lockStatement.CloseParenToken.Span.End);
1794return TextSpan.FromBounds(ifStatement.IfKeyword.SpanStart, ifStatement.CloseParenToken.Span.End);
1801return TextSpan.FromBounds(switchStatement.SwitchKeyword.SpanStart,
1809return TextSpan.FromBounds(whileStatement.WhileKeyword.SpanStart, whileStatement.CloseParenToken.Span.End);
1816return TextSpan.FromBounds(forStatement.ForKeyword.SpanStart, forStatement.CloseParenToken.Span.End);
1821return TextSpan.FromBounds(
1934private static TextSpan GetDiagnosticSpan(SyntaxTokenList modifiers, SyntaxNodeOrToken start, SyntaxNodeOrToken end)
1935=> TextSpan.FromBounds((modifiers.Count != 0) ? modifiers.First().SpanStart : start.SpanStart, end.Span.End);
1937private static TextSpan CombineSpans(TextSpan first, TextSpan second, TextSpan defaultSpan)
1938=> (first.Length > 0 && second.Length > 0) ? TextSpan.FromBounds(first.Start, second.End) : (first.Length > 0) ? first : (second.Length > 0) ? second : defaultSpan;
1940internal override TextSpan GetLambdaParameterDiagnosticSpan(SyntaxNode lambda, int ordinal)
2292private readonly TextSpan? _span;
2301TextSpan? span = null)
2319var span = (spanNode != null) ? GetDiagnosticSpan(spanNode, _kind) : GetSpan();
2326private TextSpan GetSpan()
2641TextSpan newStatementSpan)
2688protected override TextSpan GetExceptionHandlingRegion(SyntaxNode node, out bool coversAllChildren)
2703return TextSpan.FromBounds(
SignatureHelp\TupleConstructionSignatureHelpProvider.cs (3)
38private SignatureHelpState? GetCurrentArgumentState(SyntaxNode root, int position, ISyntaxFactsService syntaxFacts, TextSpan currentSpan, CancellationToken cancellationToken)
65ISyntaxFactsService syntaxFacts, TextSpan currentSpan, CancellationToken cancellationToken, [NotNullWhen(true)] out TupleExpressionSyntax? result)
84ISyntaxFactsService syntaxFacts, TextSpan currentSpan, CancellationToken cancellationToken, [NotNullWhen(true)] out ParenthesizedExpressionSyntax? result)
src\roslyn\src\Analyzers\CSharp\CodeFixes\GenerateMethod\GenerateDeconstructMethodCodeFixProvider.cs (1)
42var span = context.Span;
src\roslyn\src\Analyzers\CSharp\CodeFixes\MakeMemberRequired\CSharpMakeMemberRequiredCodeFixProvider.cs (1)
34var span = context.Span;
src\roslyn\src\Compilers\CSharp\CSharpAnalyzerDriver\CSharpDeclarationComputer.cs (1)
21TextSpan span,
StringIndentation\CSharpStringIndentationService.cs (8)
29Document document, TextSpan textSpan, CancellationToken cancellationToken)
54var childSpan = child.FullSpan;
87if (!TryGetIndentSpan(text, (ExpressionSyntax)token.GetRequiredParent(), out _, out var indentSpan))
109if (!TryGetIndentSpan(text, interpolatedString, out var offset, out var indentSpan))
112using var _ = ArrayBuilder<TextSpan>.GetInstance(out var builder);
126private static bool IsInHole(InterpolatedStringExpressionSyntax interpolatedString, TextSpan sourceSpan)
158private static bool TryGetIndentSpan(SourceText text, ExpressionSyntax expression, out int offset, out TextSpan indentSpan)
179indentSpan = TextSpan.FromBounds(firstLine.Start, lastLine.Start + offset);
Structure\CSharpStructureHelpers.cs (15)
152var span = TextSpan.FromBounds(startComment.SpanStart, endComment.Span.End);
255textSpan: TextSpan.FromBounds(startPosition, endPosition),
256hintSpan: TextSpan.FromBounds(startPosition, hintTextEndToken.Span.End),
300TextSpan textSpan, string bannerText, bool autoCollapse,
308TextSpan textSpan, TextSpan hintSpan,
359var span = TextSpan.FromBounds(GetCollapsibleStart(startToken), spanEndPos);
360var hintSpan = GetHintSpan(node, hintEndPos);
372private static TextSpan GetHintSpan(SyntaxNode node, int endPos)
382return TextSpan.FromBounds(child.SpanStart, endPos);
386return TextSpan.FromBounds(node.SpanStart, endPos);
464textSpan: TextSpan.FromBounds(spanStart, spanEnd),
465hintSpan: TextSpan.FromBounds(hintSpanStart, hintSpanEnd),
Classification\SyntaxClassification\FunctionPointerUnmanagedCallingConventionClassifier.cs (1)
22TextSpan textSpan,
Classification\Worker.cs (10)
26private readonly TextSpan _textSpan;
30private Worker(TextSpan textSpan, SegmentedList<ClassifiedSpan> result, CancellationToken cancellationToken)
38IEnumerable<SyntaxToken> tokens, TextSpan textSpan, SegmentedList<ClassifiedSpan> result, CancellationToken cancellationToken)
46SyntaxNode node, TextSpan textSpan, SegmentedList<ClassifiedSpan> result, CancellationToken cancellationToken)
52private readonly void AddClassification(TextSpan span, string type)
58private readonly bool ShouldAddSpan(TextSpan span)
98var childSpan = childNode.FullSpan;
120var span = token.Span;
133AddClassification(TextSpan.FromBounds(token.Span.Start, token.Span.End - "u8".Length), type);
134AddClassification(TextSpan.FromBounds(token.Span.End - "u8".Length, token.Span.End), ClassificationTypeNames.Keyword);
Rename\CSharpRenameRewriterLanguageService.cs (15)
54private readonly ImmutableDictionary<TextSpan, RenameLocation> _renameLocations;
55private readonly ImmutableHashSet<TextSpan> _conflictLocations;
91private readonly ImmutableDictionary<TextSpan, ImmutableSortedSet<TextSpan>?> _stringAndCommentTextSpans;
103private List<(TextSpan oldSpan, TextSpan newSpan)>? _modifiedSubSpans;
107private void AddModifiedSpan(TextSpan oldSpan, TextSpan newSpan)
294var oldSpan = originalNode.Span;
309var newSpan = newNode.Span;
388var oldSpan = token.Span;
634private SyntaxToken RenameInStringLiteral(SyntaxToken oldToken, SyntaxToken newToken, ImmutableSortedSet<TextSpan>? subSpansToReplace, Func<SyntaxTriviaList, string, string, SyntaxTriviaList, SyntaxToken> createNewStringLiteral)
640var oldSpan = oldToken.Span;
668var oldSpan = trivia.Span;
679ImmutableSortedSet<TextSpan>? subSpansToReplace = null;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Indentation\CSharpSmartTokenFormatter.cs (2)
65_root, [TextSpan.FromBounds(startToken.SpanStart, endToken.Span.End)], _options.FormattingOptions, smartTokenformattingRules, cancellationToken);
119_root, [TextSpan.FromBounds(adjustedStartPosition, adjustedEndPosition)], _options.FormattingOptions, smartTokenFormattingRules, cancellationToken);
AddImport\AbstractAddImportFeatureService.cs (5)
66Document document, TextSpan span, string diagnosticId, int maxResults,
90Document document, TextSpan span, string diagnosticId, int maxResults,
492Document document, TextSpan span, ImmutableArray<Diagnostic> diagnostics, int maxResultsPerDiagnostic,
515Document document, TextSpan span, ImmutableArray<string> diagnosticIds,
540TextSpan span,
AddImport\IAddImportFeatureService.cs (4)
23Document document, TextSpan span, string diagnosticId, int maxResults,
32Document document, TextSpan span, ImmutableArray<Diagnostic> diagnostics, int maxResultsPerDiagnostic,
46/// <see cref="GetFixesAsync(Document, TextSpan, string, int, ISymbolSearchService, AddImportOptions,
51Document document, TextSpan span, ImmutableArray<string> diagnosticIds,
AddImport\Remote\IRemoteMissingImportDiscoveryService.cs (2)
25Checksum solutionChecksum, RemoteServiceCallbackId callbackId, DocumentId documentId, TextSpan span, string diagnosticId, int maxResults,
29Checksum solutionChecksum, RemoteServiceCallbackId callbackId, DocumentId id, TextSpan span, ImmutableArray<string> diagnosticIds,
ClassifiedSpansAndHighlightSpanFactory.cs (13)
32Document document, TextSpan sourceSpan, ClassificationOptions options, CancellationToken cancellationToken)
36var narrowSpan = sourceSpan;
37var lineSpan = GetLineSpanForReference(sourceText, narrowSpan);
44private static TextSpan GetLineSpanForReference(SourceText sourceText, TextSpan referenceSpan)
53return TextSpan.FromBounds(Math.Min(firstNonWhitespacePosition, referenceSpan.Start), sourceLine.End);
57Document document, TextSpan narrowSpan, TextSpan widenedSpan, ClassificationOptions options, CancellationToken cancellationToken)
59var highlightSpan = new TextSpan(
69Document document, TextSpan narrowSpan, TextSpan widenedSpan, ClassificationOptions options, CancellationToken cancellationToken)
83new ClassifiedSpan(ClassificationTypeNames.Text, TextSpan.FromBounds(widenedSpan.Start, narrowSpan.Start)),
85new ClassifiedSpan(ClassificationTypeNames.Text, TextSpan.FromBounds(narrowSpan.End, widenedSpan.End)),
CodeFixes\Service\CodeFixService.cs (18)
96TextDocument document, TextSpan range, CodeActionRequestPriority? priority, CancellationToken cancellationToken)
125var spanToErrorDiagnostics = new SortedDictionary<TextSpan, List<DiagnosticData>>();
126var spanToOtherDiagnostics = new SortedDictionary<TextSpan, List<DiagnosticData>>();
152SortedDictionary<TextSpan, List<DiagnosticData>> spanToDiagnostics,
172TextSpan range,
250TextSpan range,
260private static SortedDictionary<TextSpan, List<DiagnosticData>> ConvertToMap(
267var spanToDiagnostics = new SortedDictionary<TextSpan, List<DiagnosticData>>();
285Document document, TextSpan? textSpan, string diagnosticId, DiagnosticSeverity minimumSeverity, CancellationToken cancellationToken)
316var spanToDiagnostics = new SortedDictionary<TextSpan, List<DiagnosticData>>
337TextSpan? textSpan,
437SortedDictionary<TextSpan, List<DiagnosticData>> spanToDiagnostics,
457using var _2 = PooledDictionary<CodeFixProvider, List<(TextSpan range, List<DiagnosticData> diagnostics)>>.GetInstance(out var fixerToRangesAndDiagnostics);
587TextSpan range,
590PooledDictionary<CodeFixProvider, List<(TextSpan range, List<DiagnosticData> diagnostics)>> fixerToRangesAndDiagnostics)
657TextDocument document, TextSpan span, CodeFixProvider fixer, CodeChangeProviderMetadata? fixerMetadata,
738TextSpan diagnosticsSpan,
773TextSpan fixesSpan,
CodeFixes\Service\ICodeFixService.cs (7)
17IAsyncEnumerable<CodeFixCollection> StreamFixesAsync(TextDocument document, TextSpan textSpan, CodeActionRequestPriority? priority, CancellationToken cancellationToken);
24Task<CodeFixCollection?> GetMostSevereFixAsync(TextDocument document, TextSpan range, CodeActionRequestPriority? priority, CancellationToken cancellationToken);
26Task<CodeFixCollection?> GetDocumentFixAllForIdInSpanAsync(Document document, TextSpan? textSpan, string diagnosticId, DiagnosticSeverity severity, CancellationToken cancellationToken);
27Task<Document> ApplyCodeFixesForSpecificDiagnosticIdAsync(Document document, TextSpan? textSpan, string diagnosticId, DiagnosticSeverity severity, IProgress<CodeAnalysisProgress> progressTracker, CancellationToken cancellationToken);
34public static IAsyncEnumerable<CodeFixCollection> StreamFixesAsync(this ICodeFixService service, TextDocument document, TextSpan range, CancellationToken cancellationToken)
37public static Task<ImmutableArray<CodeFixCollection>> GetFixesAsync(this ICodeFixService service, TextDocument document, TextSpan range, CancellationToken cancellationToken)
40public static Task<ImmutableArray<CodeFixCollection>> GetFixesAsync(this ICodeFixService service, TextDocument document, TextSpan textSpan, CodeActionRequestPriority? priority, CancellationToken cancellationToken)
CodeFixes\Suppression\AbstractSuppressionCodeFixProvider.cs (6)
142TextDocument textDocument, TextSpan span, IEnumerable<Diagnostic> diagnostics, CancellationToken cancellationToken)
150internal async Task<ImmutableArray<PragmaWarningCodeAction>> GetPragmaSuppressionsAsync(Document document, TextSpan span, IEnumerable<Diagnostic> diagnostics, CancellationToken cancellationToken)
157Document document, TextSpan span, IEnumerable<Diagnostic> diagnostics, bool skipSuppressMessage, bool skipUnsuppress, CancellationToken cancellationToken)
261private async Task<SuppressionTargetInfo?> GetSuppressionTargetInfoAsync(Document document, TextSpan span, CancellationToken cancellationToken)
321TextSpan? minContainingSpan = null;
324var declSpan = decl.DeclaredNode.Span;
CodeFixes\Suppression\AbstractSuppressionCodeFixProvider.PragmaHelpers.cs (6)
26TextSpan diagnosticSpan,
28Func<SyntaxToken, TextSpan, SyntaxToken> getNewStartToken,
29Func<SyntaxToken, TextSpan, SyntaxToken> getNewEndToken,
65private static int GetPositionForPragmaInsertion(ImmutableArray<SyntaxTrivia> triviaList, TextSpan currentDiagnosticSpan, AbstractSuppressionCodeFixProvider fixer, bool isStartToken, out SyntaxTrivia triviaAtIndex)
104TextSpan currentDiagnosticSpan,
156TextSpan currentDiagnosticSpan,
CodeFixes\Suppression\AbstractSuppressionCodeFixProvider.RemoveSuppressionCodeAction_Pragma.cs (6)
87SyntaxToken getNewStartToken(SyntaxToken startToken, TextSpan currentDiagnosticSpan) => includeStartTokenChange
91SyntaxToken getNewEndToken(SyntaxToken endToken, TextSpan currentDiagnosticSpan) => includeEndTokenChange
124var diagnosticSpan = diagnostic.Location.SourceSpan;
158private SyntaxToken GetNewTokenWithModifiedPragma(SyntaxToken token, TextSpan currentDiagnosticSpan, bool add, bool toggle, int indexOfTriviaToRemoveOrToggle, bool isStartToken, CancellationToken cancellationToken)
165private SyntaxToken GetNewTokenWithAddedPragma(SyntaxToken token, TextSpan currentDiagnosticSpan, bool isStartToken, CancellationToken cancellationToken)
208var spanToCheck = new TextSpan(
CodeLens\IRemoteCodeLensReferencesService.cs (4)
14ValueTask<ReferenceCount?> GetReferenceCountAsync(Checksum solutionChecksum, DocumentId documentId, TextSpan textSpan, int maxResultCount, CancellationToken cancellationToken);
15ValueTask<ImmutableArray<ReferenceLocationDescriptorAndDocument>?> FindReferenceLocationsAsync(Checksum solutionChecksum, DocumentId documentId, TextSpan textSpan, CancellationToken cancellationToken);
16ValueTask<ImmutableArray<ReferenceMethodDescriptor>?> FindReferenceMethodsAsync(Checksum solutionChecksum, DocumentId documentId, TextSpan textSpan, CancellationToken cancellationToken);
17ValueTask<string?> GetFullyQualifiedNameAsync(Checksum solutionChecksum, DocumentId documentId, TextSpan textSpan, CancellationToken cancellationToken);
CodeRefactorings\AddMissingImports\IAddMissingImportsFeatureService.cs (4)
23Task<ImmutableArray<AddImportFixData>> AnalyzeAsync(Document document, TextSpan textSpan, bool cleanupDocument, CancellationToken cancellationToken);
27/// IAddMissingImportsFeatureService, Document, TextSpan, IProgress{CodeAnalysisProgress}, CancellationToken)"/> but
40this IAddMissingImportsFeatureService service, Document document, TextSpan textSpan, IProgress<CodeAnalysisProgress> progressTracker, CancellationToken cancellationToken)
46this IAddMissingImportsFeatureService service, Document document, TextSpan textSpan, bool cleanupDocument, IProgress<CodeAnalysisProgress> progressTracker, CancellationToken cancellationToken)
CodeRefactorings\MoveType\AbstractMoveTypeService.cs (6)
29public abstract Task<Solution> GetModifiedSolutionAsync(Document document, TextSpan textSpan, MoveTypeOperationKind operationKind, CancellationToken cancellationToken);
30public abstract Task<ImmutableArray<CodeAction>> GetRefactoringAsync(Document document, TextSpan textSpan, CancellationToken cancellationToken);
41protected abstract Task<TTypeDeclarationSyntax?> GetRelevantNodeAsync(Document document, TextSpan textSpan, CancellationToken cancellationToken);
49Document document, TextSpan textSpan, CancellationToken cancellationToken)
56public override async Task<Solution> GetModifiedSolutionAsync(Document document, TextSpan textSpan, MoveTypeOperationKind operationKind, CancellationToken cancellationToken)
70private async Task<TTypeDeclarationSyntax?> GetTypeDeclarationAsync(Document document, TextSpan textSpan, CancellationToken cancellationToken)
CodeRefactorings\SyncNamespace\AbstractSyncNamespaceCodeRefactoringProvider.State.cs (1)
69TextSpan textSpan,
Completion\Providers\AbstractPartialMethodCompletionProvider.cs (3)
79Document document, int position, TextSpan span, DeclarationModifiers modifiers, SyntaxToken token, CancellationToken cancellationToken)
98var lineSpan = text.Lines.GetLineFromPosition(position).Span;
102private CompletionItem CreateItem(IMethodSymbol method, int line, TextSpan span, SemanticModel semanticModel, DeclarationModifiers modifiers, SyntaxToken token)
ConvertTupleToStruct\AbstractConvertTupleToStructCodeRefactoringProvider.cs (6)
120TextSpan span,
170private CodeAction CreateAction(Document document, TextSpan span, Scope scope, bool isRecord)
184Document document, TextSpan span, CancellationToken cancellationToken)
217Document document, TextSpan span, Scope scope, bool isRecord, CancellationToken cancellationToken)
251(DocumentId documentId, TextSpan span) renamedToken,
263Document document, TextSpan span, Scope scope, bool isRecord, CancellationToken cancellationToken)
Copilot\IProposalAdjusterService.cs (29)
55TextSpan? applicableToSpan, CancellationToken cancellationToken);
64LineFormattingOptions? lineFormattingOptions, TextSpan? applicableToSpan,
90TextSpan? applicableToSpan, CancellationToken cancellationToken)
116TextSpan? applicableToSpan, CancellationToken cancellationToken)
192var span = change.Span;
210span = TextSpan.FromBounds(span.Start + 1, Math.Max(span.Start + 1, span.End));
225span = TextSpan.FromBounds(Math.Min(span.Start, span.End - 1), span.End - 1);
255SourceText originalText, ImmutableArray<TextChange> changes, TextSpan protectedSpan)
284private static bool IntersectsProtectedSpan(TextSpan editSpan, TextSpan protectedSpan)
301TextSpan protectedSpan,
319var beforeSpan = TextSpan.FromBounds(change.Span.Start, protectedSpan.Start);
324var afterSpan = TextSpan.FromBounds(protectedSpan.End, change.Span.End);
331var overlapText = originalText.ToString(TextSpan.FromBounds(protectedSpan.Start, change.Span.End));
336TextSpan.FromBounds(change.Span.Start, protectedSpan.Start),
341var overlapText = originalText.ToString(TextSpan.FromBounds(change.Span.Start, protectedSpan.End));
346TextSpan.FromBounds(protectedSpan.End, change.Span.End),
387var totalNewSpan = await GetSpanOfChangesAsync(originalDocument, forkedDocument, cancellationToken).ConfigureAwait(false);
413var totalNewSpan = await GetSpanOfChangesAsync(originalDocument, forkedDocument, cancellationToken).ConfigureAwait(false);
424private static TextSpan GetSpanToAnalyze(SyntaxNode forkedRoot, ImmutableArray<TextSpan> newSpans)
427var newSpan = TextSpan.FromBounds(
434return TextSpan.FromBounds(
442private static async Task<TextSpan> GetSpanOfChangesAsync(Document oldDocument, Document newDocument, CancellationToken cancellationToken)
447var totalNewSpan = GetSpanToAnalyze(forkedRoot, totalSpans);
458SourceText originalText, ImmutableArray<TextChange> changes, TextSpan protectedSpan)
Diagnostics\Service\DiagnosticAnalyzerService.IncrementalMemberEditAnalyzer.cs (10)
40private readonly record struct MemberSpans(DocumentId DocumentId, VersionStamp Version, ImmutableArray<TextSpan> Spans);
134ImmutableArray<TextSpan> oldMemberSpans,
141var span = spanBased ? changedMember.FullSpan : (TextSpan?)null;
149ImmutableArray<TextSpan> oldMemberSpans,
161ImmutableArray<TextSpan> oldMemberSpans,
174ImmutableArray<TextSpan> oldMemberSpans,
190private async Task<(SyntaxNode changedMember, int changedMemberId, ImmutableArray<TextSpan> memberSpans, Document lastDocument)?> TryGetChangedMemberAsync(
227private async Task<ImmutableArray<TextSpan>> GetOrCreateMemberSpansAsync(Document document, VersionStamp version, CancellationToken cancellationToken)
244static async Task<ImmutableArray<TextSpan>> CreateMemberSpansAsync(Document document, VersionStamp version, CancellationToken cancellationToken)
257private void SaveMemberSpans(DocumentId documentId, VersionStamp version, ImmutableArray<TextSpan> memberSpans)
Diagnostics\Service\DiagnosticAnalyzerService_RemoteOrLocalDispatcher.cs (1)
216TextSpan? range,
EditAndContinue\AbstractEditAndContinueAnalyzer.cs (48)
89internal abstract bool TryFindMemberDeclaration(SyntaxNode? root, SyntaxNode node, TextSpan activeSpan, out OneOrMany<SyntaxNode> declarations);
122protected abstract bool TryGetEnclosingBreakpointSpan(SyntaxToken token, out TextSpan span);
139protected abstract bool TryGetActiveSpan(SyntaxNode node, int statementPart, int minLength, out TextSpan span);
258protected abstract TextSpan? TryGetDiagnosticSpan(SyntaxNode node, EditKind editKind);
260internal TextSpan GetDiagnosticSpan(SyntaxNode node, EditKind editKind)
263protected virtual TextSpan GetBodyDiagnosticSpan(SyntaxNode node, EditKind editKind)
283internal abstract TextSpan GetLambdaParameterDiagnosticSpan(SyntaxNode lambda, int ordinal);
395protected abstract TextSpan GetExceptionHandlingRegion(SyntaxNode node, out bool coversAllChildren);
398internal abstract void ReportEnclosingExceptionHandlingRudeEdits(RudeEditDiagnosticsBuilder diagnostics, IEnumerable<Edit<SyntaxNode>> exceptionHandlingEdits, SyntaxNode oldStatement, TextSpan newStatementSpan);
619using var _3 = ArrayBuilder<(SyntaxNode OldNode, SyntaxNode NewNode, TextSpan DiagnosticSpan)>.GetInstance(out var triviaEdits);
719lineText = text.ToString(TextSpan.FromBounds(diagnostic.Span.Start, Math.Min(diagnostic.Span.Start + 120, line.End)));
968var oldStatementSpan = oldActiveStatements[i].UnmappedSpan;
1040var newStatementSpan = FindClosestActiveSpan(newStatement, statementPart);
1177var newSpan = GetDeletedDeclarationActiveSpan(topMatch.Matches, oldDeclaration);
1189var oldStatementSpan = oldActiveStatements[activeStatementIndex].UnmappedSpan;
1366TextSpan newSpan;
1496var trackedSpan = text.Lines.GetTextSpan(trackedLineSpan);
1511private ActiveStatement GetActiveStatementWithSpan(UnmappedActiveStatement oldStatement, SyntaxTree newTree, TextSpan newSpan, RudeEditDiagnosticsBuilder diagnostics, CancellationToken cancellationToken)
1534TextSpan newStatementSyntaxSpan,
1752public ActiveStatementExceptionRegions GetExceptionRegions(SyntaxNode root, TextSpan unmappedActiveStatementSpan, bool isNonLeaf, CancellationToken cancellationToken)
1773var span = GetExceptionHandlingRegion(exceptionHandlingAncestors[i], out var coversAllChildren);
1792private TextSpan GetDeletedNodeDiagnosticSpan(
1817private TextSpan FindClosestActiveSpan(SyntaxNode statement, int statementPart)
1819if (TryGetActiveSpan(statement, statementPart, minLength: statement.Span.Length, out var span))
1844internal TextSpan GetDeletedNodeActiveSpan(IReadOnlyDictionary<SyntaxNode, SyntaxNode> forwardMap, SyntaxNode deletedNode)
1862internal TextSpan GetDeletedDeclarationActiveSpan(IReadOnlyDictionary<SyntaxNode, SyntaxNode> forwardMap, SyntaxNode deletedDeclaration)
1884internal TextSpan GetDeletedNodeDiagnosticSpan(IReadOnlyDictionary<SyntaxNode, SyntaxNode> forwardMap, SyntaxNode deletedNode)
1944protected void AddAroundActiveStatementRudeDiagnostic(RudeEditDiagnosticsBuilder diagnostics, SyntaxNode? oldNode, SyntaxNode? newNode, TextSpan newActiveStatementSpan)
1989protected void AddRudeDeleteAroundActiveStatement(RudeEditDiagnosticsBuilder diagnostics, SyntaxNode oldNode, TextSpan newActiveStatementSpan)
2218[Out] ArrayBuilder<(SyntaxNode OldNode, SyntaxNode NewNode, TextSpan DiagnosticSpan)> triviaEdits,
2271var rudeEditSpan = default(TextSpan);
2284if (!TryGetEnclosingBreakpointSpan(oldToken, out var oldBreakpointSpan) ||
2285!TryGetEnclosingBreakpointSpan(newToken, out var newBreakpointSpan))
2344var oldSpan = oldTokensEnum.Current.Span;
2345var newSpan = newTokensEnum.Current.Span;
2404rudeEditSpan = TextSpan.FromBounds(newTokensEnum.Current.FullSpan.Start, newTokensEnum.Current.SpanStart);
2410rudeEditSpan = TextSpan.FromBounds(lastNewToken.Span.End, newTokensEnum.Current.SpanStart);
2698IReadOnlyList<(SyntaxNode OldNode, SyntaxNode NewNode, TextSpan DiagnosticSpan)> triviaEdits,
2939var diagnosticSpan = GetDeletedNodeDiagnosticSpan(editScript.Match.Matches, oldDeclaration);
3323TextSpan? newActiveStatementSpan = null;
5158TextSpan diagnosticSpan)
5259public void Report(RudeEditKind kind, TextSpan span)
5286public void Report(RudeEditKind kind, CancellationToken cancellationToken, TextSpan? span = null, string?[]? arguments = null, RudeEditReportingCondition? condition = null)
5289public RudeEditDiagnostic CreateRudeEdit(RudeEditKind kind, CancellationToken cancellationToken, TextSpan? span = null, string?[]? arguments = null)
5365TextSpan diagnosticSpan = default)
6429private TextSpan GetSymbolLocationSpan(ISymbol symbol, CancellationToken cancellationToken)
6885var span = node.FullSpan;
EmbeddedLanguages\Classification\AbstractEmbeddedLanguageClassificationService.cs (5)
39Document document, ImmutableArray<TextSpan> textSpans, ClassificationOptions options, SegmentedList<ClassifiedSpan> result, CancellationToken cancellationToken)
52SolutionServices services, Project? project, SemanticModel semanticModel, ImmutableArray<TextSpan> textSpans, ClassificationOptions options, SegmentedList<ClassifiedSpan> result, CancellationToken cancellationToken)
58foreach (var textSpan in textSpans)
70TextSpan textSpan,
79private readonly TextSpan _textSpan = textSpan;
EmbeddedLanguages\RegularExpressions\RegexParser.CaptureInfoAnalyzer.cs (12)
32private readonly ImmutableDictionary<int, TextSpan>.Builder _captureNumberToSpan;
33private readonly ImmutableDictionary<string, TextSpan>.Builder _captureNameToSpan;
41_captureNumberToSpan = ImmutableDictionary.CreateBuilder<int, TextSpan>();
42_captureNameToSpan = ImmutableDictionary.CreateBuilder<string, TextSpan>();
50public static (ImmutableDictionary<string, TextSpan>, ImmutableDictionary<int, TextSpan>) Analyze(
57private (ImmutableDictionary<string, TextSpan>, ImmutableDictionary<int, TextSpan>) Analyze(
139private readonly TextSpan GetGroupingSpan(RegexGroupingNode grouping)
181private readonly void RecordCapture(RegexToken token, TextSpan span)
197ImmutableDictionary<T, TextSpan>.Builder mapping,
199T val, TextSpan span)
EncapsulateField\AbstractEncapsulateFieldService.cs (7)
42protected abstract Task<ImmutableArray<IFieldSymbol>> GetFieldsAsync(Document document, TextSpan span, CancellationToken cancellationToken);
45public async Task<EncapsulateFieldResult?> EncapsulateFieldsInSpanAsync(Document document, TextSpan span, bool useDefaultBehavior, CancellationToken cancellationToken)
58public async Task<ImmutableArray<CodeAction>> GetEncapsulateFieldCodeActionsAsync(Document document, TextSpan span, CancellationToken cancellationToken)
280Func<DocumentId, TextSpan, bool> filter,
297private static bool IntersectsWithAny(DocumentId documentId, TextSpan span, ISet<(DocumentId documentId, TextSpan span)> constructorLocations)
311private ISet<(DocumentId documentId, TextSpan span)> GetConstructorLocations(Solution solution, INamedTypeSymbol containingType)
ExternalAccess\VSTypeScript\VSTypeScriptClassificationService.cs (5)
26public void AddLexicalClassifications(SourceText text, TextSpan textSpan, SegmentedList<ClassifiedSpan> result, CancellationToken cancellationToken)
30public void AddSyntacticClassifications(SolutionServices services, SyntaxNode? root, ImmutableArray<TextSpan> textSpans, SegmentedList<ClassifiedSpan> result, CancellationToken cancellationToken)
34public Task AddSyntacticClassificationsAsync(Document document, ImmutableArray<TextSpan> textSpans, SegmentedList<ClassifiedSpan> result, CancellationToken cancellationToken)
37public Task AddEmbeddedLanguageClassificationsAsync(Document document, ImmutableArray<TextSpan> textSpans, ClassificationOptions options, SegmentedList<ClassifiedSpan> result, CancellationToken cancellationToken)
49public async Task AddSemanticClassificationsAsync(Document document, ImmutableArray<TextSpan> textSpans, ClassificationOptions options, SegmentedList<ClassifiedSpan> result, CancellationToken cancellationToken)
GenerateConstructors\AbstractGenerateConstructorsCodeRefactoringProvider.cs (6)
78Document priorDocument, TextSpan priorSelection, Document currentDocument, IntentDataProvider intentDataProvider, CancellationToken cancellationToken)
153TextSpan textSpan,
154Action<CodeAction, TextSpan> registerSingleAction,
190private async Task<(CodeAction CodeAction, TextSpan ApplicableToSpan)?> HandleNonSelectionAsync(
192TextSpan textSpan,
266Document document, TextSpan textSpan, bool addNullChecks, Accessibility? desiredAccessibility, CancellationToken cancellationToken)
GenerateEqualsAndGetHashCodeFromMembers\GenerateEqualsAndGetHashCodeFromMembersCodeRefactoringProvider.cs (1)
170TextSpan textSpan,
Highlighting\Keywords\AbstractKeywordHighlighter.cs (8)
21protected sealed override void AddHighlightsForNode(SyntaxNode node, List<TextSpan> highlights, CancellationToken cancellationToken)
24protected abstract void AddHighlights(TNode node, List<TextSpan> highlights, CancellationToken cancellationToken);
31private static readonly ObjectPool<List<TextSpan>> s_textSpanListPool = new(() => []);
39SyntaxNode root, int position, List<TextSpan> highlights, CancellationToken cancellationToken)
67private static bool AnyIntersects(int position, List<TextSpan> highlights)
69foreach (var highlight in highlights)
78protected abstract void AddHighlightsForNode(SyntaxNode node, List<TextSpan> highlights, CancellationToken cancellationToken);
80protected static TextSpan EmptySpan(int position)
Navigation\IDocumentNavigationService.cs (6)
19Task<bool> CanNavigateToSpanAsync(Workspace workspace, DocumentId documentId, TextSpan textSpan, bool allowInvalidSpan, CancellationToken cancellationToken);
27Task<INavigableLocation?> GetLocationForSpanAsync(Workspace workspace, DocumentId documentId, TextSpan textSpan, bool allowInvalidSpan, CancellationToken cancellationToken);
33public virtual Task<bool> CanNavigateToSpanAsync(Workspace workspace, DocumentId documentId, TextSpan textSpan, bool allowInvalidSpan, CancellationToken cancellationToken)
39public virtual Task<INavigableLocation?> GetLocationForSpanAsync(Workspace workspace, DocumentId documentId, TextSpan textSpan, bool allowInvalidSpan, CancellationToken cancellationToken)
48public static Task<bool> CanNavigateToSpanAsync(this IDocumentNavigationService service, Workspace workspace, DocumentId documentId, TextSpan textSpan, CancellationToken cancellationToken)
54public static Task<INavigableLocation?> GetLocationForSpanAsync(this IDocumentNavigationService service, Workspace workspace, DocumentId documentId, TextSpan textSpan, CancellationToken cancellationToken)
ReplaceDocCommentTextWithTag\AbstractReplaceDocCommentTextWithTagCodeRefactoringProvider.cs (8)
47var singleWordSpan = ExpandSpan(sourceText, span, fullyQualifiedName: false);
69var fullyQualifiedSpan = ExpandSpan(sourceText, span, fullyQualifiedName: true);
116CodeRefactoringContext context, SemanticModel semanticModel, SyntaxToken token, TextSpan replacementSpan, CancellationToken cancellationToken)
147CodeRefactoringContext context, TextSpan expandedSpan, string replacement)
158Document document, TextSpan span, string replacement, CancellationToken cancellationToken)
166private static TextSpan ExpandSpan(SourceText sourceText, TextSpan span, bool fullyQualifiedName)
187return TextSpan.FromBounds(startInclusive, endExclusive);
SimplifyTypeNames\AbstractSimplifyTypeNamesCodeFixProvider.cs (4)
40SyntaxNode root, SemanticModel model, TextSpan span,
73var span = context.Span;
114private bool CanSimplifyTypeNameExpression(SemanticModel model, SyntaxNode node, TSimplifierOptions options, TextSpan span, out string diagnosticId, CancellationToken cancellationToken)
119model, node, options, out var issueSpan, out diagnosticId, out _, cancellationToken))
Snippets\SnippetFunctionService.cs (9)
39public static async Task<string?> GetSimplifiedTypeNameAsync(Document document, TextSpan fieldSpan, string fullyQualifiedTypeName, SimplifierOptions simplifierOptions, CancellationToken cancellationToken)
42var updatedTextSpan = new TextSpan(fieldSpan.Start, fullyQualifiedTypeName.Length);
57public async Task<string?> GetSwitchExpansionAsync(Document document, TextSpan caseGenerationLocation, TextSpan switchExpressionLocation, SimplifierOptions simplifierOptions, CancellationToken cancellationToken)
121protected abstract Task<ITypeSymbol?> GetEnumSymbolAsync(Document document, TextSpan switchExpressionSpan, CancellationToken cancellationToken);
123protected abstract Task<(Document, TextSpan)> GetDocumentWithEnumCaseAsync(Document document, string fullyQualifiedTypeName, string firstEnumMemberName, TextSpan caseGenerationLocation, CancellationToken cancellationToken);
129TextSpan caseGenerationLocation,
141private static async Task<string?> GetSimplifiedTypeNameAtSpanAsync(Document documentWithFullyQualifiedTypeName, TextSpan fullyQualifiedTypeSpan, SimplifierOptions simplifierOptions, CancellationToken cancellationToken)
SplitOrMergeIfStatements\AbstractMergeIfStatementsCodeRefactoringProvider.cs (7)
22protected abstract bool IsApplicableSpan(SyntaxNode node, TextSpan span, out SyntaxNode ifOrElseIf);
52void RegisterRefactoring(MergeDirection direction, TextSpan upperIfOrElseIfSpan, TextSpan lowerIfOrElseIfSpan)
59TextSpan.FromBounds(upperIfOrElseIfSpan.Start, lowerIfOrElseIfSpan.End));
64private async Task<Document> RefactorAsync(Document document, TextSpan upperIfOrElseIfSpan, TextSpan lowerIfOrElseIfSpan, CancellationToken cancellationToken)
79static SyntaxNode FindIfOrElseIf(TextSpan span, IIfLikeStatementGenerator ifGenerator, SyntaxNode root)
src\roslyn\src\Analyzers\Core\Analyzers\SimplifyTypeNames\SimplifyTypeNamesDiagnosticAnalyzerBase.cs (5)
67out TextSpan issueSpan, out string diagnosticId, out bool inDeclaration,
104out var issueSpan, out var diagnosticId, out var inDeclaration,
121internal static Diagnostic CreateDiagnostic(SemanticModel model, TSimplifierOptions options, AnalyzerOptions analyzerOptions, TextSpan issueSpan, string diagnosticId, bool inDeclaration)
192/// indicate that <c>intervalTree</c> may be updated by adding a new non-overlapping <see cref="TextSpan"/>
235static bool TryProceedWithInterval(bool addIfAvailable, TextSpan span, StrongBox<bool> completed, TextSpanMutableIntervalTree intervalTree)
src\roslyn\src\Analyzers\Core\CodeFixes\ConflictMarkerResolution\AbstractConflictMarkerCodeFixProvider.cs (8)
334edits.Add(new TextChange(TextSpan.FromBounds(startPos, startEnd), ""));
338edits.Add(new TextChange(TextSpan.FromBounds(firstMiddlePos, bottomEnd), ""));
347edits.Add(new TextChange(TextSpan.FromBounds(startPos, equalsEnd), ""));
351edits.Add(new TextChange(TextSpan.FromBounds(endPos, bottomEnd), ""));
360edits.Add(new TextChange(TextSpan.FromBounds(startPos, startEnd), ""));
366edits.Add(new TextChange(TextSpan.FromBounds(secondMiddlePos, equalsEnd), ""));
372edits.Add(new TextChange(TextSpan.FromBounds(firstMiddlePos, equalsEnd), ""));
377edits.Add(new TextChange(TextSpan.FromBounds(endPos, bottomEnd), ""));
src\roslyn\src\Analyzers\Core\CodeFixes\ImplementInterface\AbstractImplementInterfaceCodeFixProvider.cs (1)
21var span = context.Span;
Structure\BlockSpan.cs (15)
13TextSpan textSpan,
14TextSpan hintSpan,
15ImmutableArray<(TextSpan textSpan, TextSpan hintSpan, string type)> subHeadings = default,
30public TextSpan TextSpan { get; } = textSpan;
35public TextSpan HintSpan { get; } = hintSpan;
54public ImmutableArray<(TextSpan textSpan, TextSpan hintSpan, string type)> SubHeadings { get; } = subHeadings;
77string type, bool isCollapsible, TextSpan textSpan, string bannerText = Ellipses, bool autoCollapse = false, bool isDefaultCollapsed = false)
97Optional<TextSpan> textSpan = default,
98Optional<TextSpan> hintSpan = default,
99Optional<ImmutableArray<(TextSpan textSpan, TextSpan hintSpan, string type)>> subHeadings = default,
106var newTextSpan = textSpan.HasValue ? textSpan.Value : TextSpan;
107var newHintSpan = hintSpan.HasValue ? hintSpan.Value : HintSpan;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Collections\NormalizedTextSpanCollection.cs (40)
14internal sealed class NormalizedTextSpanCollection : ReadOnlyCollection<TextSpan>
29public NormalizedTextSpanCollection(TextSpan span)
42public NormalizedTextSpanCollection(IEnumerable<TextSpan> spans)
93var span1 = left[index1];
94var span2 = right[index2];
122spans.Add(TextSpan.FromBounds(start, end));
161var span1 = left[index1];
162var span2 = right[index2];
221var span1 = left[index1];
222var span2 = right[index2];
283var span1 = left[index1];
284var span2 = right[index2];
296spans.Add(TextSpan.FromBounds(Math.Max(lastEnd, span1.Start), span1.End));
307spans.Add(TextSpan.FromBounds(Math.Max(lastEnd, span1.Start), span2.Start));
333var span1 = left[index1++];
334spans.Add(TextSpan.FromBounds(Math.Max(lastEnd, span1.Start), span1.End));
398var span1 = this[index1];
399var span2 = set[index2];
429public bool OverlapsWith(TextSpan span)
458var span1 = this[index1];
459var span2 = set[index2];
483public bool IntersectsWith(TextSpan span)
506foreach (var s in this)
533foreach (var s in this)
546private static IList<TextSpan> ListFromSpan(TextSpan span)
548IList<TextSpan> list =
564private static void UpdateSpanUnion(TextSpan span, IList<TextSpan> spans, ref int start, ref int end)
568spans.Add(TextSpan.FromBounds(start, end));
585private static IList<TextSpan> NormalizeSpans(IEnumerable<TextSpan> spans)
592var sorted = new List<TextSpan>(spans);
599sorted.Sort(delegate (TextSpan s1, TextSpan s2) { return s1.Start.CompareTo(s2.Start); });
601IList<TextSpan> normalized = new List<TextSpan>(sorted.Count);
611normalized.Add(TextSpan.FromBounds(oldStart, oldEnd));
621normalized.Add(TextSpan.FromBounds(oldStart, oldEnd));
626private sealed class OrderedSpanList : List<TextSpan>
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Diagnostics\IPragmaSuppressionsAnalyzer.cs (1)
24TextSpan? span,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\EmbeddedLanguages\Common\EmbeddedSyntaxTrivia.cs (1)
34public TextSpan GetSpan()
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\AnalysisContextExtensions.cs (13)
13private static bool ShouldAnalyze(TextSpan? contextFilterSpan, TextSpan span)
23public static bool ShouldAnalyzeSpan(this SyntaxTreeAnalysisContext context, TextSpan span)
33public static bool ShouldAnalyzeSpan(this SemanticModelAnalysisContext context, TextSpan span)
43public static bool ShouldAnalyzeSpan(this SymbolStartAnalysisContext context, TextSpan span, SyntaxTree tree)
63public static bool ShouldAnalyzeSpan(this SymbolAnalysisContext context, TextSpan span, SyntaxTree tree)
83public static bool ShouldAnalyzeSpan(this AdditionalFileAnalysisContext context, TextSpan span)
93public static bool ShouldAnalyzeSpan(this OperationBlockStartAnalysisContext context, TextSpan span)
103public static bool ShouldAnalyzeSpan(this OperationBlockAnalysisContext context, TextSpan span)
113public static bool ShouldAnalyzeSpan(this OperationAnalysisContext context, TextSpan span)
123public static bool ShouldAnalyzeSpan(this SyntaxNodeAnalysisContext context, TextSpan span)
133public static bool ShouldAnalyzeSpan<TSytnaxKind>(this CodeBlockStartAnalysisContext<TSytnaxKind> context, TextSpan span) where TSytnaxKind : struct
143public static bool ShouldAnalyzeSpan(this CodeBlockAnalysisContext context, TextSpan span)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SourceTextExtensions_SharedWithCodeStyle.cs (2)
32this SourceText text, TextSpan span, Func<int, CancellationToken, bool> isPositionHidden, CancellationToken cancellationToken)
44this SourceText text, TextSpan span, Func<int, CancellationToken, bool> isPositionHidden,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\TextSpanExtensions.cs (22)
18public static IEnumerable<TextSpan> ToNormalizedSpans(this IEnumerable<TextSpan> spans)
21public static ImmutableArray<TextSpan> ToNormalizedSpans(this ImmutableArray<TextSpan> spans)
24public static TextSpan Collapse(this IEnumerable<TextSpan> spans)
29foreach (var span in spans)
48return TextSpan.FromBounds(start, end);
54public static bool IsAround(this TextSpan span, SyntaxNodeOrToken node) => IsAround(span, node, node);
60public static bool IsAround(this TextSpan span, SyntaxNodeOrToken startNode, SyntaxNodeOrToken endNode)
62var innerSpan = TextSpan.FromBounds(startNode.Span.Start, endNode.Span.End);
63var outerSpan = TextSpan.FromBounds(startNode.FullSpan.Start, endNode.FullSpan.End);
67public static IEnumerable<TextSpan> Subtract(this TextSpan span, TextSpan except)
81yield return TextSpan.FromBounds(span.Start, startSegmentEnd);
85yield return TextSpan.FromBounds(endSegmentStart, span.End);
88public static IEnumerable<TextSpan> Subtract(this IEnumerable<TextSpan> spans, TextSpan except)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\Context\FormattingContext.IndentationData.cs (14)
17private abstract class IndentationData(TextSpan textSpan)
19public TextSpan TextSpan { get; } = textSpan;
22public IndentationData WithTextSpan(TextSpan span)
25protected abstract IndentationData WithTextSpanCore(TextSpan span);
28private sealed class SimpleIndentationData(TextSpan textSpan, int indentation) : IndentationData(textSpan)
32protected override IndentationData WithTextSpanCore(TextSpan span)
56public RelativeIndentationData(FormattingContext formattingContext, int inseparableRegionSpanStart, TextSpan textSpan, IndentBlockOperation operation, Func<FormattingContext, IndentBlockOperation, SyntaxToken> effectiveBaseTokenGetter, Func<FormattingContext, IndentBlockOperation, SyntaxToken, int> indentationDeltaGetter, Func<FormattingContext, SyntaxToken, int> baseIndentationGetter)
67this.InseparableRegionSpan = TextSpan.FromBounds(inseparableRegionSpanStart, textSpan.End);
70private RelativeIndentationData(FormattingContext formattingContext, int inseparableRegionSpanStart, TextSpan textSpan, IndentBlockOperation operation, Func<FormattingContext, IndentBlockOperation, SyntaxToken> effectiveBaseTokenGetter, Func<FormattingContext, IndentBlockOperation, SyntaxToken, int> indentationDeltaGetter, Func<FormattingContext, SyntaxToken, int> baseIndentationGetter, int lazyIndentationDelta)
81this.InseparableRegionSpan = TextSpan.FromBounds(inseparableRegionSpanStart, textSpan.End);
84public TextSpan InseparableRegionSpan { get; }
106protected override IndentationData WithTextSpanCore(TextSpan span)
118public AdjustedIndentationData(TextSpan textSpan, IndentationData baseIndentationData, int adjustment)
141protected override IndentationData WithTextSpanCore(TextSpan span)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\Rules\BaseIndentationFormattingRule.cs (10)
20private readonly TextSpan _span;
22public BaseIndentationFormattingRule(SyntaxNode root, TextSpan span, int baseIndentation, AbstractFormattingRule? vbHelperFormattingRule = null)
130private TextSpan AdjustTextSpan(TextSpan textSpan)
131=> TextSpan.FromBounds(Math.Max(_span.Start, textSpan.Start), Math.Min(_span.End, textSpan.End));
133private static void SetInnermostNodeForSpan(SyntaxNode root, ref TextSpan span, out SyntaxToken token1, out SyntaxToken token2, out SyntaxNode? commonNode)
149private static void GetTokens(SyntaxNode root, TextSpan span, out SyntaxToken token1, out SyntaxToken token2)
168private static TextSpan GetSpanFromTokens(TextSpan span, SyntaxToken token1, SyntaxToken token2)
217return TextSpan.FromBounds(start, end);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\Rules\Operations\FormattingOperations.cs (8)
30=> CreateAnchorIndentationOperation(anchorToken, endToken, TextSpan.FromBounds(anchorToken.Span.End, endToken.Span.End));
35public static AnchorIndentationOperation CreateAnchorIndentationOperation(SyntaxToken anchorToken, SyntaxToken endToken, TextSpan textSpan)
42=> CreateSuppressOperation(startToken, endToken, TextSpan.FromBounds(startToken.SpanStart, endToken.Span.End), option);
47private static SuppressOperation CreateSuppressOperation(SyntaxToken startToken, SyntaxToken endToken, TextSpan textSpan, SuppressOption option)
55var span = CommonFormattingHelpers.GetSpanIncludingTrailingAndLeadingTriviaOfAdjacentTokens(startToken, endToken);
62public static IndentBlockOperation CreateIndentBlockOperation(SyntaxToken startToken, SyntaxToken endToken, TextSpan textSpan, int indentationDelta, IndentBlockOption option)
70var span = CommonFormattingHelpers.GetSpanIncludingTrailingAndLeadingTriviaOfAdjacentTokens(startToken, endToken);
78public static IndentBlockOperation CreateRelativeIndentBlockOperation(SyntaxToken baseToken, SyntaxToken startToken, SyntaxToken endToken, TextSpan textSpan, int indentationDelta, IndentBlockOption option)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\TriviaEngine\AbstractTriviaFormatter.cs (13)
45private delegate void WhitespaceAppender<T>(LineColumn lineColumn, LineColumnDelta delta, TextSpan span, ArrayBuilder<T> changes);
387var span = GetTextSpan(trivia1, trivia2);
499var span = TextSpan.FromBounds(start, end);
715var insertionPoint = GetInsertionSpan(changes);
730private TextSpan GetInsertionSpan(ArrayBuilder<TextChange> changes)
765TextSpan notUsed,
822private TextChange GetWhitespaceTextChange(LineColumn lineColumn, LineColumnDelta delta, TextSpan span)
825private void AddWhitespaceTextChange(LineColumn lineColumn, LineColumnDelta delta, TextSpan span, ArrayBuilder<TextChange> changes)
831private TextSpan GetTextSpan(SyntaxTrivia trivia1, SyntaxTrivia trivia2)
835return TextSpan.FromBounds(this.StartPosition, trivia2.FullSpan.Start);
840return TextSpan.FromBounds(trivia1.FullSpan.End, this.EndPosition);
843return TextSpan.FromBounds(trivia1.FullSpan.End, trivia2.FullSpan.Start);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\NamingStyle.cs (21)
160var spanToCheck = TextSpan.FromBounds(0, name.Length - Suffix.Length);
174private WordSpanEnumerable GetWordSpans(string name, TextSpan nameSpan)
177private static string Substring(string name, TextSpan wordSpan)
180private static readonly Func<string, TextSpan, bool> s_firstCharIsLowerCase = (val, span) => !DoesCharacterHaveCasing(val[span.Start]) || char.IsLower(val[span.Start]);
181private static readonly Func<string, TextSpan, bool> s_firstCharIsUpperCase = (val, span) => !DoesCharacterHaveCasing(val[span.Start]) || char.IsUpper(val[span.Start]);
183private static readonly Func<string, TextSpan, bool> s_wordIsAllUpperCase = (val, span) =>
196private static readonly Func<string, TextSpan, bool> s_wordIsAllLowerCase = (val, span) =>
210string name, TextSpan nameSpan, Func<string, TextSpan, bool> wordCheck,
216foreach (var wordSpan in GetWordSpans(name, nameSpan))
232private bool CheckPascalCase(string name, TextSpan nameSpan, out string reason)
237private bool CheckAllUpper(string name, TextSpan nameSpan, out string reason)
242private bool CheckAllLower(string name, TextSpan nameSpan, out string reason)
248string name, TextSpan nameSpan,
249Func<string, TextSpan, bool> firstWordCheck,
250Func<string, TextSpan, bool> restWordCheck,
260foreach (var wordSpan in GetWordSpans(name, nameSpan))
291private bool CheckCamelCase(string name, TextSpan nameSpan, out string reason)
298private bool CheckFirstUpper(string name, TextSpan nameSpan, out string reason)
406using var parts = TemporaryArray<TextSpan>.Empty;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\RefactoringHelpers\AbstractRefactoringHelpers.cs (10)
39/// Returns unchanged <paramref name="span"/> in case <see cref="TextSpan.IsEmpty"/>.
40/// Returns empty Span with original <see cref="TextSpan.Start"/> in case it contains only whitespace.
42private static TextSpan GetTrimmedTextSpan(SourceText sourceText, TextSpan span)
56return TextSpan.FromBounds(start, end);
60SourceText sourceText, SyntaxNode root, TextSpan selectionRaw, bool allowEmptyNodes, int maxCount, ref TemporaryArray<TSyntaxNode> result, CancellationToken cancellationToken) where TSyntaxNode : SyntaxNode
69var selectionTrimmed = GetTrimmedTextSpan(sourceText, selectionRaw);
354var rightNodeSpanWithoutAttributes = syntaxFacts.GetSpanWithoutAttributes(root, rightNode);
366TextSpan selectionTrimmed,
384var spanWithoutAttributes = syntaxFacts.GetSpanWithoutAttributes(root, nonHiddenExtractedNode);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SelectedMembers\AbstractSelectedMembers.cs (4)
34SyntaxTree tree, TextSpan textSpan, bool allowPartialSelection, CancellationToken cancellationToken)
38SyntaxTree tree, TextSpan textSpan, bool allowPartialSelection, CancellationToken cancellationToken)
42SyntaxTree tree, TextSpan textSpan, bool allowPartialSelection,
77SyntaxNode root, SourceText text, TextSpan textSpan,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\CommonFormattingHelpers.cs (10)
45public static IEnumerable<(SyntaxToken, SyntaxToken)> ConvertToTokenPairs(this SyntaxNode root, IReadOnlyList<TextSpan> spans)
81public static ValueTuple<SyntaxToken, SyntaxToken> ConvertToTokenPair(this SyntaxNode root, TextSpan textSpan)
157=> (token1.RawKind == 0) ? text.ToString(TextSpan.FromBounds(0, token2.SpanStart)) : text.ToString(TextSpan.FromBounds(token1.Span.End, token2.SpanStart));
259public static TextSpan GetSpanIncludingTrailingAndLeadingTriviaOfAdjacentTokens(SyntaxToken startToken, SyntaxToken endToken)
266return TextSpan.FromBounds(startPosition, endPosition);
324var fullSpan = node.FullSpan;
357public static TextSpan GetFormattingSpan(SyntaxNode root, TextSpan span)
367return TextSpan.FromBounds(startPosition, endPosition);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\StringBreaker.cs (10)
17public static void AddWordParts(ReadOnlySpan<char> identifier, ref TemporaryArray<TextSpan> parts)
20public static void AddCharacterParts(ReadOnlySpan<char> identifier, ref TemporaryArray<TextSpan> parts)
23public static void AddParts(ReadOnlySpan<char> text, bool word, ref TemporaryArray<TextSpan> parts)
27var span = StringBreaker.GenerateSpan(text, start, word);
41public static TextSpan GenerateSpan(ReadOnlySpan<char> identifier, int wordStart, bool word)
81private static TextSpan ScanCharacterRun(ReadOnlySpan<char> identifier, int length, int wordStart)
102private static TextSpan ScanWordRun(ReadOnlySpan<char> identifier, int length, int wordStart)
151private static TextSpan ScanLowerCaseRun(ReadOnlySpan<char> identifier, int length, int wordStart)
162private static TextSpan ScanNumber(ReadOnlySpan<char> identifier, int length, int wordStart)
170return TextSpan.FromBounds(wordStart, current);
EditAndContinue\BreakpointSpans.vb (28)
13Friend Function TryGetBreakpointSpan(tree As SyntaxTree, position As Integer, cancellationToken As CancellationToken, <Out> ByRef breakpointSpan As TextSpan) As Boolean
58Public Function TryGetClosestBreakpointSpan(root As SyntaxNode, position As Integer, minLength As Integer, <Out> ByRef span As TextSpan) As Boolean
61Dim candidate As TextSpan? = Nothing
91Private Function CreateSpan(node As SyntaxNode) As TextSpan
92Return TextSpan.FromBounds(node.SpanStart, node.Span.End)
95Private Function TryCreateSpan(Of TNode As SyntaxNode)(list As SeparatedSyntaxList(Of TNode)) As TextSpan?
100Return TextSpan.FromBounds(list.First.SpanStart, list.Last.Span.End)
103Private Function TryCreateSpanForNode(node As SyntaxNode, position As Integer) As TextSpan?
174Return TextSpan.FromBounds(asSingleLine.IfKeyword.SpanStart, asSingleLine.ThenKeyword.Span.End)
235Private Function CreateSpanForMethodBase(methodBase As MethodBaseSyntax) As TextSpan
237Return TextSpan.FromBounds(methodBase.DeclarationKeyword.SpanStart, methodBase.Span.End)
240Return TextSpan.FromBounds(methodBase.Modifiers.First().SpanStart, methodBase.Span.End)
243Private Function TryCreateSpanForPropertyStatement(node As PropertyStatementSyntax) As TextSpan?
250Return TextSpan.FromBounds(node.Identifier.Span.Start, node.Initializer.Span.End)
254Return TextSpan.FromBounds(node.Identifier.Span.Start, node.AsClause.Span.End)
260Private Function TryCreateSpanForVariableDeclaration(modifiers As SyntaxTokenList, declarators As SeparatedSyntaxList(Of VariableDeclaratorSyntax), position As Integer) As TextSpan?
334Private Function TryCreateSpanForFromClause(fromClause As FromClauseSyntax, position As Integer) As TextSpan?
352Private Function TryCreateSpanForFunctionAggregation(functionAggregation As FunctionAggregationSyntax) As TextSpan?
360Private Function TryCreateSpanForOrderByClause(orderByClause As OrderByClauseSyntax, position As Integer) As TextSpan?
368Private Function TryCreateSpanForOrderingSyntax(orderingSyntax As OrderingSyntax) As TextSpan?
372Private Function TryCreateSpanForPartitionWhileClauseSyntax(partitionWhileClause As PartitionWhileClauseSyntax) As TextSpan?
376Private Function TryCreateSpanForCollectionRangeVariable(collectionRangeVariable As CollectionRangeVariableSyntax) As TextSpan?
392Private Function TryCreateSpanForWhereClause(clause As WhereClauseSyntax) As TextSpan?
396Private Function TryCreateSpanForGroupByClause(clause As GroupByClauseSyntax, position As Integer) As TextSpan?
417Return TextSpan.FromBounds(clause.Keys.First.SpanStart, clause.Span.End)
420Private Function TryCreateSpanForSelectClause(clause As SelectClauseSyntax) As TextSpan?
428Private Function TryCreateSpanForLetClause(clause As LetClauseSyntax, position As Integer) As TextSpan?
432Private Function TryCreateSpanForExpression(expression As ExpressionSyntax) As TextSpan?
EditAndContinue\VisualBasicEditAndContinueAnalyzer.vb (31)
29Friend Overrides Function TryFindMemberDeclaration(rootOpt As SyntaxNode, node As SyntaxNode, activeSpan As TextSpan, <Out> ByRef declarations As OneOrMany(Of SyntaxNode)) As Boolean
101span As TextSpan,
302Protected Overrides Function TryGetEnclosingBreakpointSpan(token As SyntaxToken, <Out> ByRef span As TextSpan) As Boolean
306Protected Overrides Function TryGetActiveSpan(node As SyntaxNode, statementPart As Integer, minLength As Integer, <Out> ByRef span As TextSpan) As Boolean
1057Protected Overrides Function TryGetDiagnosticSpan(node As SyntaxNode, editKind As EditKind) As TextSpan?
1061Protected Overloads Shared Function GetDiagnosticSpan(node As SyntaxNode, editKind As EditKind) As TextSpan
1065Private Shared Function TryGetDiagnosticSpanImpl(node As SyntaxNode, editKind As EditKind) As TextSpan?
1069Protected Overrides Function GetBodyDiagnosticSpan(node As SyntaxNode, editKind As EditKind) As TextSpan
1074Friend Shared Function TryGetDiagnosticSpanImpl(kind As SyntaxKind, node As SyntaxNode, editKind As EditKind) As TextSpan?
1245Return TextSpan.FromBounds(newWith.NewKeyword.Span.Start,
1277Return TextSpan.FromBounds(groupJoin.GroupKeyword.SpanStart, groupJoin.JoinKeyword.Span.End)
1292Return TextSpan.FromBounds(partition.SkipOrTakeKeyword.SpanStart, partition.WhileKeyword.Span.End)
1306Private Overloads Shared Function GetDiagnosticSpan(ifKeyword As SyntaxToken, condition As SyntaxNode, thenKeywordOpt As SyntaxToken) As TextSpan
1307Return TextSpan.FromBounds(ifKeyword.Span.Start,
1311Private Overloads Shared Function GetDiagnosticSpan(node As NamespaceStatementSyntax) As TextSpan
1312Return TextSpan.FromBounds(node.NamespaceKeyword.SpanStart, node.Name.Span.End)
1315Private Overloads Shared Function GetDiagnosticSpan(node As TypeStatementSyntax) As TextSpan
1321Private Overloads Shared Function GetDiagnosticSpan(modifiers As SyntaxTokenList, start As SyntaxNodeOrToken, endNode As SyntaxNodeOrToken) As TextSpan
1322Return TextSpan.FromBounds(If(modifiers.Count <> 0, modifiers.First.SpanStart, start.SpanStart),
1326Private Overloads Shared Function GetDiagnosticSpan(header As MethodBaseSyntax) As TextSpan
1387Return TextSpan.FromBounds(startToken.SpanStart, endToken.Span.End)
1390Private Overloads Shared Function GetDiagnosticSpan(lambda As LambdaHeaderSyntax) As TextSpan
1400Return TextSpan.FromBounds(startToken.SpanStart, endToken.Span.End)
1403Friend Overrides Function GetLambdaParameterDiagnosticSpan(lambda As SyntaxNode, ordinal As Integer) As TextSpan
1697Private ReadOnly _span As TextSpan?
1705Optional span As TextSpan? = Nothing)
1724Private Function GetSpan() As TextSpan
2083newStatementSpan As TextSpan)
2115Protected Overrides Function GetExceptionHandlingRegion(node As SyntaxNode, <Out> ByRef coversAllChildren As Boolean) As TextSpan
2123Return TextSpan.FromBounds(tryBlock.FinallyBlock.SpanStart, tryBlock.EndTryStatement.Span.End)
2126Return TextSpan.FromBounds(tryBlock.CatchBlocks.First().SpanStart, tryBlock.EndTryStatement.Span.End)
src\roslyn\src\Compilers\VisualBasic\BasicAnalyzerDriver\VisualBasicDeclarationComputer.vb (1)
16span As TextSpan,
CodeCleanup\Providers\AbstractTokensCodeCleanupProvider.vb (4)
20document As Document, root As SyntaxNode, spans As ImmutableArray(Of TextSpan), cancellationToken As CancellationToken) As Task(Of Rewriter)
22Public Async Function CleanupAsync(document As Document, spans As ImmutableArray(Of TextSpan), options As CodeCleanupOptions, cancellationToken As CancellationToken) As Task(Of Document) Implements ICodeCleanupProvider.CleanupAsync
30Public Async Function CleanupAsync(root As SyntaxNode, spans As ImmutableArray(Of TextSpan), options As SyntaxFormattingOptions, services As SolutionServices, cancellationToken As CancellationToken) As Task(Of SyntaxNode) Implements ICodeCleanupProvider.CleanupAsync
44Public Sub New(spans As ImmutableArray(Of TextSpan), cancellationToken As CancellationToken)
CodeCleanup\Providers\RemoveUnnecessaryLineContinuationCodeCleanupProvider.vb (6)
32Public Async Function CleanupAsync(document As Document, spans As ImmutableArray(Of TextSpan), options As CodeCleanupOptions, cancellationToken As CancellationToken) As Task(Of Document) Implements ICodeCleanupProvider.CleanupAsync
45Public Function CleanupAsync(root As SyntaxNode, spans As ImmutableArray(Of TextSpan), options As SyntaxFormattingOptions, services As SolutionServices, cancellationToken As CancellationToken) As Task(Of SyntaxNode) Implements ICodeCleanupProvider.CleanupAsync
55Private ReadOnly _spans As ImmutableArray(Of TextSpan)
57Public Shared Function Process(root As SyntaxNode, spans As ImmutableArray(Of TextSpan), cancellationToken As CancellationToken) As SyntaxNode
62Private Sub New(root As SyntaxNode, spans As ImmutableArray(Of TextSpan))
102Private Sub Cleanup(root As SyntaxNode, span As TextSpan, cancellationToken As CancellationToken)
Rename\VisualBasicRenameRewriterLanguageService.vb (14)
46Private ReadOnly _renameLocations As ImmutableDictionary(Of TextSpan, RenameLocation)
47Private ReadOnly _conflictLocations As ImmutableHashSet(Of TextSpan)
81Private ReadOnly _stringAndCommentTextSpans As ImmutableDictionary(Of TextSpan, ImmutableSortedSet(Of TextSpan))
91Private _modifiedSubSpans As List(Of ValueTuple(Of TextSpan, TextSpan))
94Private ReadOnly _complexifiedSpans As HashSet(Of TextSpan) = New HashSet(Of TextSpan)
96Private Sub AddModifiedSpan(oldSpan As TextSpan, newSpan As TextSpan)
186Me._modifiedSubSpans = New List(Of ValueTuple(Of TextSpan, TextSpan))()
590Private Function RenameInStringLiteral(oldToken As SyntaxToken, newToken As SyntaxToken, subSpansToReplace As ImmutableSortedSet(Of TextSpan), createNewStringLiteral As Func(Of SyntaxTriviaList, String, String, SyntaxTriviaList, SyntaxToken)) As SyntaxToken
627Dim subSpansToReplace As ImmutableSortedSet(Of TextSpan) = Nothing
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Formatting\Rules\BaseFormattingRule.vb (8)
28Optional textSpan As TextSpan = Nothing,
38Protected Shared Sub SetAlignmentBlockOperation(operations As List(Of IndentBlockOperation), baseToken As SyntaxToken, startToken As SyntaxToken, endToken As SyntaxToken, span As TextSpan, Optional [option] As IndentBlockOption = IndentBlockOption.RelativePosition)
46Protected Shared Sub AddAbsolutePositionIndentBlockOperation(operations As List(Of IndentBlockOperation), startToken As SyntaxToken, endToken As SyntaxToken, indentation As Integer, span As TextSpan, Optional [option] As IndentBlockOption = IndentBlockOption.AbsolutePosition)
50Private Shared Function GetAlignmentSpan(startToken As SyntaxToken, endToken As SyntaxToken) As TextSpan
52Return TextSpan.FromBounds(previousToken.Span.End, endToken.FullSpan.End)
55Private Shared Function GetIndentBlockSpan(startToken As SyntaxToken, endToken As SyntaxToken) As TextSpan
64Return TextSpan.FromBounds(spanStart, trivia.FullSpan.Start)
68Return TextSpan.FromBounds(spanStart, nextToken.SpanStart)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Formatting\Rules\NodeBasedFormattingRule.vb (2)
79AddIndentBlockOperation(operations, baseToken, startToken, endToken, TextSpan.FromBounds(startToken.SpanStart, endToken.Span.End))
157operations.Add(FormattingOperations.CreateIndentBlockOperation(caseBlockLastToken, nextTokenAfterCase, TextSpan.FromBounds(caseBlockLastToken.Span.End, nextTokenAfterCase.SpanStart), 1, IndentBlockOption.RelativePosition))
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\VisualBasic\Indentation\SpecialFormattingOperation.vb (5)
73TextSpan.FromBounds(startToken.FullSpan.Start, node.FullSpan.End), indentationDelta:=1, [option]:=IndentBlockOption.RelativePosition))
111baseToken, startToken, endToken, TextSpan.FromBounds(baseToken.Span.End, closeBrace.Span.End), indentationDelta, IndentBlockOption.RelativePosition))
149Dim span As TextSpan
157span = TextSpan.FromBounds(baseToken.Span.End, firstToken.SpanStart)
160span = TextSpan.FromBounds(baseToken.Span.End, closeBrace.Span.End)
CaseCorrection\AbstractCaseCorrectionService.cs (4)
20protected abstract void AddReplacements(SemanticModel? semanticModel, SyntaxNode root, ImmutableArray<TextSpan> spans, ConcurrentDictionary<SyntaxToken, SyntaxToken> replacements, CancellationToken cancellationToken);
22public async Task<Document> CaseCorrectAsync(Document document, ImmutableArray<TextSpan> spans, CancellationToken cancellationToken)
41public SyntaxNode CaseCorrect(SyntaxNode root, ImmutableArray<TextSpan> spans, CancellationToken cancellationToken)
44private SyntaxNode CaseCorrect(SemanticModel? semanticModel, SyntaxNode root, ImmutableArray<TextSpan> spans, CancellationToken cancellationToken)
Classification\AbstractClassificationService.cs (10)
30public abstract void AddLexicalClassifications(SourceText text, TextSpan textSpan, SegmentedList<ClassifiedSpan> result, CancellationToken cancellationToken);
34Document document, ImmutableArray<TextSpan> textSpans, ClassificationOptions options, SegmentedList<ClassifiedSpan> result, CancellationToken cancellationToken)
40Document document, ImmutableArray<TextSpan> textSpans, ClassificationOptions options, SegmentedList<ClassifiedSpan> result, CancellationToken cancellationToken)
47ImmutableArray<TextSpan> textSpans,
108ImmutableArray<TextSpan> textSpans,
138ImmutableArray<TextSpan> textSpans,
157foreach (var span in reassignedVariableSpans)
165foreach (var span in obsoleteSymbolSpans)
201public async Task AddSyntacticClassificationsAsync(Document document, ImmutableArray<TextSpan> textSpans, SegmentedList<ClassifiedSpan> result, CancellationToken cancellationToken)
208SolutionServices services, SyntaxNode? root, ImmutableArray<TextSpan> textSpans, SegmentedList<ClassifiedSpan> result, CancellationToken cancellationToken)
Classification\ClassifierHelper.cs (16)
31TextSpan span,
59ImmutableArray<TextSpan> spans,
97var widenedSpan = new TextSpan(spans[0].Start, spans[^1].End);
114TextSpan widenedSpan,
158private static void AdjustSpans(SegmentedList<ClassifiedSpan> spans, TextSpan widenedSpan)
206TextSpan.FromBounds(
239Func<TClassifiedSpan, TextSpan> getSpan,
240Func<TClassifiedSpan, TextSpan, TClassifiedSpan> createSpan)
265var syntacticPartSpan = getSpan(syntacticPart);
289var firstSemanticPartSpan = getSpan(firstSemanticPart);
290var lastSemanticPartSpan = getSpan(lastSemanticPart);
297finalParts.Add(createSpan(syntacticPart, TextSpan.FromBounds(
307var semanticPart1Span = getSpan(semanticPart1);
308var semanticPart2Span = getSpan(semanticPart2);
315finalParts.Add(createSpan(syntacticPart, TextSpan.FromBounds(
323finalParts.Add(createSpan(syntacticPart, TextSpan.FromBounds(
Classification\IClassificationService.cs (5)
28void AddLexicalClassifications(SourceText text, TextSpan textSpan, SegmentedList<ClassifiedSpan> result, CancellationToken cancellationToken);
34void AddSyntacticClassifications(SolutionServices services, SyntaxNode? root, ImmutableArray<TextSpan> textSpans, SegmentedList<ClassifiedSpan> result, CancellationToken cancellationToken);
46Task AddSyntacticClassificationsAsync(Document document, ImmutableArray<TextSpan> textSpans, SegmentedList<ClassifiedSpan> result, CancellationToken cancellationToken);
63Task AddSemanticClassificationsAsync(Document document, ImmutableArray<TextSpan> textSpans, ClassificationOptions options, SegmentedList<ClassifiedSpan> result, CancellationToken cancellationToken);
74Task AddEmbeddedLanguageClassificationsAsync(Document document, ImmutableArray<TextSpan> textSpans, ClassificationOptions options, SegmentedList<ClassifiedSpan> result, CancellationToken cancellationToken);
Classification\SyntaxClassification\AbstractNameSyntaxClassifier.cs (1)
31TextSpan span,
Classification\SyntaxClassification\AbstractSyntaxClassifier.cs (2)
22public virtual void AddClassifications(SyntaxNode syntax, TextSpan textSpan, SemanticModel semanticModel, ClassificationOptions options, SegmentedList<ClassifiedSpan> result, CancellationToken cancellationToken)
26public virtual void AddClassifications(SyntaxToken syntax, TextSpan textSpan, SemanticModel semanticModel, ClassificationOptions options, SegmentedList<ClassifiedSpan> result, CancellationToken cancellationToken)
Classification\SyntaxClassification\ISyntaxClassifier.cs (2)
29void AddClassifications(SyntaxNode node, TextSpan textSpan, SemanticModel semanticModel, ClassificationOptions options, SegmentedList<ClassifiedSpan> result, CancellationToken cancellationToken);
34void AddClassifications(SyntaxToken token, TextSpan textSpan, SemanticModel semanticModel, ClassificationOptions options, SegmentedList<ClassifiedSpan> result, CancellationToken cancellationToken);
CodeCleanup\AbstractCodeCleanerService.cs (30)
27protected abstract ImmutableArray<TextSpan> GetSpansToAvoid(SyntaxNode root);
29public async Task<Document> CleanupAsync(Document document, ImmutableArray<TextSpan> spans, CodeCleanupOptions options, ImmutableArray<ICodeCleanupProvider> providers, CancellationToken cancellationToken)
73public async Task<SyntaxNode> CleanupAsync(SyntaxNode root, ImmutableArray<TextSpan> spans, SyntaxFormattingOptions options, SolutionServices services, ImmutableArray<ICodeCleanupProvider> providers, CancellationToken cancellationToken)
114private static ImmutableArray<TextSpan> GetTextSpansFromAnnotation(
120var builder = ArrayBuilder<TextSpan>.GetInstance();
137out var span))
152out TextSpan span)
219span = TextSpan.FromBounds(node.SpanStart, GetNextTokenEndPosition(nextTokenMarker.Type, nextToken));
226span = TextSpan.FromBounds(GetPreviousTokenStartPosition(previousTokenMarker.Type, previousToken), node.Span.End);
270SyntaxNode root, ImmutableArray<TextSpan> spans, CancellationToken cancellationToken)
278foreach (var span in nonOverlappingSpans)
320private static ImmutableArray<TextSpan> GetNonOverlappingSpans(
321SyntaxNode root, ImmutableArray<TextSpan> spans, CancellationToken cancellationToken)
327var tokenSpans = new List<TextSpan>();
328foreach (var span in spans)
347tokenSpans.Add(TextSpan.FromBounds(start, end));
359SyntaxNode root, TextSpan span,
381private static TextSpan GetSpanAlignedToTokens(
382SyntaxNode root, TextSpan span,
391return TextSpan.FromBounds(startToken.SpanStart, endToken.Span.End);
444private static bool CleanupWholeNode(TextSpan nodeSpan, ImmutableArray<TextSpan> spans)
458Func<SyntaxNode, ImmutableArray<TextSpan>> spanGetter,
466var spans = ImmutableArray<TextSpan>.Empty;
520private ImmutableArray<TextSpan> GetSpans(
521SyntaxNode root, Func<SyntaxNode, ImmutableArray<TextSpan>> spanGetter)
539Func<SyntaxNode, ImmutableArray<TextSpan>> spanGetter,
548var spans = ImmutableArray<TextSpan>.Empty;
599private static bool TryCreateTextSpan(int start, int end, out TextSpan span)
608span = TextSpan.FromBounds(start, end);
CodeCleanup\CodeCleaner.cs (4)
70public static Task<Document> CleanupAsync(Document document, TextSpan span, CodeCleanupOptions options, ImmutableArray<ICodeCleanupProvider> providers = default, CancellationToken cancellationToken = default)
77public static async Task<Document> CleanupAsync(Document document, ImmutableArray<TextSpan> spans, CodeCleanupOptions options, ImmutableArray<ICodeCleanupProvider> providers = default, CancellationToken cancellationToken = default)
87public static Task<SyntaxNode> CleanupAsync(SyntaxNode root, TextSpan span, SyntaxFormattingOptions options, SolutionServices services, ImmutableArray<ICodeCleanupProvider> providers = default, CancellationToken cancellationToken = default)
94public static Task<SyntaxNode> CleanupAsync(SyntaxNode root, ImmutableArray<TextSpan> spans, SyntaxFormattingOptions options, SolutionServices services, ImmutableArray<ICodeCleanupProvider> providers = default, CancellationToken cancellationToken = default)
CodeRefactorings\CodeRefactoringContext.cs (12)
49public TextSpan Span { get; }
56private readonly Action<CodeAction, TextSpan?> _registerRefactoring;
64TextSpan span,
75TextSpan span,
86TextSpan span,
87Action<CodeAction, TextSpan?> registerRefactoring,
108/// <param name="applicableToSpan">The <see cref="TextSpan"/> within original document the <paramref name="action"/> is applicable to.</param>
111/// applicable to. It doesn't have to precisely represent the exact <see cref="TextSpan"/> that will get changed.
113internal void RegisterRefactoring(CodeAction action, TextSpan applicableToSpan) => RegisterRefactoring(action, new Nullable<TextSpan>(applicableToSpan));
115private void RegisterRefactoring(CodeAction action, TextSpan? applicableToSpan)
125internal void Deconstruct(out Document document, out TextSpan span, out CancellationToken cancellationToken)
CodeRefactorings\FixAllOccurences\RefactorAllProvider.cs (5)
55public static RefactorAllProvider Create(Func<RefactorAllContext, Document, Optional<ImmutableArray<TextSpan>>, Task<Document?>> refactorAllAsync)
74Func<RefactorAllContext, Document, Optional<ImmutableArray<TextSpan>>, Task<Document?>> refactorAllAsync,
81Func<RefactorAllContext, Document, Optional<ImmutableArray<TextSpan>>, Task<Document?>> refactorAllAsync,
98Func<RefactorAllContext, Document, Optional<ImmutableArray<TextSpan>>, Task<Document?>> refactorAllAsync,
104protected override Task<Document?> RefactorAllAsync(RefactorAllContext context, Document document, Optional<ImmutableArray<TextSpan>> refactorAllSpans)
Editing\ImportAdder.cs (7)
18private static async ValueTask<IEnumerable<TextSpan>> GetSpansAsync(Document document, CancellationToken cancellationToken)
24private static async ValueTask<IEnumerable<TextSpan>> GetSpansAsync(Document document, SyntaxAnnotation annotation, CancellationToken cancellationToken)
39public static Task<Document> AddImportsAsync(Document document, TextSpan span, OptionSet? options = null, CancellationToken cancellationToken = default)
51public static Task<Document> AddImportsAsync(Document document, IEnumerable<TextSpan> spans, OptionSet? options = null, CancellationToken cancellationToken = default)
54private static async Task<Document> AddImportsFromSyntaxesAsync(Document document, IEnumerable<TextSpan> spans, OptionSet? _, CancellationToken cancellationToken)
82internal static Task<Document> AddImportsFromSyntaxesAsync(Document document, IEnumerable<TextSpan> spans, AddImportPlacementOptions options, CancellationToken cancellationToken)
97internal static Task<Document> AddImportsFromSymbolAnnotationAsync(Document document, IEnumerable<TextSpan> spans, AddImportPlacementOptions options, CancellationToken cancellationToken)
Formatting\Formatter.cs (17)
63public static Task<Document> FormatAsync(Document document, TextSpan span, OptionSet? options = null, CancellationToken cancellationToken = default)
68internal static Task<Document> FormatAsync(Document document, TextSpan span, SyntaxFormattingOptions options, CancellationToken cancellationToken)
79public static async Task<Document> FormatAsync(Document document, IEnumerable<TextSpan>? spans, OptionSet? options = null, CancellationToken cancellationToken = default)
91internal static async Task<Document> FormatAsync(Document document, IEnumerable<TextSpan>? spans, SyntaxFormattingOptions? options, ImmutableArray<AbstractFormattingRule> rules, CancellationToken cancellationToken)
205public static SyntaxNode Format(SyntaxNode node, TextSpan span, Workspace workspace, OptionSet? options = null, CancellationToken cancellationToken = default)
208internal static SyntaxNode Format(SyntaxNode node, TextSpan span, SolutionServices services, SyntaxFormattingOptions options, CancellationToken cancellationToken)
220public static SyntaxNode Format(SyntaxNode node, IEnumerable<TextSpan>? spans, Workspace workspace, OptionSet? options = null, CancellationToken cancellationToken = default)
223private static SyntaxNode Format(SyntaxNode node, IEnumerable<TextSpan>? spans, Workspace workspace, OptionSet? options, ImmutableArray<AbstractFormattingRule> rules, CancellationToken cancellationToken)
229internal static SyntaxNode Format(SyntaxNode node, IEnumerable<TextSpan>? spans, SolutionServices services, SyntaxFormattingOptions options, ImmutableArray<AbstractFormattingRule> rules, CancellationToken cancellationToken)
232private static IFormattingResult? GetFormattingResult(SyntaxNode node, IEnumerable<TextSpan>? spans, Workspace workspace, OptionSet? options, ImmutableArray<AbstractFormattingRule> rules, CancellationToken cancellationToken)
256internal static IFormattingResult GetFormattingResult(SyntaxNode node, IEnumerable<TextSpan>? spans, SolutionServices services, SyntaxFormattingOptions options, ImmutableArray<AbstractFormattingRule> rules, CancellationToken cancellationToken)
282public static IList<TextChange> GetFormattedTextChanges(SyntaxNode node, TextSpan span, Workspace workspace, OptionSet? options = null, CancellationToken cancellationToken = default)
285internal static IList<TextChange> GetFormattedTextChanges(SyntaxNode node, TextSpan span, SolutionServices services, SyntaxFormattingOptions options, CancellationToken cancellationToken = default)
297public static IList<TextChange> GetFormattedTextChanges(SyntaxNode node, IEnumerable<TextSpan>? spans, Workspace workspace, OptionSet? options = null, CancellationToken cancellationToken = default)
300internal static IList<TextChange> GetFormattedTextChanges(SyntaxNode node, IEnumerable<TextSpan>? spans, SolutionServices services, SyntaxFormattingOptions options, CancellationToken cancellationToken = default)
303private static IList<TextChange> GetFormattedTextChanges(SyntaxNode node, IEnumerable<TextSpan>? spans, Workspace workspace, OptionSet? options, ImmutableArray<AbstractFormattingRule> rules, CancellationToken cancellationToken)
311internal static IList<TextChange> GetFormattedTextChanges(SyntaxNode node, IEnumerable<TextSpan>? spans, SolutionServices services, SyntaxFormattingOptions options, ImmutableArray<AbstractFormattingRule> rules, CancellationToken cancellationToken = default)
PatternMatching\AllLowerCamelCaseMatcher.cs (12)
39in TemporaryArray<TextSpan> candidateHumps, out ImmutableArray<TextSpan> matchedSpans)
66private static PatternMatchKind GetKind(CamelCaseResult result, in TemporaryArray<TextSpan> candidateHumps)
70int patternIndex, int candidateHumpIndex, bool? contiguous, in TemporaryArray<TextSpan> candidateHumps)
76var matchedSpansInReverse = includeMatchedSpans ? ArrayBuilder<TextSpan>.GetInstance() : null;
96var candidateHump = candidateHumps[humpIndex];
150int patternIndex, int humpIndex, bool contiguous, in TemporaryArray<TextSpan> candidateHumps)
154var candidateHump = candidateHumps[humpIndex];
192var matchSpanToAdd = new TextSpan(candidateHump.Start, possibleHumpMatchLength);
212CamelCaseResult result, ref CamelCaseResult? bestResult, TextSpan? matchSpanToAdd, in TemporaryArray<TextSpan> candidateHumps)
241private static bool IsBetter(CamelCaseResult result, CamelCaseResult? currentBestResult, in TemporaryArray<TextSpan> candidateHumps)
PatternMatching\PatternMatcher.cs (15)
180using var candidateHumps = TemporaryArray<TextSpan>.Empty;
270var hump = TextSpan.FromBounds(candidateHumps[i].Start, candidateLength);
320private TextSpan? GetMatchedSpan(int start, int length)
431private bool PartStartsWith(string candidate, TextSpan candidatePart, string pattern, TextSpan patternPart, CompareOptions compareOptions)
452private bool PartStartsWith(string candidate, TextSpan candidatePart, string pattern, CompareOptions compareOptions)
460in TemporaryArray<TextSpan> candidateHumps)
507in TemporaryArray<TextSpan> candidateHumps,
509out ImmutableArray<TextSpan> matchedSpans)
517in TemporaryArray<TextSpan> candidateHumps,
520out ImmutableArray<TextSpan> matchedSpans)
537using var matchSpans = TemporaryArray<TextSpan>.Empty;
562var candidateHump = candidateHumps[currentCandidateHump];
571var patternChunkCharacterSpan = patternHumps[currentPatternHump];
Rename\ConflictEngine\RenamedSpansTracker.cs (24)
25private readonly Dictionary<DocumentId, List<(TextSpan oldSpan, TextSpan newSpan)>> _documentToModifiedSpansMap = [];
31internal void AddModifiedSpan(DocumentId documentId, TextSpan oldSpan, TextSpan newSpan)
42internal void AddComplexifiedSpan(DocumentId documentId, TextSpan oldSpan, TextSpan newSpan, List<(TextSpan oldSpan, TextSpan newSpan)> modifiedSubSpans)
70var appliedTextSpans = new HashSet<TextSpan>();
122TextSpan originalSpan, TextSpan newSpan, List<(TextSpan oldSpan, TextSpan newSpan)> modifiedSubSpans)
124public TextSpan OriginalSpan = originalSpan;
125public TextSpan NewSpan = newSpan;
126public List<(TextSpan oldSpan, TextSpan newSpan)> ModifiedSubSpans = modifiedSubSpans;
191var oldSpan = annotationAndNode.Item1.OriginalTextSpan;
197var modifiedSubSpans = new List<(TextSpan oldSpan, TextSpan newSpan)>();
232public ImmutableDictionary<DocumentId, ImmutableArray<(TextSpan oldSpan, TextSpan newSpan)>> GetDocumentToModifiedSpansMap()
234var builder = ImmutableDictionary.CreateBuilder<DocumentId, ImmutableArray<(TextSpan oldSpan, TextSpan newSpan)>>();
Rename\ConflictResolution.cs (14)
49private readonly ImmutableDictionary<DocumentId, ImmutableArray<(TextSpan oldSpan, TextSpan newSpan)>> _documentToModifiedSpansMap;
65_documentToModifiedSpansMap = ImmutableDictionary<DocumentId, ImmutableArray<(TextSpan oldSpan, TextSpan newSpan)>>.Empty;
76ImmutableDictionary<DocumentId, ImmutableArray<(TextSpan oldSpan, TextSpan newSpan)>> documentToModifiedSpansMap,
98public ImmutableArray<(TextSpan oldSpan, TextSpan newSpan)> GetComplexifiedSpans(DocumentId documentId)
103public ImmutableDictionary<TextSpan, TextSpan> GetModifiedSpanMap(DocumentId documentId)
105var result = ImmutableDictionary.CreateBuilder<TextSpan, TextSpan>();
129internal TextSpan GetResolutionTextSpan(TextSpan originalSpan, DocumentId documentId)
Simplification\Simplifier.cs (4)
203public static Task<Document> ReduceAsync(Document document, TextSpan span, OptionSet? optionSet = null, CancellationToken cancellationToken = default)
215internal static Task<Document> ReduceAsync(Document document, TextSpan span, SimplifierOptions options, CancellationToken cancellationToken)
222public static async Task<Document> ReduceAsync(Document document, IEnumerable<TextSpan> spans, OptionSet? optionSet = null, CancellationToken cancellationToken = default)
240internal static Task<Document> ReduceAsync(Document document, IEnumerable<TextSpan> spans, SimplifierOptions options, CancellationToken cancellationToken)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Collections\NormalizedTextSpanCollection.cs (40)
14internal sealed class NormalizedTextSpanCollection : ReadOnlyCollection<TextSpan>
29public NormalizedTextSpanCollection(TextSpan span)
42public NormalizedTextSpanCollection(IEnumerable<TextSpan> spans)
93var span1 = left[index1];
94var span2 = right[index2];
122spans.Add(TextSpan.FromBounds(start, end));
161var span1 = left[index1];
162var span2 = right[index2];
221var span1 = left[index1];
222var span2 = right[index2];
283var span1 = left[index1];
284var span2 = right[index2];
296spans.Add(TextSpan.FromBounds(Math.Max(lastEnd, span1.Start), span1.End));
307spans.Add(TextSpan.FromBounds(Math.Max(lastEnd, span1.Start), span2.Start));
333var span1 = left[index1++];
334spans.Add(TextSpan.FromBounds(Math.Max(lastEnd, span1.Start), span1.End));
398var span1 = this[index1];
399var span2 = set[index2];
429public bool OverlapsWith(TextSpan span)
458var span1 = this[index1];
459var span2 = set[index2];
483public bool IntersectsWith(TextSpan span)
506foreach (var s in this)
533foreach (var s in this)
546private static IList<TextSpan> ListFromSpan(TextSpan span)
548IList<TextSpan> list =
564private static void UpdateSpanUnion(TextSpan span, IList<TextSpan> spans, ref int start, ref int end)
568spans.Add(TextSpan.FromBounds(start, end));
585private static IList<TextSpan> NormalizeSpans(IEnumerable<TextSpan> spans)
592var sorted = new List<TextSpan>(spans);
599sorted.Sort(delegate (TextSpan s1, TextSpan s2) { return s1.Start.CompareTo(s2.Start); });
601IList<TextSpan> normalized = new List<TextSpan>(sorted.Count);
611normalized.Add(TextSpan.FromBounds(oldStart, oldEnd));
621normalized.Add(TextSpan.FromBounds(oldStart, oldEnd));
626private sealed class OrderedSpanList : List<TextSpan>
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Diagnostics\IPragmaSuppressionsAnalyzer.cs (1)
24TextSpan? span,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\EmbeddedLanguages\Common\EmbeddedSyntaxTrivia.cs (1)
34public TextSpan GetSpan()
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\AnalysisContextExtensions.cs (13)
13private static bool ShouldAnalyze(TextSpan? contextFilterSpan, TextSpan span)
23public static bool ShouldAnalyzeSpan(this SyntaxTreeAnalysisContext context, TextSpan span)
33public static bool ShouldAnalyzeSpan(this SemanticModelAnalysisContext context, TextSpan span)
43public static bool ShouldAnalyzeSpan(this SymbolStartAnalysisContext context, TextSpan span, SyntaxTree tree)
63public static bool ShouldAnalyzeSpan(this SymbolAnalysisContext context, TextSpan span, SyntaxTree tree)
83public static bool ShouldAnalyzeSpan(this AdditionalFileAnalysisContext context, TextSpan span)
93public static bool ShouldAnalyzeSpan(this OperationBlockStartAnalysisContext context, TextSpan span)
103public static bool ShouldAnalyzeSpan(this OperationBlockAnalysisContext context, TextSpan span)
113public static bool ShouldAnalyzeSpan(this OperationAnalysisContext context, TextSpan span)
123public static bool ShouldAnalyzeSpan(this SyntaxNodeAnalysisContext context, TextSpan span)
133public static bool ShouldAnalyzeSpan<TSytnaxKind>(this CodeBlockStartAnalysisContext<TSytnaxKind> context, TextSpan span) where TSytnaxKind : struct
143public static bool ShouldAnalyzeSpan(this CodeBlockAnalysisContext context, TextSpan span)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SourceTextExtensions_SharedWithCodeStyle.cs (2)
32this SourceText text, TextSpan span, Func<int, CancellationToken, bool> isPositionHidden, CancellationToken cancellationToken)
44this SourceText text, TextSpan span, Func<int, CancellationToken, bool> isPositionHidden,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\TextSpanExtensions.cs (22)
18public static IEnumerable<TextSpan> ToNormalizedSpans(this IEnumerable<TextSpan> spans)
21public static ImmutableArray<TextSpan> ToNormalizedSpans(this ImmutableArray<TextSpan> spans)
24public static TextSpan Collapse(this IEnumerable<TextSpan> spans)
29foreach (var span in spans)
48return TextSpan.FromBounds(start, end);
54public static bool IsAround(this TextSpan span, SyntaxNodeOrToken node) => IsAround(span, node, node);
60public static bool IsAround(this TextSpan span, SyntaxNodeOrToken startNode, SyntaxNodeOrToken endNode)
62var innerSpan = TextSpan.FromBounds(startNode.Span.Start, endNode.Span.End);
63var outerSpan = TextSpan.FromBounds(startNode.FullSpan.Start, endNode.FullSpan.End);
67public static IEnumerable<TextSpan> Subtract(this TextSpan span, TextSpan except)
81yield return TextSpan.FromBounds(span.Start, startSegmentEnd);
85yield return TextSpan.FromBounds(endSegmentStart, span.End);
88public static IEnumerable<TextSpan> Subtract(this IEnumerable<TextSpan> spans, TextSpan except)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\Context\FormattingContext.IndentationData.cs (14)
17private abstract class IndentationData(TextSpan textSpan)
19public TextSpan TextSpan { get; } = textSpan;
22public IndentationData WithTextSpan(TextSpan span)
25protected abstract IndentationData WithTextSpanCore(TextSpan span);
28private sealed class SimpleIndentationData(TextSpan textSpan, int indentation) : IndentationData(textSpan)
32protected override IndentationData WithTextSpanCore(TextSpan span)
56public RelativeIndentationData(FormattingContext formattingContext, int inseparableRegionSpanStart, TextSpan textSpan, IndentBlockOperation operation, Func<FormattingContext, IndentBlockOperation, SyntaxToken> effectiveBaseTokenGetter, Func<FormattingContext, IndentBlockOperation, SyntaxToken, int> indentationDeltaGetter, Func<FormattingContext, SyntaxToken, int> baseIndentationGetter)
67this.InseparableRegionSpan = TextSpan.FromBounds(inseparableRegionSpanStart, textSpan.End);
70private RelativeIndentationData(FormattingContext formattingContext, int inseparableRegionSpanStart, TextSpan textSpan, IndentBlockOperation operation, Func<FormattingContext, IndentBlockOperation, SyntaxToken> effectiveBaseTokenGetter, Func<FormattingContext, IndentBlockOperation, SyntaxToken, int> indentationDeltaGetter, Func<FormattingContext, SyntaxToken, int> baseIndentationGetter, int lazyIndentationDelta)
81this.InseparableRegionSpan = TextSpan.FromBounds(inseparableRegionSpanStart, textSpan.End);
84public TextSpan InseparableRegionSpan { get; }
106protected override IndentationData WithTextSpanCore(TextSpan span)
118public AdjustedIndentationData(TextSpan textSpan, IndentationData baseIndentationData, int adjustment)
141protected override IndentationData WithTextSpanCore(TextSpan span)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\Rules\BaseIndentationFormattingRule.cs (10)
20private readonly TextSpan _span;
22public BaseIndentationFormattingRule(SyntaxNode root, TextSpan span, int baseIndentation, AbstractFormattingRule? vbHelperFormattingRule = null)
130private TextSpan AdjustTextSpan(TextSpan textSpan)
131=> TextSpan.FromBounds(Math.Max(_span.Start, textSpan.Start), Math.Min(_span.End, textSpan.End));
133private static void SetInnermostNodeForSpan(SyntaxNode root, ref TextSpan span, out SyntaxToken token1, out SyntaxToken token2, out SyntaxNode? commonNode)
149private static void GetTokens(SyntaxNode root, TextSpan span, out SyntaxToken token1, out SyntaxToken token2)
168private static TextSpan GetSpanFromTokens(TextSpan span, SyntaxToken token1, SyntaxToken token2)
217return TextSpan.FromBounds(start, end);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\Rules\Operations\FormattingOperations.cs (8)
30=> CreateAnchorIndentationOperation(anchorToken, endToken, TextSpan.FromBounds(anchorToken.Span.End, endToken.Span.End));
35public static AnchorIndentationOperation CreateAnchorIndentationOperation(SyntaxToken anchorToken, SyntaxToken endToken, TextSpan textSpan)
42=> CreateSuppressOperation(startToken, endToken, TextSpan.FromBounds(startToken.SpanStart, endToken.Span.End), option);
47private static SuppressOperation CreateSuppressOperation(SyntaxToken startToken, SyntaxToken endToken, TextSpan textSpan, SuppressOption option)
55var span = CommonFormattingHelpers.GetSpanIncludingTrailingAndLeadingTriviaOfAdjacentTokens(startToken, endToken);
62public static IndentBlockOperation CreateIndentBlockOperation(SyntaxToken startToken, SyntaxToken endToken, TextSpan textSpan, int indentationDelta, IndentBlockOption option)
70var span = CommonFormattingHelpers.GetSpanIncludingTrailingAndLeadingTriviaOfAdjacentTokens(startToken, endToken);
78public static IndentBlockOperation CreateRelativeIndentBlockOperation(SyntaxToken baseToken, SyntaxToken startToken, SyntaxToken endToken, TextSpan textSpan, int indentationDelta, IndentBlockOption option)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\TriviaEngine\AbstractTriviaFormatter.cs (13)
45private delegate void WhitespaceAppender<T>(LineColumn lineColumn, LineColumnDelta delta, TextSpan span, ArrayBuilder<T> changes);
387var span = GetTextSpan(trivia1, trivia2);
499var span = TextSpan.FromBounds(start, end);
715var insertionPoint = GetInsertionSpan(changes);
730private TextSpan GetInsertionSpan(ArrayBuilder<TextChange> changes)
765TextSpan notUsed,
822private TextChange GetWhitespaceTextChange(LineColumn lineColumn, LineColumnDelta delta, TextSpan span)
825private void AddWhitespaceTextChange(LineColumn lineColumn, LineColumnDelta delta, TextSpan span, ArrayBuilder<TextChange> changes)
831private TextSpan GetTextSpan(SyntaxTrivia trivia1, SyntaxTrivia trivia2)
835return TextSpan.FromBounds(this.StartPosition, trivia2.FullSpan.Start);
840return TextSpan.FromBounds(trivia1.FullSpan.End, this.EndPosition);
843return TextSpan.FromBounds(trivia1.FullSpan.End, trivia2.FullSpan.Start);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\NamingStyle.cs (21)
160var spanToCheck = TextSpan.FromBounds(0, name.Length - Suffix.Length);
174private WordSpanEnumerable GetWordSpans(string name, TextSpan nameSpan)
177private static string Substring(string name, TextSpan wordSpan)
180private static readonly Func<string, TextSpan, bool> s_firstCharIsLowerCase = (val, span) => !DoesCharacterHaveCasing(val[span.Start]) || char.IsLower(val[span.Start]);
181private static readonly Func<string, TextSpan, bool> s_firstCharIsUpperCase = (val, span) => !DoesCharacterHaveCasing(val[span.Start]) || char.IsUpper(val[span.Start]);
183private static readonly Func<string, TextSpan, bool> s_wordIsAllUpperCase = (val, span) =>
196private static readonly Func<string, TextSpan, bool> s_wordIsAllLowerCase = (val, span) =>
210string name, TextSpan nameSpan, Func<string, TextSpan, bool> wordCheck,
216foreach (var wordSpan in GetWordSpans(name, nameSpan))
232private bool CheckPascalCase(string name, TextSpan nameSpan, out string reason)
237private bool CheckAllUpper(string name, TextSpan nameSpan, out string reason)
242private bool CheckAllLower(string name, TextSpan nameSpan, out string reason)
248string name, TextSpan nameSpan,
249Func<string, TextSpan, bool> firstWordCheck,
250Func<string, TextSpan, bool> restWordCheck,
260foreach (var wordSpan in GetWordSpans(name, nameSpan))
291private bool CheckCamelCase(string name, TextSpan nameSpan, out string reason)
298private bool CheckFirstUpper(string name, TextSpan nameSpan, out string reason)
406using var parts = TemporaryArray<TextSpan>.Empty;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\RefactoringHelpers\AbstractRefactoringHelpers.cs (10)
39/// Returns unchanged <paramref name="span"/> in case <see cref="TextSpan.IsEmpty"/>.
40/// Returns empty Span with original <see cref="TextSpan.Start"/> in case it contains only whitespace.
42private static TextSpan GetTrimmedTextSpan(SourceText sourceText, TextSpan span)
56return TextSpan.FromBounds(start, end);
60SourceText sourceText, SyntaxNode root, TextSpan selectionRaw, bool allowEmptyNodes, int maxCount, ref TemporaryArray<TSyntaxNode> result, CancellationToken cancellationToken) where TSyntaxNode : SyntaxNode
69var selectionTrimmed = GetTrimmedTextSpan(sourceText, selectionRaw);
354var rightNodeSpanWithoutAttributes = syntaxFacts.GetSpanWithoutAttributes(root, rightNode);
366TextSpan selectionTrimmed,
384var spanWithoutAttributes = syntaxFacts.GetSpanWithoutAttributes(root, nonHiddenExtractedNode);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SelectedMembers\AbstractSelectedMembers.cs (4)
34SyntaxTree tree, TextSpan textSpan, bool allowPartialSelection, CancellationToken cancellationToken)
38SyntaxTree tree, TextSpan textSpan, bool allowPartialSelection, CancellationToken cancellationToken)
42SyntaxTree tree, TextSpan textSpan, bool allowPartialSelection,
77SyntaxNode root, SourceText text, TextSpan textSpan,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\CommonFormattingHelpers.cs (10)
45public static IEnumerable<(SyntaxToken, SyntaxToken)> ConvertToTokenPairs(this SyntaxNode root, IReadOnlyList<TextSpan> spans)
81public static ValueTuple<SyntaxToken, SyntaxToken> ConvertToTokenPair(this SyntaxNode root, TextSpan textSpan)
157=> (token1.RawKind == 0) ? text.ToString(TextSpan.FromBounds(0, token2.SpanStart)) : text.ToString(TextSpan.FromBounds(token1.Span.End, token2.SpanStart));
259public static TextSpan GetSpanIncludingTrailingAndLeadingTriviaOfAdjacentTokens(SyntaxToken startToken, SyntaxToken endToken)
266return TextSpan.FromBounds(startPosition, endPosition);
324var fullSpan = node.FullSpan;
357public static TextSpan GetFormattingSpan(SyntaxNode root, TextSpan span)
367return TextSpan.FromBounds(startPosition, endPosition);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\StringBreaker.cs (10)
17public static void AddWordParts(ReadOnlySpan<char> identifier, ref TemporaryArray<TextSpan> parts)
20public static void AddCharacterParts(ReadOnlySpan<char> identifier, ref TemporaryArray<TextSpan> parts)
23public static void AddParts(ReadOnlySpan<char> text, bool word, ref TemporaryArray<TextSpan> parts)
27var span = StringBreaker.GenerateSpan(text, start, word);
41public static TextSpan GenerateSpan(ReadOnlySpan<char> identifier, int wordStart, bool word)
81private static TextSpan ScanCharacterRun(ReadOnlySpan<char> identifier, int length, int wordStart)
102private static TextSpan ScanWordRun(ReadOnlySpan<char> identifier, int length, int wordStart)
151private static TextSpan ScanLowerCaseRun(ReadOnlySpan<char> identifier, int length, int wordStart)
162private static TextSpan ScanNumber(ReadOnlySpan<char> identifier, int length, int wordStart)
170return TextSpan.FromBounds(wordStart, current);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeFixesAndRefactorings\AbstractFixAllSpanMappingService.cs (8)
20protected abstract Task<ImmutableDictionary<Document, ImmutableArray<TextSpan>>> GetFixAllSpansIfWithinGlobalStatementAsync(
21Document document, TextSpan span, CancellationToken cancellationToken);
23public Task<ImmutableDictionary<Document, ImmutableArray<TextSpan>>> GetFixAllSpansAsync(
24Document document, TextSpan triggerSpan, FixAllScope fixAllScope, CancellationToken cancellationToken)
32private async Task<ImmutableDictionary<Document, ImmutableArray<TextSpan>>> GetFixAllSpansAsync(
33Document document, TextSpan span, bool fixAllInContainingMember, CancellationToken cancellationToken)
50var builder = PooledDictionary<Document, ArrayBuilder<TextSpan>>.GetInstance();
75TextSpan span,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeRefactorings\CodeRefactoringContextExtensions.cs (9)
21this CodeRefactoringContext context, ImmutableArray<TCodeAction> actions, TextSpan? applicableToSpan = null)
59public static async Task<TSyntaxNode?> TryGetRelevantNodeAsync<TSyntaxNode>(this Document document, TextSpan span, CancellationToken cancellationToken) where TSyntaxNode : SyntaxNode
65public static TSyntaxNode? TryGetRelevantNode<TSyntaxNode>(this ParsedDocument document, TextSpan span, CancellationToken cancellationToken) where TSyntaxNode : SyntaxNode
68public static TSyntaxNode? TryGetRelevantNode<TSyntaxNode>(this ParsedDocument document, TextSpan span, bool allowEmptyNode, CancellationToken cancellationToken) where TSyntaxNode : SyntaxNode
76this Document document, TextSpan span, CancellationToken cancellationToken) where TSyntaxNode : SyntaxNode
82this Document document, TextSpan span, bool allowEmptyNodes, CancellationToken cancellationToken) where TSyntaxNode : SyntaxNode
89this ParsedDocument document, TextSpan span, CancellationToken cancellationToken) where TSyntaxNode : SyntaxNode
93this ParsedDocument document, TextSpan span, bool allowEmptyNodes, CancellationToken cancellationToken) where TSyntaxNode : SyntaxNode
102this ParsedDocument document, TextSpan span, bool allowEmptyNodes, int maxCount, ref TemporaryArray<TSyntaxNode> result, CancellationToken cancellationToken) where TSyntaxNode : SyntaxNode
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Simplification\Simplifiers\AbstractSimplifier.cs (1)
21out TextSpan issueSpan,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Utilities\NullableHelpers.cs (1)
56TextSpan span,
Workspace\Host\DocumentService\IDocumentExcerptService.cs (8)
19/// return <see cref="ExcerptResult"/> of given <see cref="Document"/> and <see cref="TextSpan"/>
23Task<ExcerptResult?> TryExcerptAsync(Document document, TextSpan span, ExcerptMode mode, ClassificationOptions classificationOptions, CancellationToken cancellationToken);
38internal readonly struct ExcerptResult(SourceText content, TextSpan mappedSpan, ImmutableArray<ClassifiedSpan> classifiedSpans, Document document, TextSpan span)
48public readonly TextSpan MappedSpan = mappedSpan;
58/// should be same document in <see cref="IDocumentExcerptService.TryExcerptAsync(Document, TextSpan, ExcerptMode, ClassificationOptions, CancellationToken)" />
65/// should be same text span in <see cref="IDocumentExcerptService.TryExcerptAsync(Document, TextSpan, ExcerptMode, ClassificationOptions, CancellationToken)" />
67public readonly TextSpan Span = span;
ImportingConstructorShouldBeObsoleteCodeFixProvider.cs (5)
85private async Task<Document> AddObsoleteAttributeAsync(Document document, TextSpan sourceSpan, CancellationToken cancellationToken)
117private static async Task<Document> AddDescriptionAndErrorAsync(Document document, TextSpan sourceSpan, CancellationToken cancellationToken)
138private static async Task<Document> UpdateDescriptionAsync(Document document, TextSpan sourceSpan, CancellationToken cancellationToken)
163private static async Task<Document> AddErrorAsync(Document document, TextSpan sourceSpan, CancellationToken cancellationToken)
182private static async Task<Document> SetErrorToTrueAsync(Document document, TextSpan sourceSpan, CancellationToken cancellationToken)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Collections\NormalizedTextSpanCollection.cs (40)
14internal sealed class NormalizedTextSpanCollection : ReadOnlyCollection<TextSpan>
29public NormalizedTextSpanCollection(TextSpan span)
42public NormalizedTextSpanCollection(IEnumerable<TextSpan> spans)
93var span1 = left[index1];
94var span2 = right[index2];
122spans.Add(TextSpan.FromBounds(start, end));
161var span1 = left[index1];
162var span2 = right[index2];
221var span1 = left[index1];
222var span2 = right[index2];
283var span1 = left[index1];
284var span2 = right[index2];
296spans.Add(TextSpan.FromBounds(Math.Max(lastEnd, span1.Start), span1.End));
307spans.Add(TextSpan.FromBounds(Math.Max(lastEnd, span1.Start), span2.Start));
333var span1 = left[index1++];
334spans.Add(TextSpan.FromBounds(Math.Max(lastEnd, span1.Start), span1.End));
398var span1 = this[index1];
399var span2 = set[index2];
429public bool OverlapsWith(TextSpan span)
458var span1 = this[index1];
459var span2 = set[index2];
483public bool IntersectsWith(TextSpan span)
506foreach (var s in this)
533foreach (var s in this)
546private static IList<TextSpan> ListFromSpan(TextSpan span)
548IList<TextSpan> list =
564private static void UpdateSpanUnion(TextSpan span, IList<TextSpan> spans, ref int start, ref int end)
568spans.Add(TextSpan.FromBounds(start, end));
585private static IList<TextSpan> NormalizeSpans(IEnumerable<TextSpan> spans)
592var sorted = new List<TextSpan>(spans);
599sorted.Sort(delegate (TextSpan s1, TextSpan s2) { return s1.Start.CompareTo(s2.Start); });
601IList<TextSpan> normalized = new List<TextSpan>(sorted.Count);
611normalized.Add(TextSpan.FromBounds(oldStart, oldEnd));
621normalized.Add(TextSpan.FromBounds(oldStart, oldEnd));
626private sealed class OrderedSpanList : List<TextSpan>
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Diagnostics\IPragmaSuppressionsAnalyzer.cs (1)
24TextSpan? span,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\EmbeddedLanguages\Common\EmbeddedSyntaxTrivia.cs (1)
34public TextSpan GetSpan()
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\AnalysisContextExtensions.cs (13)
13private static bool ShouldAnalyze(TextSpan? contextFilterSpan, TextSpan span)
23public static bool ShouldAnalyzeSpan(this SyntaxTreeAnalysisContext context, TextSpan span)
33public static bool ShouldAnalyzeSpan(this SemanticModelAnalysisContext context, TextSpan span)
43public static bool ShouldAnalyzeSpan(this SymbolStartAnalysisContext context, TextSpan span, SyntaxTree tree)
63public static bool ShouldAnalyzeSpan(this SymbolAnalysisContext context, TextSpan span, SyntaxTree tree)
83public static bool ShouldAnalyzeSpan(this AdditionalFileAnalysisContext context, TextSpan span)
93public static bool ShouldAnalyzeSpan(this OperationBlockStartAnalysisContext context, TextSpan span)
103public static bool ShouldAnalyzeSpan(this OperationBlockAnalysisContext context, TextSpan span)
113public static bool ShouldAnalyzeSpan(this OperationAnalysisContext context, TextSpan span)
123public static bool ShouldAnalyzeSpan(this SyntaxNodeAnalysisContext context, TextSpan span)
133public static bool ShouldAnalyzeSpan<TSytnaxKind>(this CodeBlockStartAnalysisContext<TSytnaxKind> context, TextSpan span) where TSytnaxKind : struct
143public static bool ShouldAnalyzeSpan(this CodeBlockAnalysisContext context, TextSpan span)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SourceTextExtensions_SharedWithCodeStyle.cs (2)
32this SourceText text, TextSpan span, Func<int, CancellationToken, bool> isPositionHidden, CancellationToken cancellationToken)
44this SourceText text, TextSpan span, Func<int, CancellationToken, bool> isPositionHidden,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\TextSpanExtensions.cs (22)
18public static IEnumerable<TextSpan> ToNormalizedSpans(this IEnumerable<TextSpan> spans)
21public static ImmutableArray<TextSpan> ToNormalizedSpans(this ImmutableArray<TextSpan> spans)
24public static TextSpan Collapse(this IEnumerable<TextSpan> spans)
29foreach (var span in spans)
48return TextSpan.FromBounds(start, end);
54public static bool IsAround(this TextSpan span, SyntaxNodeOrToken node) => IsAround(span, node, node);
60public static bool IsAround(this TextSpan span, SyntaxNodeOrToken startNode, SyntaxNodeOrToken endNode)
62var innerSpan = TextSpan.FromBounds(startNode.Span.Start, endNode.Span.End);
63var outerSpan = TextSpan.FromBounds(startNode.FullSpan.Start, endNode.FullSpan.End);
67public static IEnumerable<TextSpan> Subtract(this TextSpan span, TextSpan except)
81yield return TextSpan.FromBounds(span.Start, startSegmentEnd);
85yield return TextSpan.FromBounds(endSegmentStart, span.End);
88public static IEnumerable<TextSpan> Subtract(this IEnumerable<TextSpan> spans, TextSpan except)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\Context\FormattingContext.IndentationData.cs (14)
17private abstract class IndentationData(TextSpan textSpan)
19public TextSpan TextSpan { get; } = textSpan;
22public IndentationData WithTextSpan(TextSpan span)
25protected abstract IndentationData WithTextSpanCore(TextSpan span);
28private sealed class SimpleIndentationData(TextSpan textSpan, int indentation) : IndentationData(textSpan)
32protected override IndentationData WithTextSpanCore(TextSpan span)
56public RelativeIndentationData(FormattingContext formattingContext, int inseparableRegionSpanStart, TextSpan textSpan, IndentBlockOperation operation, Func<FormattingContext, IndentBlockOperation, SyntaxToken> effectiveBaseTokenGetter, Func<FormattingContext, IndentBlockOperation, SyntaxToken, int> indentationDeltaGetter, Func<FormattingContext, SyntaxToken, int> baseIndentationGetter)
67this.InseparableRegionSpan = TextSpan.FromBounds(inseparableRegionSpanStart, textSpan.End);
70private RelativeIndentationData(FormattingContext formattingContext, int inseparableRegionSpanStart, TextSpan textSpan, IndentBlockOperation operation, Func<FormattingContext, IndentBlockOperation, SyntaxToken> effectiveBaseTokenGetter, Func<FormattingContext, IndentBlockOperation, SyntaxToken, int> indentationDeltaGetter, Func<FormattingContext, SyntaxToken, int> baseIndentationGetter, int lazyIndentationDelta)
81this.InseparableRegionSpan = TextSpan.FromBounds(inseparableRegionSpanStart, textSpan.End);
84public TextSpan InseparableRegionSpan { get; }
106protected override IndentationData WithTextSpanCore(TextSpan span)
118public AdjustedIndentationData(TextSpan textSpan, IndentationData baseIndentationData, int adjustment)
141protected override IndentationData WithTextSpanCore(TextSpan span)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\Rules\BaseIndentationFormattingRule.cs (10)
20private readonly TextSpan _span;
22public BaseIndentationFormattingRule(SyntaxNode root, TextSpan span, int baseIndentation, AbstractFormattingRule? vbHelperFormattingRule = null)
130private TextSpan AdjustTextSpan(TextSpan textSpan)
131=> TextSpan.FromBounds(Math.Max(_span.Start, textSpan.Start), Math.Min(_span.End, textSpan.End));
133private static void SetInnermostNodeForSpan(SyntaxNode root, ref TextSpan span, out SyntaxToken token1, out SyntaxToken token2, out SyntaxNode? commonNode)
149private static void GetTokens(SyntaxNode root, TextSpan span, out SyntaxToken token1, out SyntaxToken token2)
168private static TextSpan GetSpanFromTokens(TextSpan span, SyntaxToken token1, SyntaxToken token2)
217return TextSpan.FromBounds(start, end);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\Rules\Operations\FormattingOperations.cs (8)
30=> CreateAnchorIndentationOperation(anchorToken, endToken, TextSpan.FromBounds(anchorToken.Span.End, endToken.Span.End));
35public static AnchorIndentationOperation CreateAnchorIndentationOperation(SyntaxToken anchorToken, SyntaxToken endToken, TextSpan textSpan)
42=> CreateSuppressOperation(startToken, endToken, TextSpan.FromBounds(startToken.SpanStart, endToken.Span.End), option);
47private static SuppressOperation CreateSuppressOperation(SyntaxToken startToken, SyntaxToken endToken, TextSpan textSpan, SuppressOption option)
55var span = CommonFormattingHelpers.GetSpanIncludingTrailingAndLeadingTriviaOfAdjacentTokens(startToken, endToken);
62public static IndentBlockOperation CreateIndentBlockOperation(SyntaxToken startToken, SyntaxToken endToken, TextSpan textSpan, int indentationDelta, IndentBlockOption option)
70var span = CommonFormattingHelpers.GetSpanIncludingTrailingAndLeadingTriviaOfAdjacentTokens(startToken, endToken);
78public static IndentBlockOperation CreateRelativeIndentBlockOperation(SyntaxToken baseToken, SyntaxToken startToken, SyntaxToken endToken, TextSpan textSpan, int indentationDelta, IndentBlockOption option)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\TriviaEngine\AbstractTriviaFormatter.cs (13)
45private delegate void WhitespaceAppender<T>(LineColumn lineColumn, LineColumnDelta delta, TextSpan span, ArrayBuilder<T> changes);
387var span = GetTextSpan(trivia1, trivia2);
499var span = TextSpan.FromBounds(start, end);
715var insertionPoint = GetInsertionSpan(changes);
730private TextSpan GetInsertionSpan(ArrayBuilder<TextChange> changes)
765TextSpan notUsed,
822private TextChange GetWhitespaceTextChange(LineColumn lineColumn, LineColumnDelta delta, TextSpan span)
825private void AddWhitespaceTextChange(LineColumn lineColumn, LineColumnDelta delta, TextSpan span, ArrayBuilder<TextChange> changes)
831private TextSpan GetTextSpan(SyntaxTrivia trivia1, SyntaxTrivia trivia2)
835return TextSpan.FromBounds(this.StartPosition, trivia2.FullSpan.Start);
840return TextSpan.FromBounds(trivia1.FullSpan.End, this.EndPosition);
843return TextSpan.FromBounds(trivia1.FullSpan.End, trivia2.FullSpan.Start);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\NamingStyle.cs (21)
160var spanToCheck = TextSpan.FromBounds(0, name.Length - Suffix.Length);
174private WordSpanEnumerable GetWordSpans(string name, TextSpan nameSpan)
177private static string Substring(string name, TextSpan wordSpan)
180private static readonly Func<string, TextSpan, bool> s_firstCharIsLowerCase = (val, span) => !DoesCharacterHaveCasing(val[span.Start]) || char.IsLower(val[span.Start]);
181private static readonly Func<string, TextSpan, bool> s_firstCharIsUpperCase = (val, span) => !DoesCharacterHaveCasing(val[span.Start]) || char.IsUpper(val[span.Start]);
183private static readonly Func<string, TextSpan, bool> s_wordIsAllUpperCase = (val, span) =>
196private static readonly Func<string, TextSpan, bool> s_wordIsAllLowerCase = (val, span) =>
210string name, TextSpan nameSpan, Func<string, TextSpan, bool> wordCheck,
216foreach (var wordSpan in GetWordSpans(name, nameSpan))
232private bool CheckPascalCase(string name, TextSpan nameSpan, out string reason)
237private bool CheckAllUpper(string name, TextSpan nameSpan, out string reason)
242private bool CheckAllLower(string name, TextSpan nameSpan, out string reason)
248string name, TextSpan nameSpan,
249Func<string, TextSpan, bool> firstWordCheck,
250Func<string, TextSpan, bool> restWordCheck,
260foreach (var wordSpan in GetWordSpans(name, nameSpan))
291private bool CheckCamelCase(string name, TextSpan nameSpan, out string reason)
298private bool CheckFirstUpper(string name, TextSpan nameSpan, out string reason)
406using var parts = TemporaryArray<TextSpan>.Empty;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\RefactoringHelpers\AbstractRefactoringHelpers.cs (10)
39/// Returns unchanged <paramref name="span"/> in case <see cref="TextSpan.IsEmpty"/>.
40/// Returns empty Span with original <see cref="TextSpan.Start"/> in case it contains only whitespace.
42private static TextSpan GetTrimmedTextSpan(SourceText sourceText, TextSpan span)
56return TextSpan.FromBounds(start, end);
60SourceText sourceText, SyntaxNode root, TextSpan selectionRaw, bool allowEmptyNodes, int maxCount, ref TemporaryArray<TSyntaxNode> result, CancellationToken cancellationToken) where TSyntaxNode : SyntaxNode
69var selectionTrimmed = GetTrimmedTextSpan(sourceText, selectionRaw);
354var rightNodeSpanWithoutAttributes = syntaxFacts.GetSpanWithoutAttributes(root, rightNode);
366TextSpan selectionTrimmed,
384var spanWithoutAttributes = syntaxFacts.GetSpanWithoutAttributes(root, nonHiddenExtractedNode);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\SelectedMembers\AbstractSelectedMembers.cs (4)
34SyntaxTree tree, TextSpan textSpan, bool allowPartialSelection, CancellationToken cancellationToken)
38SyntaxTree tree, TextSpan textSpan, bool allowPartialSelection, CancellationToken cancellationToken)
42SyntaxTree tree, TextSpan textSpan, bool allowPartialSelection,
77SyntaxNode root, SourceText text, TextSpan textSpan,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\CommonFormattingHelpers.cs (10)
45public static IEnumerable<(SyntaxToken, SyntaxToken)> ConvertToTokenPairs(this SyntaxNode root, IReadOnlyList<TextSpan> spans)
81public static ValueTuple<SyntaxToken, SyntaxToken> ConvertToTokenPair(this SyntaxNode root, TextSpan textSpan)
157=> (token1.RawKind == 0) ? text.ToString(TextSpan.FromBounds(0, token2.SpanStart)) : text.ToString(TextSpan.FromBounds(token1.Span.End, token2.SpanStart));
259public static TextSpan GetSpanIncludingTrailingAndLeadingTriviaOfAdjacentTokens(SyntaxToken startToken, SyntaxToken endToken)
266return TextSpan.FromBounds(startPosition, endPosition);
324var fullSpan = node.FullSpan;
357public static TextSpan GetFormattingSpan(SyntaxNode root, TextSpan span)
367return TextSpan.FromBounds(startPosition, endPosition);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\StringBreaker.cs (10)
17public static void AddWordParts(ReadOnlySpan<char> identifier, ref TemporaryArray<TextSpan> parts)
20public static void AddCharacterParts(ReadOnlySpan<char> identifier, ref TemporaryArray<TextSpan> parts)
23public static void AddParts(ReadOnlySpan<char> text, bool word, ref TemporaryArray<TextSpan> parts)
27var span = StringBreaker.GenerateSpan(text, start, word);
41public static TextSpan GenerateSpan(ReadOnlySpan<char> identifier, int wordStart, bool word)
81private static TextSpan ScanCharacterRun(ReadOnlySpan<char> identifier, int length, int wordStart)
102private static TextSpan ScanWordRun(ReadOnlySpan<char> identifier, int length, int wordStart)
151private static TextSpan ScanLowerCaseRun(ReadOnlySpan<char> identifier, int length, int wordStart)
162private static TextSpan ScanNumber(ReadOnlySpan<char> identifier, int length, int wordStart)
170return TextSpan.FromBounds(wordStart, current);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeFixesAndRefactorings\AbstractFixAllSpanMappingService.cs (8)
20protected abstract Task<ImmutableDictionary<Document, ImmutableArray<TextSpan>>> GetFixAllSpansIfWithinGlobalStatementAsync(
21Document document, TextSpan span, CancellationToken cancellationToken);
23public Task<ImmutableDictionary<Document, ImmutableArray<TextSpan>>> GetFixAllSpansAsync(
24Document document, TextSpan triggerSpan, FixAllScope fixAllScope, CancellationToken cancellationToken)
32private async Task<ImmutableDictionary<Document, ImmutableArray<TextSpan>>> GetFixAllSpansAsync(
33Document document, TextSpan span, bool fixAllInContainingMember, CancellationToken cancellationToken)
50var builder = PooledDictionary<Document, ArrayBuilder<TextSpan>>.GetInstance();
75TextSpan span,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeRefactorings\CodeRefactoringContextExtensions.cs (9)
21this CodeRefactoringContext context, ImmutableArray<TCodeAction> actions, TextSpan? applicableToSpan = null)
59public static async Task<TSyntaxNode?> TryGetRelevantNodeAsync<TSyntaxNode>(this Document document, TextSpan span, CancellationToken cancellationToken) where TSyntaxNode : SyntaxNode
65public static TSyntaxNode? TryGetRelevantNode<TSyntaxNode>(this ParsedDocument document, TextSpan span, CancellationToken cancellationToken) where TSyntaxNode : SyntaxNode
68public static TSyntaxNode? TryGetRelevantNode<TSyntaxNode>(this ParsedDocument document, TextSpan span, bool allowEmptyNode, CancellationToken cancellationToken) where TSyntaxNode : SyntaxNode
76this Document document, TextSpan span, CancellationToken cancellationToken) where TSyntaxNode : SyntaxNode
82this Document document, TextSpan span, bool allowEmptyNodes, CancellationToken cancellationToken) where TSyntaxNode : SyntaxNode
89this ParsedDocument document, TextSpan span, CancellationToken cancellationToken) where TSyntaxNode : SyntaxNode
93this ParsedDocument document, TextSpan span, bool allowEmptyNodes, CancellationToken cancellationToken) where TSyntaxNode : SyntaxNode
102this ParsedDocument document, TextSpan span, bool allowEmptyNodes, int maxCount, ref TemporaryArray<TSyntaxNode> result, CancellationToken cancellationToken) where TSyntaxNode : SyntaxNode
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Simplification\Simplifiers\AbstractSimplifier.cs (1)
21out TextSpan issueSpan,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Utilities\NullableHelpers.cs (1)
56TextSpan span,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Indentation\CSharpSmartTokenFormatter.cs (2)
65_root, [TextSpan.FromBounds(startToken.SpanStart, endToken.Span.End)], _options.FormattingOptions, smartTokenformattingRules, cancellationToken);
119_root, [TextSpan.FromBounds(adjustedStartPosition, adjustedEndPosition)], _options.FormattingOptions, smartTokenFormattingRules, cancellationToken);