1 write to Span
Microsoft.CodeAnalysis (1)
Text\TextChangeRange.cs (1)
43this.Span = span;
195 references to Span
Microsoft.CodeAnalysis (87)
InternalUtilities\TextChangeRangeExtensions.cs (35)
37var currentStart = accumulatedTextChangeSoFar.Value.Span.Start; 38var currentOldEnd = accumulatedTextChangeSoFar.Value.Span.End; 39var currentNewEnd = accumulatedTextChangeSoFar.Value.Span.Start + accumulatedTextChangeSoFar.Value.NewLength; 68if (newChange.Span.Start < currentStart) 70currentStart = newChange.Span.Start; 77if (currentNewEnd > newChange.Span.End) 85currentNewEnd = currentNewEnd + newChange.NewLength - newChange.Span.Length; 95currentOldEnd = currentOldEnd + newChange.Span.End - currentNewEnd; 96currentNewEnd = newChange.Span.Start + newChange.NewLength; 149if (oldChange.Span.Length == 0 && oldChange.NewLength == 0) 161else if (newChange.SpanEnd <= oldChange.Span.Start + oldDelta) 179else if (newChange.SpanStart < oldChange.Span.Start + oldDelta) 198var newChangeLeadingDeletion = oldChange.Span.Start + oldDelta - newChange.SpanStart; 200newChange = new UnadjustedNewChange(oldChange.Span.Start + oldDelta, newChange.SpanLength - newChangeLeadingDeletion, newChange.NewLength); 203else if (newChange.SpanStart > oldChange.Span.Start + oldDelta) 221var oldChangeLeadingInsertion = newChange.SpanStart - (oldChange.Span.Start + oldDelta); 223var oldChangeLeadingDeletion = Math.Min(oldChange.Span.Length, oldChangeLeadingInsertion); 224addAndAdjustOldDelta(builder, ref oldDelta, new TextChangeRange(new TextSpan(oldChange.Span.Start, oldChangeLeadingDeletion), oldChangeLeadingInsertion)); 225oldChange = new TextChangeRange(new TextSpan(newChange.SpanStart - oldDelta, oldChange.Span.Length - oldChangeLeadingDeletion), oldChange.NewLength - oldChangeLeadingInsertion); 231Debug.Assert(newChange.SpanStart == oldChange.Span.Start + oldDelta); 260oldChange = new TextChangeRange(oldChange.Span, oldChange.NewLength - newChange.SpanLength); 307oldDelta = oldDelta - oldChange.Span.Length + oldChange.NewLength; 309var newDeletion = newChange.SpanLength + oldChange.Span.Length - oldChange.NewLength; 310newChange = new UnadjustedNewChange(oldChange.Span.Start + oldDelta, newDeletion, newChange.NewLength); 372oldDelta = oldDelta - oldChange.Span.Length + oldChange.NewLength; 387if (last.Span.End == change.Span.Start) 390builder[^1] = new TextChangeRange(new TextSpan(last.Span.Start, last.Span.Length + change.Span.Length), last.NewLength + change.NewLength); 393else if (last.Span.End > change.Span.Start) 429: this(range.Span.Start, range.Span.Length, range.NewLength) 434private static int NewEnd(this TextChangeRange range) => range.Span.Start + range.NewLength;
Syntax\SyntaxDiffer.cs (21)
68return reducedChanges.Select(c => new TextChange(c.Range.Span, c.NewText!)).ToList(); 111int start = change.Range.Span.Start + delta; 115delta += change.Range.NewLength - change.Range.Span.Length; 577if (last.Range.Span.End == change.Range.Span.Start) 581new TextChangeRange(new TextSpan(last.Range.Span.Start, last.Range.Span.Length + change.Range.Span.Length), last.Range.NewLength + change.Range.NewLength), 587Debug.Assert(change.Range.Span.Start >= last.Range.Span.End); 598if (last.Range.Span.End == textChangeRange.Span.Start) 604new TextChangeRange(new TextSpan(last.Range.Span.Start, last.Range.Span.Length + textChangeRange.Span.Length), last.Range.NewLength + textChangeRange.NewLength), 610Debug.Assert(textChangeRange.Span.Start >= last.Range.Span.End); 748if (cr.Range.Span.Length > 0 && cr.Range.NewLength > 0) 763new TextSpan(range.Span.Start + commonLeadingCount, range.Span.Length - (commonLeadingCount + commonTrailingCount)), 778if (range.Span.Length > 0 || range.NewLength > 0)
Syntax\SyntaxTreeExtensions.cs (1)
31var change = TextChangeRange.Collapse(changes).Span;
Text\ChangedText.cs (14)
39deltaLength += change.NewLength - change.Span.Length; 47if (change.Span.Start < position) 50if (change.Span.Start > oldText.Length) 53if (change.Span.End > oldText.Length) 56position = change.Span.End; 296if (change.Span.Start > position) 305var lps = oldLineInfo.GetLinePositionSpan(TextSpan.FromBounds(position, change.Span.Start)); 311endsWithCR = oldText[change.Span.Start - 1] == '\r'; 315if (endsWithCR && change.Span.Start < oldText.Length && oldText[change.Span.Start] == '\n') 317lineStarts.Add(change.Span.Start + delta); 324var changeStart = change.Span.Start + delta; 343position = change.Span.End; 344delta += (change.NewLength - change.Span.Length);
Text\SourceText.cs (4)
667if (change.Span.End <= changeRanges.Last().Span.Start) 798var newPos = range.Span.Start + newPosDelta; 812textChanges.Add(new TextChange(range.Span, newt)); 814newPosDelta += range.NewLength - range.Span.Length;
Text\TextChangeRange.cs (12)
28internal int NewEnd => Span.Start + NewLength; 53other.Span == this.Span && 71return Hash.Combine(this.NewLength, this.Span.GetHashCode()); 107diff += change.NewLength - change.Span.Length; 109if (change.Span.Start < start) 111start = change.Span.Start; 114if (change.Span.End > end) 116end = change.Span.End; 134return $"new TextChangeRange(new TextSpan({Span.Start}, {Span.Length}), {NewLength})"; 139return $"TextChangeRange(Span={Span}, NewLength={NewLength})";
Microsoft.CodeAnalysis.CodeStyle (36)
J\s\src\Compilers\Core\Portable\Syntax\SyntaxTreeExtensions.cs\SyntaxTreeExtensions.cs (1)
31var change = TextChangeRange.Collapse(changes).Span;
TextChangeRangeExtensions.cs (35)
37var currentStart = accumulatedTextChangeSoFar.Value.Span.Start; 38var currentOldEnd = accumulatedTextChangeSoFar.Value.Span.End; 39var currentNewEnd = accumulatedTextChangeSoFar.Value.Span.Start + accumulatedTextChangeSoFar.Value.NewLength; 68if (newChange.Span.Start < currentStart) 70currentStart = newChange.Span.Start; 77if (currentNewEnd > newChange.Span.End) 85currentNewEnd = currentNewEnd + newChange.NewLength - newChange.Span.Length; 95currentOldEnd = currentOldEnd + newChange.Span.End - currentNewEnd; 96currentNewEnd = newChange.Span.Start + newChange.NewLength; 149if (oldChange.Span.Length == 0 && oldChange.NewLength == 0) 161else if (newChange.SpanEnd <= oldChange.Span.Start + oldDelta) 179else if (newChange.SpanStart < oldChange.Span.Start + oldDelta) 198var newChangeLeadingDeletion = oldChange.Span.Start + oldDelta - newChange.SpanStart; 200newChange = new UnadjustedNewChange(oldChange.Span.Start + oldDelta, newChange.SpanLength - newChangeLeadingDeletion, newChange.NewLength); 203else if (newChange.SpanStart > oldChange.Span.Start + oldDelta) 221var oldChangeLeadingInsertion = newChange.SpanStart - (oldChange.Span.Start + oldDelta); 223var oldChangeLeadingDeletion = Math.Min(oldChange.Span.Length, oldChangeLeadingInsertion); 224addAndAdjustOldDelta(builder, ref oldDelta, new TextChangeRange(new TextSpan(oldChange.Span.Start, oldChangeLeadingDeletion), oldChangeLeadingInsertion)); 225oldChange = new TextChangeRange(new TextSpan(newChange.SpanStart - oldDelta, oldChange.Span.Length - oldChangeLeadingDeletion), oldChange.NewLength - oldChangeLeadingInsertion); 231Debug.Assert(newChange.SpanStart == oldChange.Span.Start + oldDelta); 260oldChange = new TextChangeRange(oldChange.Span, oldChange.NewLength - newChange.SpanLength); 307oldDelta = oldDelta - oldChange.Span.Length + oldChange.NewLength; 309var newDeletion = newChange.SpanLength + oldChange.Span.Length - oldChange.NewLength; 310newChange = new UnadjustedNewChange(oldChange.Span.Start + oldDelta, newDeletion, newChange.NewLength); 372oldDelta = oldDelta - oldChange.Span.Length + oldChange.NewLength; 387if (last.Span.End == change.Span.Start) 390builder[^1] = new TextChangeRange(new TextSpan(last.Span.Start, last.Span.Length + change.Span.Length), last.NewLength + change.NewLength); 393else if (last.Span.End > change.Span.Start) 429: this(range.Span.Start, range.Span.Length, range.NewLength) 434private static int NewEnd(this TextChangeRange range) => range.Span.Start + range.NewLength;
Microsoft.CodeAnalysis.CSharp (7)
Parser\Blender.cs (3)
128var start = Math.Max(Math.Min(changeRange.Span.Start, lastCharIndex), 0); 158var finalSpan = TextSpan.FromBounds(start, changeRange.Span.End); 159var finalLength = changeRange.NewLength + (changeRange.Span.Start - start);
Parser\Blender.Reader.cs (3)
132while (!_changes.IsEmpty && oldPosition >= _changes.Peek().Span.End) 137_changeDelta += change.NewLength - change.Span.Length; 288var changeSpan = _changes.Peek().Span;
Syntax\CSharpSyntaxTree.cs (1)
564if (workingChanges.Count == 1 && workingChanges[0].Span == new TextSpan(0, this.Length) && workingChanges[0].NewLength == newText.Length)
Microsoft.CodeAnalysis.CSharp.Features (3)
BraceCompletion\AbstractCurlyBraceOrBracketCompletionService.cs (3)
190var newTextChangeSpan = newRange.Span; 198var newTextChangeText = formattedText.GetSubText(new TextSpan(newRange.Span.Start + amountToShift, newRange.NewLength)).ToString(); 199amountToShift += (newRange.NewLength - newRange.Span.Length);
Microsoft.CodeAnalysis.EditorFeatures (2)
Classification\Semantic\ClassificationUtilities.cs (1)
126var changedSpan = new TextSpan(range.Value.Span.Start, range.Value.NewLength);
Classification\Syntactic\SyntacticClassificationTaggerProvider.TagComputer.cs (1)
320? currentSnapshot.GetSpan(changeRange.Value.Span.Start, changeRange.Value.NewLength)
Microsoft.CodeAnalysis.EditorFeatures2.UnitTests (1)
Classification\SyntacticChangeRangeComputerTests.vb (1)
40Assert.True(expectedChange = actualChange, expectedChange.ToString() & " != " & actualChange.ToString() & vbCrLf & "Changed span was" & vbCrLf & startingText.ToString(actualChange.Span))
Microsoft.CodeAnalysis.Features (7)
SolutionCrawler\AbstractDocumentDifferenceService.cs (7)
112var oldMember = syntaxFactsService.GetContainingMemberDeclaration(oldRoot, range.Span.Start); 113var newMember = syntaxFactsService.GetContainingMemberDeclaration(newRoot, range.Span.Start); 122if (!syntaxFactsService.ContainsInMemberBody(oldMember, range.Span)) 153var oldMember = syntaxFactsService.GetContainingMemberDeclaration(oldRoot, range.Span.Start); 154var newMember = syntaxFactsService.GetContainingMemberDeclaration(newRoot, range.Span.Start); 169if (!oldMember.Span.Contains(range.Span)) 175var lengthDelta = range.NewLength - range.Span.Length;
Microsoft.CodeAnalysis.UnitTests (3)
Text\TextChangeRangeTest.cs (1)
28Assert.Equal(span, range.Span);
Text\TextChangeTests.cs (2)
78Assert.Equal(6, changes[0].Span.Start); 79Assert.Equal(0, changes[0].Span.Length);
Microsoft.CodeAnalysis.VisualBasic (12)
Scanner\Blender.vb (11)
209Dim start = _change.Span.Start 210Dim [end] = _change.Span.End 221ExpandByLookAheadAndBehind(_baseTreeRoot, _change.Span)) 222_affectedRange = New TextChangeRange(span, span.Length - _change.Span.Length + _change.NewLength) 226If position < _change.Span.Start Then 230If position >= _change.Span.Start + _change.NewLength Then 231Return position - _change.NewLength + _change.Span.Length 389Dim range = New TextSpan(_affectedRange.Span.Start, _affectedRange.NewLength) 439If _affectedRange.Span.Length = 0 Then 440If _curNodeSpan.Contains(_affectedRange.Span.Start) Then 444If _curNodeSpan.OverlapsWith(_affectedRange.Span) Then
Syntax\VisualBasicSyntaxTree.vb (1)
120If changes.Length = 1 AndAlso changes(0).Span = New TextSpan(0, Me.Length) AndAlso changes(0).NewLength = newText.Length Then
Microsoft.CodeAnalysis.Workspaces (37)
J\s\src\Compilers\Core\Portable\Syntax\SyntaxTreeExtensions.cs\SyntaxTreeExtensions.cs (1)
31var change = TextChangeRange.Collapse(changes).Span;
TextChangeRangeExtensions.cs (35)
37var currentStart = accumulatedTextChangeSoFar.Value.Span.Start; 38var currentOldEnd = accumulatedTextChangeSoFar.Value.Span.End; 39var currentNewEnd = accumulatedTextChangeSoFar.Value.Span.Start + accumulatedTextChangeSoFar.Value.NewLength; 68if (newChange.Span.Start < currentStart) 70currentStart = newChange.Span.Start; 77if (currentNewEnd > newChange.Span.End) 85currentNewEnd = currentNewEnd + newChange.NewLength - newChange.Span.Length; 95currentOldEnd = currentOldEnd + newChange.Span.End - currentNewEnd; 96currentNewEnd = newChange.Span.Start + newChange.NewLength; 149if (oldChange.Span.Length == 0 && oldChange.NewLength == 0) 161else if (newChange.SpanEnd <= oldChange.Span.Start + oldDelta) 179else if (newChange.SpanStart < oldChange.Span.Start + oldDelta) 198var newChangeLeadingDeletion = oldChange.Span.Start + oldDelta - newChange.SpanStart; 200newChange = new UnadjustedNewChange(oldChange.Span.Start + oldDelta, newChange.SpanLength - newChangeLeadingDeletion, newChange.NewLength); 203else if (newChange.SpanStart > oldChange.Span.Start + oldDelta) 221var oldChangeLeadingInsertion = newChange.SpanStart - (oldChange.Span.Start + oldDelta); 223var oldChangeLeadingDeletion = Math.Min(oldChange.Span.Length, oldChangeLeadingInsertion); 224addAndAdjustOldDelta(builder, ref oldDelta, new TextChangeRange(new TextSpan(oldChange.Span.Start, oldChangeLeadingDeletion), oldChangeLeadingInsertion)); 225oldChange = new TextChangeRange(new TextSpan(newChange.SpanStart - oldDelta, oldChange.Span.Length - oldChangeLeadingDeletion), oldChange.NewLength - oldChangeLeadingInsertion); 231Debug.Assert(newChange.SpanStart == oldChange.Span.Start + oldDelta); 260oldChange = new TextChangeRange(oldChange.Span, oldChange.NewLength - newChange.SpanLength); 307oldDelta = oldDelta - oldChange.Span.Length + oldChange.NewLength; 309var newDeletion = newChange.SpanLength + oldChange.Span.Length - oldChange.NewLength; 310newChange = new UnadjustedNewChange(oldChange.Span.Start + oldDelta, newDeletion, newChange.NewLength); 372oldDelta = oldDelta - oldChange.Span.Length + oldChange.NewLength; 387if (last.Span.End == change.Span.Start) 390builder[^1] = new TextChangeRange(new TextSpan(last.Span.Start, last.Span.Length + change.Span.Length), last.NewLength + change.NewLength); 393else if (last.Span.End > change.Span.Start) 429: this(range.Span.Start, range.Span.Length, range.NewLength) 434private static int NewEnd(this TextChangeRange range) => range.Span.Start + range.NewLength;
Workspace\Solution\DocumentState.cs (1)
270if (change.Span.Length < MaxTextChangeRangeLength && change.NewLength < MaxTextChangeRangeLength)