黑马程序员技术交流社区

标题: 教你彻底解决Eclipse自动补全变量名的......困扰 [打印本页]

作者: Mr.飞碍特    时间: 2014-4-21 23:57
标题: 教你彻底解决Eclipse自动补全变量名的......困扰
大家使用eclipse或者MyEclipse敲代码的时候,是不是都被这样一个问题困扰着。就是你键入一个变量名的时候,会自动提示补全,就是很SB的在你的变量名后面加上类型的名字!!!就像下图这样子 。。这个时候,你就必须键入Esc才不会自动补全你的变量,如果你键入的是空格或者“=”,那么你就变量名就会被补全。。这么SB的功能你还能忍吗!!!冲哥来教你怎么彻底解决这个问题!!!对了,声明一下,这个问题是在开启增强的自动补全功能后才会有的。也就是设置成了A-Z都提示的时候才会出现这个问题!

增强的补全功能,这个大家应该有设置吧。这么好用的功能。!!这里照顾一下新手,我先讲一下怎么设置增强的补全功能。。
打开 Eclipse
-> Window -> Perferences
找到Java 下的 Editor 下的 Content Assist , 右边出现的选项中,有一个Auto activation triggers for Java:
会看到只有一个"."存在。表示:只有输入"."之后才会有代码提示,把"."的地方修改成".abcdefghijklmnopqrstuvwsyzABCDEFGHIJKLMNOPQRSTUVWSYZ_"
点最下面的"OK"来保存设置。
Ps:如果你的版本比较低,不能直接修改的话,就导出配置文件,然后修改配置文件。最后再导入配置文件就可以了。。

好啦,接下来就是重点啦!!!按照下面的方法,就可以彻底解决eclipse帮你自动补全变量名了 !!
1,先找到相关的插件: window -> show view -> plug-ins
找到插件org.eclipse.jface.text,右键点击,选择import as Source Project,导入完成后,在你的workspace就可以看到这个project了
2.修改代码
在src/org/eclipse/jface/text/contentassist/CompletionProposalPopup.java文件中,找到这样一行代码
char[] triggers = t.getTriggerCharacter();
if(contains(triggers,key))
在那行if判断里面,eclipse会判断key(就是你按下的键)是否在triggers中,如果是,那就触发下面的第一行提示上屏的代码.所以我们要做的就是把空格和=号排除就可以了:
if(key != '=' && key != 0x20 &&contains(triggers,key)){
.........

}
代码修改成这样后,提示的时候按下空格或者等号,提示就会没掉,也不会自动补全了咯!!!
3.把修改好的org.eclipse.jface.text导出
右键点击你的workspace里的org.eclipse.jface.text,选择export-->Deployable plugins and
fragments, next,destination 选择
archive file,然后finish.你就可以在zip文件里看到生成好的jar ,用它替换掉eclipse/plugins里面的同名jar包,就可以了。

注意:MyEclipse无法导入插件的源码工程,可以下载对应版本的Eclipse,重新编译得到插件后再覆盖MyEclipse里的插件即可。
我这里有一个MyEclipse10修改好了的jar包。。如果你的版本跟我一样的话,直接把这个jar包拷到plugins下就可以了。下载后解压,有一个是修改好的jar,一个是没修改的jar,如果哪天你想换回来,把那个没修改过的jar复制回去就行了。

插件连接回复可见啊亲们



1.jpg (35.83 KB, 下载次数: 19)

自动补全

自动补全





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2