Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/microsoft/vs-editor-api.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/Text/Impl/TextModel/Projection')
-rw-r--r--src/Text/Impl/TextModel/Projection/BaseProjectionBuffer.cs7
-rw-r--r--src/Text/Impl/TextModel/Projection/BufferGraph.cs58
-rw-r--r--src/Text/Impl/TextModel/Projection/BufferGraphFactoryService.cs2
-rw-r--r--src/Text/Impl/TextModel/Projection/ElisionBuffer.cs9
-rw-r--r--src/Text/Impl/TextModel/Projection/ElisionSnapshot.cs20
-rw-r--r--src/Text/Impl/TextModel/Projection/ProjectionBuffer.cs15
-rw-r--r--src/Text/Impl/TextModel/Projection/ProjectionSnapshot.cs25
-rw-r--r--src/Text/Impl/TextModel/Projection/ProjectionSpanToChangeConverter.cs10
8 files changed, 75 insertions, 71 deletions
diff --git a/src/Text/Impl/TextModel/Projection/BaseProjectionBuffer.cs b/src/Text/Impl/TextModel/Projection/BaseProjectionBuffer.cs
index 5dbdfc3..4a3572c 100644
--- a/src/Text/Impl/TextModel/Projection/BaseProjectionBuffer.cs
+++ b/src/Text/Impl/TextModel/Projection/BaseProjectionBuffer.cs
@@ -17,6 +17,7 @@ namespace Microsoft.VisualStudio.Text.Projection.Implementation
using Microsoft.VisualStudio.Text.Differencing;
using Microsoft.VisualStudio.Text.Utilities;
using System.Collections.ObjectModel;
+ using System.Globalization;
internal abstract class BaseProjectionBuffer : BaseBuffer, IProjectionBufferBase
{
@@ -184,7 +185,7 @@ namespace Microsoft.VisualStudio.Text.Projection.Implementation
#endregion
#region Debug support
- [Conditional("_DEBUG")]
+ [Conditional("DEBUG")]
protected void DumpPendingChanges(List<Tuple<ITextBuffer, List<TextChange>>> pendingSourceChanges)
{
if (BufferGroup.Tracing)
@@ -203,7 +204,7 @@ namespace Microsoft.VisualStudio.Text.Projection.Implementation
}
}
- [Conditional("_DEBUG")]
+ [Conditional("DEBUG")]
protected void DumpPendingContentChangedEventArgs()
{
if (BufferGroup.Tracing)
@@ -213,7 +214,7 @@ namespace Microsoft.VisualStudio.Text.Projection.Implementation
{
sb.Append(TextUtilities.GetTag(args.Before.TextBuffer));
sb.Append(" V");
- sb.AppendLine(args.After.Version.VersionNumber.ToString());
+ sb.AppendLine(args.After.Version.VersionNumber.ToString(CultureInfo.InvariantCulture));
foreach (var change in args.Changes)
{
sb.AppendLine(change.ToString());
diff --git a/src/Text/Impl/TextModel/Projection/BufferGraph.cs b/src/Text/Impl/TextModel/Projection/BufferGraph.cs
index 87f42e8..da4d4eb 100644
--- a/src/Text/Impl/TextModel/Projection/BufferGraph.cs
+++ b/src/Text/Impl/TextModel/Projection/BufferGraph.cs
@@ -29,11 +29,11 @@ namespace Microsoft.VisualStudio.Text.Projection.Implementation
{
if (topBuffer == null)
{
- throw new ArgumentNullException("topBuffer");
+ throw new ArgumentNullException(nameof(topBuffer));
}
if (guardedOperations == null)
{
- throw new ArgumentNullException("guardedOperations");
+ throw new ArgumentNullException(nameof(guardedOperations));
}
this.topBuffer = topBuffer;
@@ -69,7 +69,7 @@ namespace Microsoft.VisualStudio.Text.Projection.Implementation
{
if (match == null)
{
- throw new ArgumentNullException("match");
+ throw new ArgumentNullException(nameof(match));
}
FrugalList<ITextBuffer> buffers = new FrugalList<ITextBuffer>();
foreach (ITextBuffer buffer in this.importingProjectionBufferMap.Keys)
@@ -100,19 +100,19 @@ namespace Microsoft.VisualStudio.Text.Projection.Implementation
{
if (position.Snapshot == null)
{
- throw new ArgumentNullException("position");
+ throw new ArgumentNullException(nameof(position));
}
if (trackingMode < PointTrackingMode.Positive || trackingMode > PointTrackingMode.Negative)
{
- throw new ArgumentOutOfRangeException("trackingMode");
+ throw new ArgumentOutOfRangeException(nameof(trackingMode));
}
if (match == null)
{
- throw new ArgumentNullException("match");
+ throw new ArgumentNullException(nameof(match));
}
if (affinity < PositionAffinity.Predecessor || affinity > PositionAffinity.Successor)
{
- throw new ArgumentOutOfRangeException("affinity");
+ throw new ArgumentOutOfRangeException(nameof(affinity));
}
if (!this.importingProjectionBufferMap.ContainsKey(position.Snapshot.TextBuffer))
{
@@ -146,15 +146,15 @@ namespace Microsoft.VisualStudio.Text.Projection.Implementation
{
if (position.Snapshot == null)
{
- throw new ArgumentNullException("position");
+ throw new ArgumentNullException(nameof(position));
}
if (trackingMode < PointTrackingMode.Positive || trackingMode > PointTrackingMode.Negative)
{
- throw new ArgumentOutOfRangeException("trackingMode");
+ throw new ArgumentOutOfRangeException(nameof(trackingMode));
}
if (match == null)
{
- throw new ArgumentNullException("match");
+ throw new ArgumentNullException(nameof(match));
}
ITextBuffer currentBuffer = position.Snapshot.TextBuffer;
@@ -184,19 +184,19 @@ namespace Microsoft.VisualStudio.Text.Projection.Implementation
{
if (position.Snapshot == null)
{
- throw new ArgumentNullException("position");
+ throw new ArgumentNullException(nameof(position));
}
if (trackingMode < PointTrackingMode.Positive || trackingMode > PointTrackingMode.Negative)
{
- throw new ArgumentOutOfRangeException("trackingMode");
+ throw new ArgumentOutOfRangeException(nameof(trackingMode));
}
if (targetBuffer == null)
{
- throw new ArgumentNullException("targetBuffer");
+ throw new ArgumentNullException(nameof(targetBuffer));
}
if (affinity < PositionAffinity.Predecessor || affinity > PositionAffinity.Successor)
{
- throw new ArgumentOutOfRangeException("affinity");
+ throw new ArgumentOutOfRangeException(nameof(affinity));
}
ITextBuffer currentBuffer = position.Snapshot.TextBuffer;
@@ -228,7 +228,7 @@ namespace Microsoft.VisualStudio.Text.Projection.Implementation
{
if (targetSnapshot == null)
{
- throw new ArgumentNullException("targetSnapshot");
+ throw new ArgumentNullException(nameof(targetSnapshot));
}
SnapshotPoint? result = MapDownToBuffer(position, trackingMode, targetSnapshot.TextBuffer, affinity);
@@ -250,7 +250,7 @@ namespace Microsoft.VisualStudio.Text.Projection.Implementation
{
if (targetSnapshot == null)
{
- throw new ArgumentNullException("targetSnapshot");
+ throw new ArgumentNullException(nameof(targetSnapshot));
}
SnapshotPoint? result = MapUpToBuffer(position, trackingMode, affinity, targetSnapshot.TextBuffer);
@@ -266,7 +266,7 @@ namespace Microsoft.VisualStudio.Text.Projection.Implementation
{
if (match == null)
{
- throw new ArgumentNullException("match");
+ throw new ArgumentNullException(nameof(match));
}
return CheckedMapUpToBuffer(point, trackingMode, match, affinity);
}
@@ -275,15 +275,15 @@ namespace Microsoft.VisualStudio.Text.Projection.Implementation
{
if (point.Snapshot == null)
{
- throw new ArgumentNullException("point");
+ throw new ArgumentNullException(nameof(point));
}
if (trackingMode < PointTrackingMode.Positive || trackingMode > PointTrackingMode.Negative)
{
- throw new ArgumentOutOfRangeException("trackingMode");
+ throw new ArgumentOutOfRangeException(nameof(trackingMode));
}
if (affinity < PositionAffinity.Predecessor || affinity > PositionAffinity.Successor)
{
- throw new ArgumentOutOfRangeException("affinity");
+ throw new ArgumentOutOfRangeException(nameof(affinity));
}
if (!this.importingProjectionBufferMap.ContainsKey(point.Snapshot.TextBuffer))
@@ -328,15 +328,15 @@ namespace Microsoft.VisualStudio.Text.Projection.Implementation
{
if (span.Snapshot == null)
{
- throw new ArgumentNullException("span");
+ throw new ArgumentNullException(nameof(span));
}
if (trackingMode < SpanTrackingMode.EdgeExclusive || trackingMode > SpanTrackingMode.EdgeNegative)
{
- throw new ArgumentOutOfRangeException("trackingMode");
+ throw new ArgumentOutOfRangeException(nameof(trackingMode));
}
if (match == null)
{
- throw new ArgumentNullException("match");
+ throw new ArgumentNullException(nameof(match));
}
if (!this.importingProjectionBufferMap.ContainsKey(span.Snapshot.TextBuffer))
@@ -372,7 +372,7 @@ namespace Microsoft.VisualStudio.Text.Projection.Implementation
{
if (targetBuffer == null)
{
- throw new ArgumentNullException("targetBuffer");
+ throw new ArgumentNullException(nameof(targetBuffer));
}
if (!this.importingProjectionBufferMap.ContainsKey(targetBuffer))
@@ -389,7 +389,7 @@ namespace Microsoft.VisualStudio.Text.Projection.Implementation
{
if (targetSnapshot == null)
{
- throw new ArgumentNullException("targetSnapshot");
+ throw new ArgumentNullException(nameof(targetSnapshot));
}
NormalizedSnapshotSpanCollection results = MapDownToBuffer(span, trackingMode, targetSnapshot.TextBuffer);
@@ -411,7 +411,7 @@ namespace Microsoft.VisualStudio.Text.Projection.Implementation
{
if (targetSnapshot == null)
{
- throw new ArgumentNullException("targetSnapshot");
+ throw new ArgumentNullException(nameof(targetSnapshot));
}
NormalizedSnapshotSpanCollection results = MapUpToBuffer(span, trackingMode, targetSnapshot.TextBuffer);
@@ -482,7 +482,7 @@ namespace Microsoft.VisualStudio.Text.Projection.Implementation
{
if (match == null)
{
- throw new ArgumentNullException("match");
+ throw new ArgumentNullException(nameof(match));
}
return CheckedMapUpToBuffer(span, trackingMode, match);
}
@@ -491,11 +491,11 @@ namespace Microsoft.VisualStudio.Text.Projection.Implementation
{
if (span.Snapshot == null)
{
- throw new ArgumentNullException("span");
+ throw new ArgumentNullException(nameof(span));
}
if (trackingMode < SpanTrackingMode.EdgeExclusive || trackingMode > SpanTrackingMode.EdgeNegative)
{
- throw new ArgumentOutOfRangeException("trackingMode");
+ throw new ArgumentOutOfRangeException(nameof(trackingMode));
}
ITextBuffer buffer = span.Snapshot.TextBuffer;
if (!this.importingProjectionBufferMap.ContainsKey(buffer))
diff --git a/src/Text/Impl/TextModel/Projection/BufferGraphFactoryService.cs b/src/Text/Impl/TextModel/Projection/BufferGraphFactoryService.cs
index 7c47c06..f4b1cc1 100644
--- a/src/Text/Impl/TextModel/Projection/BufferGraphFactoryService.cs
+++ b/src/Text/Impl/TextModel/Projection/BufferGraphFactoryService.cs
@@ -21,7 +21,7 @@ namespace Microsoft.VisualStudio.Text.Projection.Implementation
{
if (textBuffer == null)
{
- throw new ArgumentNullException("textBuffer");
+ throw new ArgumentNullException(nameof(textBuffer));
}
return textBuffer.Properties.GetOrCreateSingletonProperty<BufferGraph>(() => (new BufferGraph(textBuffer, GuardedOperations)));
}
diff --git a/src/Text/Impl/TextModel/Projection/ElisionBuffer.cs b/src/Text/Impl/TextModel/Projection/ElisionBuffer.cs
index f47748e..6d30821 100644
--- a/src/Text/Impl/TextModel/Projection/ElisionBuffer.cs
+++ b/src/Text/Impl/TextModel/Projection/ElisionBuffer.cs
@@ -123,6 +123,7 @@ namespace Microsoft.VisualStudio.Text.Projection.Implementation
this.sourceBuffer = sourceBuffer;
this.sourceSnapshot = sourceBuffer.CurrentSnapshot;
+ Debug.Assert(sourceBuffer is BaseBuffer);
BaseBuffer baseSourceBuffer = (BaseBuffer)sourceBuffer;
this.eventHook = new WeakEventHook(this, baseSourceBuffer);
@@ -219,11 +220,11 @@ namespace Microsoft.VisualStudio.Text.Projection.Implementation
{
if ((spansToElide.Count > 0) && (spansToElide[spansToElide.Count - 1].End > this.elBuffer.sourceSnapshot.Length))
{
- throw new ArgumentOutOfRangeException("spansToElide");
+ throw new ArgumentOutOfRangeException(nameof(spansToElide));
}
if ((spansToExpand.Count > 0) && (spansToExpand[spansToExpand.Count - 1].End > this.elBuffer.sourceSnapshot.Length))
{
- throw new ArgumentOutOfRangeException("spansToExpand");
+ throw new ArgumentOutOfRangeException(nameof(spansToExpand));
}
ElisionSourceSpansChangedEventArgs args = this.elBuffer.ApplySpanChanges(spansToElide, spansToExpand);
if (args != null)
@@ -251,7 +252,7 @@ namespace Microsoft.VisualStudio.Text.Projection.Implementation
{
if (spansToElide == null)
{
- throw new ArgumentNullException("spansToElide");
+ throw new ArgumentNullException(nameof(spansToElide));
}
return ModifySpans(spansToElide, null);
}
@@ -260,7 +261,7 @@ namespace Microsoft.VisualStudio.Text.Projection.Implementation
{
if (spansToExpand == null)
{
- throw new ArgumentNullException("spansToExpand");
+ throw new ArgumentNullException(nameof(spansToExpand));
}
return ModifySpans(null, spansToExpand);
}
diff --git a/src/Text/Impl/TextModel/Projection/ElisionSnapshot.cs b/src/Text/Impl/TextModel/Projection/ElisionSnapshot.cs
index 36b0779..8c70f24 100644
--- a/src/Text/Impl/TextModel/Projection/ElisionSnapshot.cs
+++ b/src/Text/Impl/TextModel/Projection/ElisionSnapshot.cs
@@ -91,7 +91,7 @@ namespace Microsoft.VisualStudio.Text.Projection.Implementation
{
if (textBuffer == null)
{
- throw new ArgumentNullException("textBuffer");
+ throw new ArgumentNullException(nameof(textBuffer));
}
return this.sourceSnapshot.TextBuffer == textBuffer ? this.sourceSnapshot : null;
}
@@ -100,7 +100,7 @@ namespace Microsoft.VisualStudio.Text.Projection.Implementation
{
if (textBuffer == null)
{
- throw new ArgumentNullException("textBuffer");
+ throw new ArgumentNullException(nameof(textBuffer));
}
if (this.sourceSnapshot.TextBuffer == textBuffer)
@@ -121,7 +121,7 @@ namespace Microsoft.VisualStudio.Text.Projection.Implementation
{
if (match == null)
{
- throw new ArgumentNullException("match");
+ throw new ArgumentNullException(nameof(match));
}
if (match(this.sourceSnapshot.TextBuffer))
@@ -142,11 +142,11 @@ namespace Microsoft.VisualStudio.Text.Projection.Implementation
{
if (startSpanIndex < 0)
{
- throw new ArgumentOutOfRangeException("startSpanIndex");
+ throw new ArgumentOutOfRangeException(nameof(startSpanIndex));
}
if (count < 0 || startSpanIndex + count > SpanCount)
{
- throw new ArgumentOutOfRangeException("count");
+ throw new ArgumentOutOfRangeException(nameof(count));
}
return new ReadOnlyCollection<SnapshotSpan>(this.content.GetSourceSpans(this.sourceSnapshot, startSpanIndex, count));
}
@@ -162,7 +162,7 @@ namespace Microsoft.VisualStudio.Text.Projection.Implementation
{
if (position < 0 || position > this.totalLength)
{
- throw new ArgumentOutOfRangeException("position");
+ throw new ArgumentOutOfRangeException(nameof(position));
}
FrugalList<SnapshotPoint> points = this.content.MapInsertionPointToSourceSnapshots(this, position);
if (points.Count == 1)
@@ -183,11 +183,11 @@ namespace Microsoft.VisualStudio.Text.Projection.Implementation
{
if (position < 0 || position > this.totalLength)
{
- throw new ArgumentOutOfRangeException("position");
+ throw new ArgumentOutOfRangeException(nameof(position));
}
if (affinity < PositionAffinity.Predecessor || affinity > PositionAffinity.Successor)
{
- throw new ArgumentOutOfRangeException("affinity");
+ throw new ArgumentOutOfRangeException(nameof(affinity));
}
return this.content.MapToSourceSnapshot(this.sourceSnapshot, position, affinity);
}
@@ -200,7 +200,7 @@ namespace Microsoft.VisualStudio.Text.Projection.Implementation
}
if (affinity < PositionAffinity.Predecessor || affinity > PositionAffinity.Successor)
{
- throw new ArgumentOutOfRangeException("affinity");
+ throw new ArgumentOutOfRangeException(nameof(affinity));
}
return this.content.MapFromSourceSnapshot(this, point.Position);
}
@@ -209,7 +209,7 @@ namespace Microsoft.VisualStudio.Text.Projection.Implementation
{
if (span.End > this.totalLength)
{
- throw new ArgumentOutOfRangeException("span");
+ throw new ArgumentOutOfRangeException(nameof(span));
}
FrugalList<SnapshotSpan> result = new FrugalList<SnapshotSpan>();
if (fillIn)
diff --git a/src/Text/Impl/TextModel/Projection/ProjectionBuffer.cs b/src/Text/Impl/TextModel/Projection/ProjectionBuffer.cs
index 67b747e..368db2f 100644
--- a/src/Text/Impl/TextModel/Projection/ProjectionBuffer.cs
+++ b/src/Text/Impl/TextModel/Projection/ProjectionBuffer.cs
@@ -554,10 +554,8 @@ namespace Microsoft.VisualStudio.Text.Projection.Implementation
{
foreach (object spanToInsert in this.RawSpansToInsert)
{
- if (spanToInsert == null)
- {
- throw new ArgumentNullException("spansToInsert");
- }
+ Requires.NotNull(spanToInsert, nameof(spanToInsert));
+
ITrackingSpan trackingSpanToInsert = spanToInsert as ITrackingSpan;
if (trackingSpanToInsert != null)
{
@@ -731,15 +729,15 @@ namespace Microsoft.VisualStudio.Text.Projection.Implementation
{
if (position < 0 || position > this.projBuffer.sourceSpans.Count)
{
- throw new ArgumentOutOfRangeException("position");
+ throw new ArgumentOutOfRangeException(nameof(position));
}
if (spansToReplace < 0 || position + spansToReplace > this.projBuffer.sourceSpans.Count)
{
- throw new ArgumentOutOfRangeException("spansToReplace");
+ throw new ArgumentOutOfRangeException(nameof(spansToReplace));
}
if (spansToInsert == null)
{
- throw new ArgumentNullException("spansToInsert");
+ throw new ArgumentNullException(nameof(spansToInsert));
}
this.spanManager = new SpanManager(this.projBuffer, position, spansToReplace, spansToInsert, true, (this.projBuffer.bufferOptions & ProjectionBufferOptions.WritableLiteralSpans) != 0);
@@ -1596,12 +1594,15 @@ namespace Microsoft.VisualStudio.Text.Projection.Implementation
}
}
+#pragma warning disable CA1801 // Review unused parameters
private StringRebuilder InsertionLiesInCustomSpan(ITextSnapshot afterSourceSnapshot,
int spanPosition,
ITextChange incomingChange,
HashSet<SnapshotPoint> urPoints,
int accumulatedDelta)
{
+#pragma warning disable CA1801 // Review unused parameters
+
// just evaluate the new span and see if it overlaps the insertion.
ITrackingSpan sourceTrackingSpan = this.sourceSpans[spanPosition];
SnapshotSpan afterSpan = sourceTrackingSpan.GetSpan(afterSourceSnapshot);
diff --git a/src/Text/Impl/TextModel/Projection/ProjectionSnapshot.cs b/src/Text/Impl/TextModel/Projection/ProjectionSnapshot.cs
index 5414af1..67a4473 100644
--- a/src/Text/Impl/TextModel/Projection/ProjectionSnapshot.cs
+++ b/src/Text/Impl/TextModel/Projection/ProjectionSnapshot.cs
@@ -17,6 +17,7 @@ namespace Microsoft.VisualStudio.Text.Projection.Implementation
using Microsoft.VisualStudio.Text.Utilities;
using Strings = Microsoft.VisualStudio.Text.Implementation.Strings;
+ using System.Globalization;
internal partial class ProjectionSnapshot : BaseProjectionSnapshot, IProjectionSnapshot
{
@@ -192,7 +193,7 @@ namespace Microsoft.VisualStudio.Text.Projection.Implementation
{
if (textBuffer == null)
{
- throw new ArgumentNullException("textBuffer");
+ throw new ArgumentNullException(nameof(textBuffer));
}
foreach (ITextSnapshot snappy in this.sourceSnapshotMap.Keys)
{
@@ -208,7 +209,7 @@ namespace Microsoft.VisualStudio.Text.Projection.Implementation
{
if (textBuffer == null)
{
- throw new ArgumentNullException("textBuffer");
+ throw new ArgumentNullException(nameof(textBuffer));
}
foreach (ITextSnapshot snappy in this.sourceSnapshotMap.Keys)
{
@@ -233,7 +234,7 @@ namespace Microsoft.VisualStudio.Text.Projection.Implementation
{
if (match == null)
{
- throw new ArgumentNullException("match");
+ throw new ArgumentNullException(nameof(match));
}
foreach (ITextSnapshot snappy in this.sourceSnapshotMap.Keys)
{
@@ -263,11 +264,11 @@ namespace Microsoft.VisualStudio.Text.Projection.Implementation
{
if (startSpanIndex < 0 || startSpanIndex > this.SpanCount)
{
- throw new ArgumentOutOfRangeException("startSpanIndex");
+ throw new ArgumentOutOfRangeException(nameof(startSpanIndex));
}
if (count < 0 || startSpanIndex + count > this.SpanCount)
{
- throw new ArgumentOutOfRangeException("count");
+ throw new ArgumentOutOfRangeException(nameof(count));
}
// better using iterator or explicit successor func eventually
@@ -290,7 +291,7 @@ namespace Microsoft.VisualStudio.Text.Projection.Implementation
{
if (span.End > this.Length)
{
- throw new ArgumentOutOfRangeException("span");
+ throw new ArgumentOutOfRangeException(nameof(span));
}
FrugalList<SnapshotSpan> mappedSpans = new FrugalList<SnapshotSpan>();
@@ -464,7 +465,7 @@ namespace Microsoft.VisualStudio.Text.Projection.Implementation
{
if (position < 0 || position > this.totalLength)
{
- throw new ArgumentOutOfRangeException("position");
+ throw new ArgumentOutOfRangeException(nameof(position));
}
ReadOnlyCollection<SnapshotPoint> points = this.MapInsertionPointToSourceSnapshots(position, this.projectionBuffer.literalBuffer); // should this be conditional on writable literal buffer?
if (points.Count == 1)
@@ -485,11 +486,11 @@ namespace Microsoft.VisualStudio.Text.Projection.Implementation
{
if (position < 0 || position > this.Length)
{
- throw new ArgumentOutOfRangeException("position");
+ throw new ArgumentOutOfRangeException(nameof(position));
}
if (affinity < PositionAffinity.Predecessor || affinity > PositionAffinity.Successor)
{
- throw new ArgumentOutOfRangeException("affinity");
+ throw new ArgumentOutOfRangeException(nameof(affinity));
}
int rover = affinity == PositionAffinity.Predecessor ? FindLowestSpanIndexOfPosition(position)
@@ -508,7 +509,7 @@ namespace Microsoft.VisualStudio.Text.Projection.Implementation
{
if (affinity < PositionAffinity.Predecessor || affinity > PositionAffinity.Successor)
{
- throw new ArgumentOutOfRangeException("affinity");
+ throw new ArgumentOutOfRangeException(nameof(affinity));
}
List<InvertedSource> orderedSources;
@@ -576,7 +577,7 @@ namespace Microsoft.VisualStudio.Text.Projection.Implementation
{
if (position < 0 || position > this.Length)
{
- throw new ArgumentOutOfRangeException("position");
+ throw new ArgumentOutOfRangeException(nameof(position));
}
int rover = FindLowestSpanIndexOfPosition(position);
@@ -740,7 +741,7 @@ namespace Microsoft.VisualStudio.Text.Projection.Implementation
"{0,12} {1,10} {2,4} {3,12} {4}\r\n",
new Span(cumulativeLength, sourceSpan.Length),
TextUtilities.GetTagOrContentType(sourceSpan.Snapshot.TextBuffer),
- "V" + sourceSpan.Snapshot.Version.VersionNumber.ToString(),
+ "V" + sourceSpan.Snapshot.Version.VersionNumber.ToString(CultureInfo.InvariantCulture),
sourceSpan.Span,
TextUtilities.Escape(sourceSpan.GetText()));
cumulativeLength += sourceSpan.Length;
diff --git a/src/Text/Impl/TextModel/Projection/ProjectionSpanToChangeConverter.cs b/src/Text/Impl/TextModel/Projection/ProjectionSpanToChangeConverter.cs
index 06b0306..9e62620 100644
--- a/src/Text/Impl/TextModel/Projection/ProjectionSpanToChangeConverter.cs
+++ b/src/Text/Impl/TextModel/Projection/ProjectionSpanToChangeConverter.cs
@@ -48,7 +48,7 @@ namespace Microsoft.VisualStudio.Text.Projection.Implementation
private void ConstructChanges()
{
- IDifferenceCollection<SnapshotSpan> diffs = differ.GetDifferences();
+ var diffs = differ.GetDifferences();
List<TextChange> changes = new List<TextChange>();
int pos = this.textPosition;
@@ -56,10 +56,10 @@ namespace Microsoft.VisualStudio.Text.Projection.Implementation
// each difference generates a text change
foreach (Difference diff in diffs)
{
- pos += GetMatchSize(differ.DeletedSpans, diff.Before);
+ pos += GetMatchSize(diffs.LeftSequence, diff.Before);
TextChange change = TextChange.Create(pos,
- BufferFactoryService.StringRebuilderFromSnapshotSpans(differ.DeletedSpans, diff.Left),
- BufferFactoryService.StringRebuilderFromSnapshotSpans(differ.InsertedSpans, diff.Right),
+ BufferFactoryService.StringRebuilderFromSnapshotSpans(diffs.LeftSequence, diff.Left),
+ BufferFactoryService.StringRebuilderFromSnapshotSpans(diffs.RightSequence, diff.Right),
this.currentSnapshot);
changes.Add(change);
pos += change.OldLength;
@@ -67,7 +67,7 @@ namespace Microsoft.VisualStudio.Text.Projection.Implementation
this.normalizedChanges = NormalizedTextChangeCollection.Create(changes);
}
- private static int GetMatchSize(ReadOnlyCollection<SnapshotSpan> spans, Match match)
+ private static int GetMatchSize(IList<SnapshotSpan> spans, Match match)
{
int size = 0;
if (match != null)