MouseLocation(ITextViewLine textViewLine, VirtualSnapshotPoint position, Point point) {
if (textViewLine == null)
throw new ArgumentNullException(nameof(textViewLine));
TextViewLine = textViewLine;
Position = position;
Affinity = textViewLine.IsLastTextViewLineForSnapshotLine || position.Position != textViewLine.End ? PositionAffinity.Successor : PositionAffinity.Predecessor;
Debug.Assert(position.VirtualSpaces == 0 || Affinity == PositionAffinity.Successor);
Point = point;
}