这个Post只是预告一下“吊胃口V”可能发布的内容,是一个预告。
首先发扬一下吊胃口的精神,给大家看看目前NfaGen的工作成果:
上面这个图是NfaGen2的雏形,上面的代码着色是程序自动完成的。不过目前着色也没有完全昨晚,比如定义后面部分的字符就没有进行着色。目前NfaGen2的语法分析用的正则表达式基本上已经稳定下来了,一般来说错误已经很少了,但是还有一些已知的错误存在,也有一些不足的地方需要调整。这个正则表达式的长度目前已经达到了惊人的5,009个字符了,估计还要继续增加一点。
那么我准备在“吊胃口V”里面给大家说些什么呢?就讲讲我是怎么进行这个着色工作的。其时不要小看这个着色步骤,如果你用RichTextBox就会发现有各种各样的问题:
1、要对某部分的颜色字体进行改变,就需要设置SelectionStart、SelectionLength,然后修改SelectionColor、SelectionFont。但是在此过程当中,你会发现编辑框会闪烁——你选中的部分会变蓝然后再变回来。
2、如果你打算使用一个RichTextBox作为后台着色的工具,那么你会发现如果文本内容太多,也会出现闪烁——首先闪现最开始部分的内容,然后再显示你正在编辑的部分。
3、你还会发现,如果你输入的速度太快了,就可能出现错误,比如你输入"asdf",结果却显示"asfd",并且光标停留在f和d之间,或者出现其他类型的错误(尤其是你打算用多线程的话)
4、你打算怎么进行代码分析着色呢?把文本框里面的所有内容都重新分析并着色一遍?如果是这样的话,你会发现内容多到一定程度的时候就会非常的迟钝了。假如你采取只分析最近修改的那一两行的办法,那么如果你Paste一段文字进去的话,你打算怎么处理呢?
大家觉得“吊胃口V”说这个内容OK不OK啊?我希望在正式发布“吊胃口V”之前先把大部分的Bug修正了,并且能够完全着色。好,不多说了,继续改Bug,早改完早发布。

浙公网安备 33010602011771号