本文整理汇总了C#中TextEditor.SetSelection方法的典型用法代码示例。如果您正苦于以下问题:C# TextEditor.SetSelection方法的具体用法?C# TextEditor.SetSelection怎么用?C# TextEditor.SetSelection使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TextEditor
的用法示例。
在下文中一共展示了TextEditor.SetSelection方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: SortSelectedLines
public static void SortSelectedLines (TextEditor textEditor)
{
var selectionRegion = textEditor.SelectionRegion;
var start = selectionRegion.Begin;
var end = selectionRegion.End;
var caret = textEditor.CaretLocation;
int startLine = start.Line;
int endLine = end.Line;
if (startLine == endLine)
return;
int length = 0;
var lines = new string[endLine - startLine + 1];
for (int i = startLine; i <= endLine; i++) {
//get lines *with* line endings
var lineText = textEditor.GetLineText (i, true);
lines [i - startLine] = lineText;
length += lineText.Length;
}
var linesUnsorted = new string[lines.Length];
Array.Sort (lines, StringComparer.Ordinal);
bool changed = false;
for (int i = 0; i <= lines.Length; i++) {
//can't simply use reference comparison as Array.Sort is not stable
if (string.Equals (lines [i], linesUnsorted [i], StringComparison.Ordinal)) {
continue;
}
changed = true;
break;
}
if (!changed)
return;
var sb = new StringBuilder ();
for (int i = 0; i < lines.Length; i++) {
sb.Append (lines [i]);
}
var startOffset = textEditor.LocationToOffset (startLine, 1);
textEditor.ReplaceText (startOffset, length, sb.ToString ());
textEditor.CaretLocation = LimitColumn (textEditor, caret);
textEditor.SetSelection (LimitColumn (textEditor, start), LimitColumn (textEditor, end));
}
示例2: RunSelectionAction
static void RunSelectionAction (TextEditor textEditor, Action<TextEditor> action)
{
using (var undo = textEditor.OpenUndoGroup ()) {
var anchor = textEditor.IsSomethingSelected ? textEditor.SelectionAnchorOffset : textEditor.CaretOffset;
action (textEditor);
textEditor.SetSelection (anchor, textEditor.CaretOffset);
}
}