LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 3101|回复: 27

扩展输入法的用途,打造代码补全器

[复制链接]
发表于 2005-11-9 19:20:19 | 显示全部楼层 |阅读模式
扩展输入法的用途,打造代码补全器

场景:
当你辛辛苦苦地输完一大段代码以后,兴致冲冲地编译时,
编译器提示了莫名其妙的错误。你费了九牛二虎之力都找不到错在哪里,
在你最绝望的时候,你突然发现原来你将
Gtk::ScrolledWindow
写成了
Gtk::Scrolledwindow
(看不出差别的人,请关闭此窗口,谢谢-_-!)
Oh~my God!

梦想:
这时,你想真是倒霉阿!
如果能有个代码补全功能该有多好阿!

现实:
但是在linux下有很多的编程工具,并不是所有的工具都有补全功能,
再者,即使你所用的开发环境有代码补全功能,但是它能补全Gtk+
、Qt、C++ STL、GtkGLExt、libxml++等库的类和成员吗?

即使你可以为某一个编辑环境定制补全的功能,并加入你所需要的
库文件的相关定义,但是当你转用其它编辑环境的时候,你的努力就
化为乌有了。

所以:
我想应该要有一个与IDE、编辑器无关(最近与平台无关的程序很流
行的说,:)的代码补全工具。

构想:
就在我思考这个问题的时候,我打开了输入法,当我输入“nanj”的
时候,输入法给了我几个可选项:“南京,男爵,难解,南极”!
这不就是补全了吗!?

我想,既然我们输入代码的区域都是可编辑的区域,既然是可编辑的
区域,那么就可以调用输入法,既然可以用输入法,假设我们的输入
法补全的不是汉字而是代码呢?

输入法我们并不陌生,而且linuxsir上也有输入法开发的高手,我想
只要对小企鹅输入法添加相应库的定义,然后稍微有针对性地调整一
下,那就大事可成了!

展望:
也许是我才疏学浅,但是在linux里游历了几年都没有发现这样的工具,
我想老外输入英文压根不用输入法,所以没有想到这一点。如果我们
能将这个功能实现,然后再结合语法高亮功能,那么Linux世界的编程
将会变得更加人性化,不再那么晦涩,程序开发的效率将会得到大大
地提高。中国的开源社区将会又一次受到世界的瞩目
发表于 2005-11-9 19:30:41 | 显示全部楼层
我觉得这个想法很不错。可是对怎么写输入法一窍不通。高手给我开一下窍,我愿意奉献一点微薄之力。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-11-9 20:05:11 | 显示全部楼层
输入法程序的实现,linuxsir上就有FCITX的开发者,这估。现在的问题 是设计一种容易理解和扩展,用于定义各种库和语言的文档规范,这个基于XML估计不难。还有就是对各个常用库和语言的关键字,类,成员,方法等资料的收集,这个过程,需要大伙的帮忙。
回复 支持 反对

使用道具 举报

发表于 2005-11-9 21:40:25 | 显示全部楼层
把 CTags 变成词库?
回复 支持 反对

使用道具 举报

发表于 2005-11-10 01:20:35 | 显示全部楼层
嗯,实现并不难,难在制订一个对照表上~
请楼主给出更细节一些的设想如何?
回复 支持 反对

使用道具 举报

发表于 2005-11-10 04:38:17 | 显示全部楼层
要是能上下文相关就更牛了。
回复 支持 反对

使用道具 举报

发表于 2005-11-10 06:08:36 | 显示全部楼层
但是,如果把这个功能加到fcitx里,那就会使得fcitx更加沉重了……(读:我不会用这个功能的)
回复 支持 反对

使用道具 举报

发表于 2005-11-10 07:08:36 | 显示全部楼层
给 scim-tables 做个码表就好了

或者开发一个 IMEngine
回复 支持 反对

使用道具 举报

发表于 2005-11-10 14:57:48 | 显示全部楼层
为现有的输入法做个外挂固然可以实现这个想法,但是我想如果能开发一个新的
项目有针对性地解决这个问题是最好的了。
回复 支持 反对

使用道具 举报

发表于 2005-11-10 17:27:33 | 显示全部楼层
Post by xjl2005
为现有的输入法做个外挂固然可以实现这个想法,但是我想如果能开发一个新的
项目有针对性地解决这个问题是最好的了。


利用 SCIM 现有的框架,作这个应当很简单。SCIM 的输入法引擎可以获得客户窗口中的上下文,这样就可以做基于上下文的补全了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表