摘要: 非常感谢HuaHope含金量如此高的评论。抛砖引玉,结果钓了块钻石。
Megax点评:
Scintilla: 目前Scintilla有一统江湖的趋势。只要是新开发的软件工具能够用到高级编辑器的地方基本上就会用它了。的确Scintilla为一些开发提供了便利,但是,是不是也阻碍了编辑器发展的进程啊?没人愿意开发了,还会有进步嘛?所以说,有时候开源并不一定是好事,你开源开的不好就罢了,开的好了,就会挤掉很多优秀的共享软件,以至于没人来做这项了。
另外Scintilla的出现导致同质化非常严重,个个都长的差不多,操作也差不多,体现不出特点,这个HuaHope的杂谈中有描述。如果一个编辑器要定位于一个专业文本编辑软件,比如现在的Editplus, UlrtaEdit那样,我觉得还是不要采用Scintilla的较好,当然如果像Code:Blocks定位于IDE,采用Scintilla就是更快更好的选择了。坦白的说,开发高性能多用途编辑器难度是很高的。
阅读全文
posted @
2010-02-05 12:57 megax 阅读(5296) |
评论 (10) |
编辑 收藏
摘要: 很多人可能没有听过tab trigger这个功能,那么诸位可以在google一把即可知道其为何物。
本来我是打算把这样的功能放倒插件里面做的,可是一想到最后能为我的编辑器开发插件的,
在初期估计也没啥人,于是乎还是在内核上给予支持吧。
本篇文章即是分析如何去实现该功能的,事实上,我已经在MegaxEdit基本上实现了。不过相较于
TextMate功能有所缩水。缩水的原因主要是因为我采用了正则表达式去替换实现的,而绝大多数
正则表达式库是不支持嵌套的(本人使用了日本的鬼车正则库),所以在我的编辑器里面变量里面
不可以在定义变量。
在我的编辑器里面,这个东西不叫TextMate的Bundle,我给起了个名字叫HotText, hoho~~~
首先我们看一下下面的语句:
阅读全文
posted @
2010-02-02 20:39 megax 阅读(3037) |
评论 (12) |
编辑 收藏
还是避免不了解散,哎。
posted @
2010-01-17 17:41 megax 阅读(167) |
评论 (0) |
编辑 收藏
什么也不想说了,哎。
posted @
2010-01-13 10:27 megax 阅读(172) |
评论 (1) |
编辑 收藏
摘要: 最近闲的蛋疼,遂把编辑器里面的词法分析整整,发现这真是个累活啊,完全是重复性的劳动,
而且一不小心就出错,一旦添加状态的话,也得好好修改。遂萌生自动化之的想法。
花了小半天重拾LEX的语法,用法,状态标记等等,写了个小sample,确实不错,扩展性也强,
几分钟就可以构造出一个新的词法分析出来,而且效率虽说比手写的慢,不过一般的应用足以
对付了,欢喜之。
正当我打算做个wrapper的时候,这才发现LEX竟然不支持获取当前匹配的匹配位置,
欧,卖疙瘩,不会吧。于是乎在yyinput里面设置个变量标记一下,也不行,因为LEX会预读。
额的神啊,不会吧。
阅读全文
posted @
2010-01-11 12:22 megax 阅读(1763) |
评论 (14) |
编辑 收藏
摘要: 代码折叠这个功能,我最早是在Dreamweaver里面看到的,具体哪个版本记不清了,好多年了。
当时DM的实现是当你选择文本的时候,在编辑器的左侧,有一个折叠的提示,提示你可以把选中的
文本折叠起来。那个时候觉得这个功能,毫无用处。不过自从VisualStudio2003以来,代码折叠
这个功能几乎成为了程序员的必备。
的确,在浏览代码的时候,代码折叠可以带来一些好处,让重点凸显在用户的面前,或者可以拉近两块
相隔很远的代码,实现比较。当然,这个也完全可以通过分割视图完成。
在众多的编辑器当中,我认为单纯就代码折叠而言,目前实现的最好的还是VisualStudio,它
可以根据语言上下文的关系,即语法,进行代码折叠,这是其它编辑器无法企及的。当然,它本身也是
一个重量级的IDE,超出了简单编辑器的范畴。
本文试图描述代码折叠最基本的思路,没有具体的代码。其实这个功能并不难实现,相反很简单。
阅读全文
posted @
2009-03-07 16:07 megax 阅读(3911) |
评论 (13) |
编辑 收藏
摘要: 【因工作原因,好久不更新了,向各位关心的朋友说声道歉】
去年的某一天,对MegaxEdit进行了整理,因最后MFC静态编译出来的东西较大,遂萌生往WTL转移的想法。
前前后后花了很长事件移植完毕,与其说是移植,倒不如说是重写。
现在编译出来只有300K左右,压缩一下,100多K,挺小巧。
最近反复在想,我为什么做这个东西?最后的答案是:兴趣。
阅读全文
posted @
2009-02-25 19:39 megax 阅读(2526) |
评论 (23) |
编辑 收藏
摘要: 今天在csdn上看了一篇文章,叫做《到底是该做windows还是linux程序员?》。很显然这是一个欲从事IT行业的新人所发的帖子。csdn也经营了这么多年了,按理说高人该不少。但是看看回复,确实让人觉得很可笑。
阅读全文
posted @
2008-08-08 13:59 megax 阅读(6872) |
评论 (42) |
编辑 收藏
这阵子把代码内核重新构造一遍,不过外围的代码还是耦合度比较高。有机会好好考虑考虑。
添加了一个CmdBar,打算集成一些常用的命令,比如cmd啊,grep啊,sort工具之类的,像vi那样,敲击代码调用一些命令
查找方面,反向查找还没有做,看来我得自己写了,比较熟悉kmp算法,就打算用这个了。不过比较奇怪的是c函数库带的strstr效率竟然比
kmp和BM算法的都快。
发个截图作个纪念。
posted @
2008-08-01 17:28 megax 阅读(1341) |
评论 (21) |
编辑 收藏
摘要: 编辑器制作之语法加亮基本原理在上一篇文章里,我简单的提及了语法加亮的基本思路,下面在总结概括一下。
笔者认为,对于编辑器而言,如果支持非常严格的语法加亮的话,那么扩展性是很低的。那么在扩展性和正确性之间,我们应该取得一个平衡。这个平衡就是既要保证编辑器的高效率运转,又要保持文本配置文件的可编辑性。
首先,几乎所有的编程语言都具有某种共性,这些共性概括如下:
1.关键字
2.注释
3.字符串
4.Delimiters
5.普通字符
详细....
阅读全文
posted @
2008-07-09 20:23 megax 阅读(2129) |
评论 (4) |
编辑 收藏