SUMTEC -- There's a thing in my bloglet.

But it's not only one. It's many. It's the same as other things but it exactly likes nothing else...

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  263 随笔 :: 19 文章 :: 3009 评论 :: 74万 阅读
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

这个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,早改完早发布。

posted on   Sumtec  阅读(717)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
点击右上角即可分享
微信分享提示