gaclib.net
C++博客
首页
新随笔
联系
聚合
管理
随笔-341 评论-2670 文章-0 trackbacks-0
开发自己的IDE(十),我终于搞定了智能提示了哇哈哈
今天我终于实现了伟大的智能提示了,真是浑身上下都在发光啊。这次智能提示的代码可以在
Vczh Library+ 3.0
的页面上看到。我使用了
上一篇文章
所提到的技术,在用户输入文字的时候,通过迅速获得“当前编辑语句”的语法树,再加上旧的“当前编辑语句”的作用域对象,来判断用户究竟处于整份代码的什么地方,最后给出正确的提示。
下面开始贴图了哈。
整整两天不容易啊,期间修掉了很多bug,因为这次整个parser都在面对一些残缺不全的代码。下一篇文章我会重点描述关于IDE里面处理两颗有些时候不够同步得树的算法。
在这里遇到的问题一般都是如何确定一个语法树节点覆盖的源代码的位置。当然这个主要是语法分析器干的事情,不过实在是太复杂了,主要是我不想写语法分析器,转而写了一个生成器,因此就不得不开发一个通用的算法出来。第二步就是,通过光标的位置来判断用户接下来需要输入的东西是什么,这一步也比较囧,因为涉及到很多情况。用户输入的代码可能是残缺不全的,因此语法树的任何一个属性(包括语法书自己)都有可能是null,稍微一不小心就会犯错误了……
posted on 2010-11-07 03:11
陈梓瀚(vczh)
阅读(24510)
评论(23)
编辑
收藏
引用
所属分类:
开发自己的IDE
评论:
#
re: 开发自己的IDE(十),我终于搞定了智能提示了哇哈哈 2010-11-07 03:56 |
溪流
哇~赞~!代码变成了图片,终于看得懂了= =
回复
更多评论
#
re: 开发自己的IDE(十),我终于搞定了智能提示了哇哈哈 2010-11-07 05:22 |
DiryBoy
Orz!!
回复
更多评论
#
re: 开发自己的IDE(十),我终于搞定了智能提示了哇哈哈 2010-11-07 06:01 |
lwch
厉害啊...
回复
更多评论
#
re: 开发自己的IDE(十),我终于搞定了智能提示了哇哈哈 2010-11-07 18:29 |
陈昱(CY)
膜拜
回复
更多评论
#
re: 开发自己的IDE(十),我终于搞定了智能提示了哇哈哈 2010-11-07 22:02 |
叫我老王吧
顶一个
回复
更多评论
#
re: 开发自己的IDE(十),我终于搞定了智能提示了哇哈哈 2010-11-08 04:47 |
Pear
再次来膜拜
回复
更多评论
#
re: 开发自己的IDE(十),我终于搞定了智能提示了哇哈哈 2010-11-08 16:49 |
主打歌
为什么不向visual assist取取经呢?
回复
更多评论
#
re: 开发自己的IDE(十),我终于搞定了智能提示了哇哈哈 2010-11-08 17:52 |
潘孙友
太牛X了。。。
回复
更多评论
#
re: 开发自己的IDE(十),我终于搞定了智能提示了哇哈哈 2010-11-08 18:08 |
溪流
@主打歌
我看着挺有VA的味道呀。。。不过智能提示也都差不多这样子了。。。
只是觉着“为什么不”是个读起来让人感觉不太友好的提问方式~
回复
更多评论
#
re: 开发自己的IDE(十),我终于搞定了智能提示了哇哈哈 2010-11-08 21:06 |
dazhuang
真让人羡慕,能讲解一下开发思路吗
回复
更多评论
#
re: 开发自己的IDE(十),我终于搞定了智能提示了哇哈哈 2010-11-08 23:02 |
空明流转
@dazhuang
简而言之,人肉。
回复
更多评论
#
re: 开发自己的IDE(十),我终于搞定了智能提示了哇哈哈 2010-11-09 11:01 |
ooseven
好像没有看到函数调用参数提示
回复
更多评论
#
re: 开发自己的IDE(十),我终于搞定了智能提示了哇哈哈 2010-11-09 11:02 |
ooseven
好像没有看到函数参数提示
回复
更多评论
#
re: 开发自己的IDE(十),我终于搞定了智能提示了哇哈哈 2010-11-09 16:42 |
ooseven
而且上面的提示信息好像都是c++系统本身的信息,复杂的动态信息提示没看到。比如多继承类与模板类下的类函数提示。这个比较关键,连微软与va都做不好。建议你做好后,移植几个boost的库到你的语言下,然后再试试,估计你会绝望!
回复
更多评论
#
re: 开发自己的IDE(十),我终于搞定了智能提示了哇哈哈 2010-11-09 16:43 |
ooseven
而且上面的提示信息好像都是语言系统本身的信息,复杂的动态信息提示没看到。比如多继承类与模板类下的类函数提示。这个比较关键,连微软与va都做不好。建议你做好后,移植几个boost的库到你的语言下,然后再试试,估计你会绝望!
回复
更多评论
#
re: 开发自己的IDE(十),我终于搞定了智能提示了哇哈哈 2010-11-09 16:44 |
ooseven
特别是模板类下的只能提示,不止绝望,连自杀的心情都有!
回复
更多评论
#
re: 开发自己的IDE(十),我终于搞定了智能提示了哇哈哈 2010-11-09 18:10 |
陈梓瀚(vczh)
@ooseven
我这是我自己设计的语言啊,不是C++,没有类的,只有模板和concept,看清楚哈。
回复
更多评论
#
re: 开发自己的IDE(十),我终于搞定了智能提示了哇哈哈 2010-11-09 23:38 |
CR苏杭
楼主你真的是浑身上下都在发光
回复
更多评论
#
re: 开发自己的IDE(十),我终于搞定了智能提示了哇哈哈 2010-11-10 01:18 |
ooseven
@陈梓瀚(vczh)
我知道是你设计的语言,不过我印象中你的语言好像是支持类的,是我记错了,不过类,多态的支持应该加上吧?这个含关键啊,加上了这个就可以很方便的设计类库了。
回复
更多评论
#
re: 开发自己的IDE(十),我终于搞定了智能提示了哇哈哈 2010-11-10 03:52 |
陈梓瀚(vczh)
@ooseven
这是在计划中的,只是跟你的想象有点出入而已。
回复
更多评论
#
re: 开发自己的IDE(十),我终于搞定了智能提示了哇哈哈 2010-11-10 04:09 |
陈梓瀚(vczh)
@ooseven
你可能把我以前做过的语言跟这个混了吧……
回复
更多评论
#
re: 开发自己的IDE(十),我终于搞定了智能提示了哇哈哈 2010-11-10 20:04 |
gaimor
不错 年轻有为
回复
更多评论
#
re: 开发自己的IDE(十),我终于搞定了智能提示了哇哈哈
2010-11-11 01:08 |
mm
好强大好强大!!!
回复
更多评论
刷新评论列表
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
相关文章:
写程序真他妈爽啊
开发自己的IDE(十二)
开发自己的IDE(十一),智能提示关键步骤揭秘
开发自己的IDE(十),我终于搞定了智能提示了哇哈哈
开发自己的IDE(九)
开发自己的IDE(八)
开发自己的IDE(七)
开发自己的IDE(六)
开发自己的IDE(五)
开发自己的IDE(四)
网站导航:
博客园
IT新闻
BlogJava
知识库
博问
管理
留言簿
(70)
给我留言
查看公开留言
查看私人留言
随笔分类
(347)
.NET(3)
2D(14)
3D(12)
C++(54)
C++实用技巧(7)
GacUI(37)
JIT(28)
Vczh Free Script(7)
Vczh Lazy Script(4)
VL++3.0开发纪事(51)
跟vczh看实例学编译原理(4)
脚本技术(47)
开发自己的IDE(13)
其他(23)
启示(30)
作品(13)
好友博客
Graphixer
何咏师弟的图形学网站
jetricy
Jetricy的技术博客
KlayGE游戏引擎
叛叛大神
Lomox UI框架
Lomox UI框架
MiGL
Tyeah的博客
vczh的百度空间
vczh的百度空间
YMK的后花园
YMK的技术博客
德利菲
德利菲的技术博客
怪盗KID的游戏开发博客
怪盗KID的游戏开发博客
华工微软俱乐部
华南理工大学微软俱乐部科技部博客
开发视界
开发视界 - 移动开发社区
老赵点滴
赵姐夫的.net博客
临渊羡鱼,不如退而山寨
另一个SOS团的C++程序员……
某白食(Lyt)
某白食的C++博客
岁月流转,往昔空明
空明流转的blog
微软一站式实例代码库
500个经典示例,速学速用,效率倍增。
我在博客园的blog
我在博客园的blog
一个不靠谱的程序员
JeffChen的技术博客
搜索
最新评论
1. re: 正则表达式——一点小插曲
明天开工。
来踩一下轮子哥的脚印。
--Bread
2. re: 自从昨天我发现VS2012可以编译出支持XP的代码之后,我决定在GacUI里面全面使用C++11新功能
请教一下GACUI可以支持VC2008吗?
--许满哥
3. re: 要学车暂停更新几个星期
@昏人
66666666
--lgjsd
4. re: 伴随我成长的编程书
感觉我要走的道路好长好长
--lzj
5. re: 伴随我成长的编程书
我最喜欢的cppblog上又看到好文章了
--胡然
阅读排行榜
1. 伴随我成长的编程书(164275)
2. 《构造正则表达式引擎》新鲜出炉啦!(109490)
3. 跟vczh看实例学编译原理——零:序言(51136)
4. 如何手写语法分析器(40066)
5. C++实用技巧(一)(38026)
评论排行榜
1. 关于C++之“复杂”(68)
2. (转)架构师已死(转自UML软件工程组织) (57)
3. 2005-2009年个人总结(40)
4. 如何设计一门语言(一)——什么是坑(a)(37)
5. 《构造正则表达式引擎》新鲜出炉啦!(36)