随笔-341  评论-2670  文章-0  trackbacks-0
    今天我终于实现了伟大的智能提示了,真是浑身上下都在发光啊。这次智能提示的代码可以在Vczh Library+ 3.0的页面上看到。我使用了上一篇文章所提到的技术,在用户输入文字的时候,通过迅速获得“当前编辑语句”的语法树,再加上旧的“当前编辑语句”的作用域对象,来判断用户究竟处于整份代码的什么地方,最后给出正确的提示。

    下面开始贴图了哈。

                                      


    整整两天不容易啊,期间修掉了很多bug,因为这次整个parser都在面对一些残缺不全的代码。下一篇文章我会重点描述关于IDE里面处理两颗有些时候不够同步得树的算法。 

    在这里遇到的问题一般都是如何确定一个语法树节点覆盖的源代码的位置。当然这个主要是语法分析器干的事情,不过实在是太复杂了,主要是我不想写语法分析器,转而写了一个生成器,因此就不得不开发一个通用的算法出来。第二步就是,通过光标的位置来判断用户接下来需要输入的东西是什么,这一步也比较囧,因为涉及到很多情况。用户输入的代码可能是残缺不全的,因此语法树的任何一个属性(包括语法书自己)都有可能是null,稍微一不小心就会犯错误了……
   
posted on 2010-11-07 03:11 陈梓瀚(vczh) 阅读(24549) 评论(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
好强大好强大!!!  回复  更多评论
  

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理