AvalonEdit重新排序文档行

时间:2014-08-26 16:57:10

标签: avalonedit

我们目前已开始评估AvalonEdit。我们希望将它用于自定义语言。我们的一个要求是重新排序并按特定标准对文档行进行排序。如何实现这一目标?

提前致谢!

1 个答案:

答案 0 :(得分:1)

AvalonEdit提供ICSharpCode.AvalonEdit.Document.DocumentLine类,但是这个类只提供关于行长度,起始和结束偏移等的元数据。

在我看来,有两种方法可以解决你的问题

  1. 使用TextEditor.LineCount遍历所有行,并使用DocumentLine将行保存到TextEditor.Document.GetLineByNumber(int number)。此外,您可以使用TextEditor.Document.GetText(DocumentLine.Offset, DocumentLine.Length获取该行的文字

  2. 使用TextEditor.Text.Split('\n')将所有行作为字符串数组。

  3. 我建议你使用DocumentLine方法。即使您必须使用GetText方法来获取行的文本,行上的元数据也非常好。

    要获取所有DocumentLine,您可以使用循环

    List<DocumentLine> DocumentLines = new List<DocumentLine>(TextEditor.LineCount - 1);
    for (int i = 1; i < TextEditor.LineCount; i++)
    {
        DocumentLines.Add(TextEditor.Document.GetLineByNumber(i));
    }