本文整理汇总了C#中TextContentChangedEventArgs.ConvertToRelative方法的典型用法代码示例。如果您正苦于以下问题:C# TextContentChangedEventArgs.ConvertToRelative方法的具体用法?C# TextContentChangedEventArgs.ConvertToRelative怎么用?C# TextContentChangedEventArgs.ConvertToRelative使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TextContentChangedEventArgs
的用法示例。
在下文中一共展示了TextContentChangedEventArgs.ConvertToRelative方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: OnTextBufferChanged
protected override void OnTextBufferChanged(object sender, TextContentChangedEventArgs e) {
var changes = e.ConvertToRelative();
foreach (var c in changes) {
var destructive = _separators.IsDestructiveChange(c.OldStart, c.OldLength, c.NewLength, c.OldText, c.NewText);
if (destructive) {
// Allow existing command call to complete so we don't yank projections
// from underneath code that expects text buffer to exist, such as formatter.
IdleTimeAction.Cancel(GetType());
IdleTimeAction.Create(UpdateProjections, 0, GetType(), _coreShell);
break;
} else {
Blocks.ReflectTextChange(c.OldStart, c.OldLength, c.NewLength);
_separators.ReflectTextChange(c.OldStart, c.OldLength, c.NewLength);
}
}
}
示例2: OnTextBufferChanged
private void OnTextBufferChanged(object sender, TextContentChangedEventArgs e) {
if (e.Changes.Count > 0) {
// In case of tabbing multiple lines update comes as multiple changes
// each is an insertion of whitespace in the beginning of the line.
// We don't want to combine them since then change will technically
// damage existing elements while actually it is just a whitespace change.
// All changes are relative to the current snapshot hence we have to transform
// them first and make them relative to each other so we can apply changes
// sequentially as after every change element positions will shift and hence
// next change must be relative to the new position and not to the current
// text buffer snapshot. Changes are sorted by position.
TreeUpdateTask.OnTextChanges(e.ConvertToRelative());
}
}