HTML 语法加亮编辑器
终于为下一版的 WB Editor 搞定了HTML 语法加亮编辑器。
老的编辑器的原理同这篇文章。它实现了实时染色的功能 (highlight on the fly),但是一篇文章新载入时,全文染色效率极差 (feel it’s being choked)。
想了很多办法试图分页,但不成功。于是开始分析 SharpDevelop 的编辑器和 JSource 的编辑器的代码。发现如果自己从头做工程量巨大。接着向 SharpDevelop 开发者询价,得到个目前无法支付的价格。
回头再想,全文染色慢的主要原因就是用 SelectionStart 和 SelectionLength 两个属性来操作。甚至根据 Syntax colorizing with Speller engine using TOM and CSAPI 一文,用了 TOM 接口也没有改观。
再研究,能不能直接生成 rtf,终于发现 Delphi 的文章 Automatic Syntax Highlighting Using a RichEdit Control 介绍了 rtf 的格式以及 Syntax Highlighting With RichEdit 一文给出了生成 HTML 语法加亮 rtf 的办法。
用我现成的 HTML Tokenizer 接上去一试效果很好,200 多K 的HTML 加亮没有延迟的感觉。准备升级 WB Editor 2 了。
Add comment March 24th, 2005