本文整理汇总了C#中AnchorMovementType类的典型用法代码示例。如果您正苦于以下问题:C# AnchorMovementType类的具体用法?C# AnchorMovementType怎么用?C# AnchorMovementType使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
AnchorMovementType类属于命名空间,在下文中一共展示了AnchorMovementType类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GetNewOffset
/// <summary>
/// Gets the new offset where the specified offset moves after this document change.
/// </summary>
public override int GetNewOffset(int offset, AnchorMovementType movementType = AnchorMovementType.Default)
{
if (offsetChangeMap != null)
return offsetChangeMap.GetNewOffset(offset, movementType);
else
return CreateSingleChangeMapEntry().GetNewOffset(offset, movementType);
}
示例2: GetNewOffset
/// <summary>
/// Gets the new offset where the specified offset moves after this document change.
/// </summary>
public virtual int GetNewOffset(int offset, AnchorMovementType movementType = AnchorMovementType.Default)
{
if (offset >= this.Offset && offset <= this.Offset + this.RemovalLength) {
if (movementType == AnchorMovementType.BeforeInsertion)
return this.Offset;
else
return this.Offset + this.InsertionLength;
} else if (offset > this.Offset) {
return offset + this.InsertionLength - this.RemovalLength;
} else {
return offset;
}
}
示例3: MoveOffsetTo
public int MoveOffsetTo(ITextBufferVersion other, int oldOffset, AnchorMovementType movement)
{
SnapshotVersion otherVersion = other as SnapshotVersion;
if (otherVersion == null)
throw new ArgumentException("Does not belong to same document");
switch (movement) {
case AnchorMovementType.AfterInsertion:
return checkpoint.MoveOffsetTo(otherVersion.checkpoint, oldOffset, ICSharpCode.AvalonEdit.Document.AnchorMovementType.AfterInsertion);
case AnchorMovementType.BeforeInsertion:
return checkpoint.MoveOffsetTo(otherVersion.checkpoint, oldOffset, ICSharpCode.AvalonEdit.Document.AnchorMovementType.BeforeInsertion);
default:
throw new NotSupportedException();
}
}
示例4: MoveOffsetTo
public int MoveOffsetTo(ITextSourceVersion other, int oldOffset, AnchorMovementType movement)
{
int offset = oldOffset;
foreach (var e in GetChangesTo(other)) {
offset = e.GetNewOffset(offset, movement);
}
return offset;
}
示例5: Replace
public void Replace(int offset, int length, string newText, AnchorMovementType defaultAnchorMovementType)
{
document.Replace(offset, length, newText);
}
示例6: Insert
public void Insert(int offset, string text, AnchorMovementType defaultAnchorMovementType)
{
if (defaultAnchorMovementType == AnchorMovementType.BeforeInsertion) {
document.Replace(offset, 0, text, OffsetChangeMappingType.KeepAnchorBeforeInsertion);
} else {
document.Insert(offset, text);
}
}
示例7: GetNewOffset
/// <summary>
/// Gets the new offset where the specified offset moves after this document change.
/// </summary>
public virtual int GetNewOffset(int offset, AnchorMovementType movementType = AnchorMovementType.Default)
{
if (offset >= Offset && offset <= Offset + RemovalLength)
{
if (movementType == AnchorMovementType.BeforeInsertion)
return Offset;
return Offset + InsertionLength;
}
if (offset > Offset)
{
return offset + InsertionLength - RemovalLength;
}
return offset;
}
示例8: Insert
/// <inheritdoc/>
public void Insert(int offset, string text, AnchorMovementType defaultAnchorMovementType)
{
if (offset < 0 || offset > this.TextLength)
throw new ArgumentOutOfRangeException("offset");
if (text == null)
throw new ArgumentNullException("text");
if (defaultAnchorMovementType == AnchorMovementType.BeforeInsertion)
PerformChange(new InsertionWithMovementBefore(offset, text));
else
Replace(offset, 0, text);
}
示例9: NotSupportedException
void IDocument.Insert(int offset, ITextSource text, AnchorMovementType defaultAnchorMovementType)
{
throw new NotSupportedException();
}
示例10: Insert
/// <summary>
/// Inserts text.
/// </summary>
/// <param name="offset">The offset at which the text is inserted.</param>
/// <param name="text">The new text.</param>
/// <param name="defaultAnchorMovementType">
/// Anchors positioned exactly at the insertion offset will move according to the anchor's movement type.
/// For AnchorMovementType.Default, they will move according to the movement type specified by this parameter.
/// The caret will also move according to the <paramref name="defaultAnchorMovementType"/> parameter.
/// </param>
public void Insert(int offset, ITextSource text, AnchorMovementType defaultAnchorMovementType)
{
if (defaultAnchorMovementType == AnchorMovementType.BeforeInsertion) {
Replace(offset, 0, text, OffsetChangeMappingType.KeepAnchorBeforeInsertion);
} else {
Replace(offset, 0, text, null);
}
}
示例11: GetNewOffset
public int GetNewOffset(int offset, AnchorMovementType movementType)
{
//TODO: DocumentChangeEventArgs.GetNewOffset()
throw new NotImplementedException();
}
示例12: MoveOffsetTo
public int MoveOffsetTo(ITextSourceVersion other, int oldOffset, AnchorMovementType movement)
{
if (this != other)
throw new ArgumentException("other belongs to different document");
return oldOffset;
}
示例13: DocumentChangeEventArgs
public DocumentChangeEventArgs (int offset, string removedText, string insertedText, AnchorMovementType anchorMovementType = AnchorMovementType.Default) : base (offset, removedText, insertedText)
{
AnchorMovementType = anchorMovementType;
}
示例14:
void ICSharpCode.NRefactory.Editor.IDocument.Insert (int offset, string text, AnchorMovementType anchorMovementType)
{
Insert (offset, text, anchorMovementType);
}
示例15: MoveOffsetTo
/// <summary>
/// Calculates where the offset has moved in the other buffer version.
/// </summary>
/// <remarks>This method is thread-safe.</remarks>
/// <exception cref="ArgumentException">Raised if 'other' belongs to a different document than this checkpoint.</exception>
public int MoveOffsetTo(ChangeTrackingCheckpoint other, int oldOffset, AnchorMovementType movement)
{
int offset = oldOffset;
foreach (DocumentChangeEventArgs e in GetChangesTo(other)) {
offset = e.GetNewOffset(offset, movement);
}
return offset;
}