void InternalMoveTo(VirtualSnapshotPoint bufferPosition, PositionAffinity caretAffinity, bool captureHorizontalPosition, bool captureVerticalPosition, bool raiseEvent) { int requestedPosition = bufferPosition.Position; ITextSnapshotLine snapshotLine = TextEditor.TextSnapshot.GetLineFromPosition(requestedPosition); int line = snapshotLine.LineNumber + 1; int col; if (bufferPosition.IsInVirtualSpace) { col = bufferPosition.VirtualSpaces; if (!TextEditor.Options.TabsToSpaces) { col = col / TextEditor.Options.TabSize; } } else { col = requestedPosition - snapshotLine.Start; } col += 1; TextEditor.SetCaretTo(line, col, false, false); }