【问题标题】:AvalonEdit reordering of document linesAvalonEdit 重新排序文档行
【发布时间】:2014-08-26 16:57:10
【问题描述】:

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

提前致谢!

【问题讨论】:

    标签: avalonedit


    【解决方案1】:

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

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

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-07
      • 1970-01-01
      • 1970-01-01
      • 2019-03-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多