我有一种面向堆栈的编程语言,我需要为其编写一个非常简单的编辑器,并带有代码突出显示。最好使用RichTextBox
我看过很多代码高亮示例和演示,几乎所有的代码都需要全部RichTextBox
刷新OnTextChanged
。这适用于较小的代码文件,即使是稍大的代码文件,如果滚动条正确重新定位,但文件越大,尝试编辑时的延迟就越大。
一定有更好的方法。显然,Visual Studio 完美地做到了...
那么,我应该使用什么方法呢?
(伪代码甚至只是一般概念布局都可以作为答案)
我有一种面向堆栈的编程语言,我需要为其编写一个非常简单的编辑器,并带有代码突出显示。最好使用RichTextBox
我看过很多代码高亮示例和演示,几乎所有的代码都需要全部RichTextBox
刷新OnTextChanged
。这适用于较小的代码文件,即使是稍大的代码文件,如果滚动条正确重新定位,但文件越大,尝试编辑时的延迟就越大。
一定有更好的方法。显然,Visual Studio 完美地做到了...
那么,我应该使用什么方法呢?
(伪代码甚至只是一般概念布局都可以作为答案)
我强烈建议您使用开源ICSharpCode.TextEditor。这是一个非常丰富的文本编辑器,支持可自定义的语法高亮甚至智能感知。除了其他功能,如行号、错误突出显示、错误提示、代码块折叠等。
使用它的应用程序示例如下:
Scintilla 用于许多不同的编辑器。记事本++就是其中之一。
这是一个 .Net 包装器:http ://scintillanet.codeplex.com/
不确定你是否真的想自己写,我使用了AvalonEdit ,来自SharpDevelop的编辑器, 用于类似的东西,效果很好。虽然它是 WPF,但您没有说您使用的是什么 UI 技术。您甚至可以在具有许可证的商业软件中使用它。
GJ