本文整理汇总了C#中SnapshotPoint.TranslateTo方法的典型用法代码示例。如果您正苦于以下问题:C# SnapshotPoint.TranslateTo方法的具体用法?C# SnapshotPoint.TranslateTo怎么用?C# SnapshotPoint.TranslateTo使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SnapshotPoint
的用法示例。
在下文中一共展示了SnapshotPoint.TranslateTo方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ToPosition
public static Position ToPosition(SnapshotPoint corePoint, ITextSnapshot snapshot = null)
{
SnapshotPoint snapshotPoint = corePoint.TranslateTo(snapshot ?? corePoint.Snapshot, PointTrackingMode.Positive);
ITextSnapshotLine containingLine = snapshotPoint.GetContainingLine();
int charIndex = Math.Max(snapshotPoint.Position - containingLine.Start.Position, 0);
return new Position(containingLine.LineNumber, charIndex);
}
示例2: MapDownToBuffer
public SnapshotPoint? MapDownToBuffer(SnapshotPoint position, PointTrackingMode trackingMode, ITextBuffer targetBuffer, PositionAffinity affinity) {
if (position.Snapshot == null)
throw new ArgumentException();
if (targetBuffer == null)
throw new ArgumentNullException(nameof(targetBuffer));
if (position.Snapshot.TextBuffer != TopBuffer)
return null;
if (TopBuffer != targetBuffer)
return null;
return position.TranslateTo(targetBuffer.CurrentSnapshot, trackingMode);
}
示例3: MapDownToInsertionPoint
public SnapshotPoint? MapDownToInsertionPoint(SnapshotPoint position, PointTrackingMode trackingMode, Predicate<ITextSnapshot> match) {
var snapshot = position.Snapshot;
var buffer = snapshot.TextBuffer;
int pos = position.TranslateTo(snapshot, trackingMode);
while (!match(snapshot)) {
var projBuffer = buffer as IProjectionBufferBase;
if (projBuffer == null) {
return null;
}
var projSnapshot = projBuffer.CurrentSnapshot;
if (projSnapshot.SourceSnapshots.Count == 0) {
return null;
}
var pt = projSnapshot.MapToSourceSnapshot(pos);
pos = pt.Position;
snapshot = pt.Snapshot;
buffer = snapshot.TextBuffer;
}
return new SnapshotPoint(snapshot, pos);
}
示例4: TranslateIndex
internal static SourceLocation TranslateIndex(int index, ITextSnapshot fromSnapshot, ModuleAnalysis toAnalysisSnapshot) {
SnapshotCookie snapshotCookie;
// TODO: buffers differ in the REPL window case, in the future we should handle this better
if (toAnalysisSnapshot != null &&
fromSnapshot != null &&
(snapshotCookie = toAnalysisSnapshot.AnalysisCookie as SnapshotCookie) != null &&
snapshotCookie.Snapshot != null &&
snapshotCookie.Snapshot.TextBuffer == fromSnapshot.TextBuffer) {
var fromPoint = new SnapshotPoint(fromSnapshot, index);
var fromLine = fromPoint.GetContainingLine();
var toPoint = fromPoint.TranslateTo(snapshotCookie.Snapshot, PointTrackingMode.Negative);
var toLine = toPoint.GetContainingLine();
Debug.Assert(fromLine != null, "Unable to get 'from' line from " + fromPoint.ToString());
Debug.Assert(toLine != null, "Unable to get 'to' line from " + toPoint.ToString());
return new SourceLocation(
toPoint.Position,
(toLine != null ? toLine.LineNumber : fromLine != null ? fromLine.LineNumber : 0) + 1,
index - (fromLine != null ? fromLine.Start.Position : 0) + 1
);
} else if (fromSnapshot != null) {
var fromPoint = new SnapshotPoint(fromSnapshot, index);
var fromLine = fromPoint.GetContainingLine();
return new SourceLocation(
index,
fromLine.LineNumber + 1,
index - fromLine.Start.Position + 1
);
} else {
return new SourceLocation(index, 1, 1);
}
}
示例5: FindNextResultCore
SnapshotSpan? FindNextResultCore(FindOptions options, SnapshotPoint startingPosition) {
if (SearchString.Length == 0)
return null;
var snapshot = wpfTextView.TextSnapshot;
startingPosition = startingPosition.TranslateTo(snapshot, PointTrackingMode.Negative);
var searchRange = new SnapshotSpan(snapshot, 0, snapshot.Length);
try {
return textSearchService2.Find(searchRange, startingPosition, SearchString, options);
}
catch (ArgumentException) when ((options & FindOptions.UseRegularExpressions) != 0) {
// Invalid regex string
return null;
}
}
示例6: GetNearestPointInVisualSnapshot
public SnapshotPoint GetNearestPointInVisualSnapshot(SnapshotPoint editBufferPoint, ITextSnapshot targetVisualSnapshot, PointTrackingMode trackingMode) =>
editBufferPoint.TranslateTo(targetVisualSnapshot, trackingMode);
示例7: MapDownToFirstMatch
public SnapshotPoint? MapDownToFirstMatch(SnapshotPoint position, PointTrackingMode trackingMode, Predicate<ITextSnapshot> match, PositionAffinity affinity) {
if (position.Snapshot == null)
throw new ArgumentException();
if (match == null)
throw new ArgumentNullException(nameof(match));
if (position.Snapshot.TextBuffer != TopBuffer)
return null;
if (!match(TopBuffer.CurrentSnapshot))
return null;
return position.TranslateTo(TopBuffer.CurrentSnapshot, trackingMode);
}
示例8: GetLine
ITextViewLine GetLine(SnapshotPoint bufferPosition, PositionAffinity affinity) {
bufferPosition = bufferPosition.TranslateTo(textView.TextSnapshot, GetPointTrackingMode(affinity));
var line = textView.GetTextViewLineContainingBufferPosition(bufferPosition);
if (line == null)
return null;
if (affinity == PositionAffinity.Successor)
return line;
if (line.Start.Position == 0 || line.Start != bufferPosition)
return line;
if (bufferPosition.GetContainingLine().Start == bufferPosition)
return line;
return textView.GetTextViewLineContainingBufferPosition(bufferPosition - 1);
}
示例9: GetNearestPointInVisualSnapshot
public SnapshotPoint GetNearestPointInVisualSnapshot(SnapshotPoint editBufferPoint, ITextSnapshot targetVisualSnapshot, PointTrackingMode trackingMode)
{
// editBufferPoint MUST be in the editBuffer according to the docs
if ( editBufferPoint.Snapshot.TextBuffer != this.EditBuffer )
throw new InvalidOperationException("editBufferPoint is not on the edit buffer");
return editBufferPoint.TranslateTo(targetVisualSnapshot, PointTrackingMode.Positive);
}