【问题标题】:Implementing Code Highlighting实现代码高亮
【发布时间】:2011-04-15 13:01:37
【问题描述】:

我有一种面向堆栈的编程语言,我需要为其编写一个非常简单的编辑器,并带有代码突出显示。最好使用RichTextBox

我见过很多代码高亮示例和演示,几乎所有这些都需要刷新整个RichTextBox OnTextChanged。这适用于较小的代码文件,即使是稍大的代码文件,如果滚动条正确重新定位,但文件越大,尝试编辑时的延迟就越大。

得到是一个更好的方法。显然,Visual Studio 完美地做到了……

那么,我应该使用什么方法呢?

(伪代码甚至只是一般概念布局都可以作为答案)

【问题讨论】:

  • 显然他们已经编写了自己的控件,可以处理所有事情,而不是使用 RichTextBox。
  • 哦,这可能是一个好方法......虽然这对他们来说可能更容易,因为他们有TextBoxRichTextBox的来源:P
  • 呵呵是的,可能他们有;-)

标签: c# .net-4.0 codehighlighter


【解决方案1】:

我强烈建议您使用开源的ICSharpCode.TextEditor。这是一个非常丰富的文本编辑器,支持可定制的语法高亮甚至智能感知。除了行号、错误高亮、错误提示、代码块折叠等其他功能。

使用它的应用示例如下:

【讨论】:

    【解决方案2】:

    Scintilla 用于不同编辑器的a lot。 Notepad++ 就是其中之一。

    这是一个 .Net 包装器:http://scintillanet.codeplex.com/

    【讨论】:

      【解决方案3】:

      不确定你是否真的想自己写,我用AvalonEditSharpDevelop 的编辑器写了类似的东西,效果很好。虽然它是 WPF,但您没有说您使用的是什么 UI 技术。您甚至可以在具有许可证的商业软件中使用它。

      GJ

      【讨论】: