以前使用VisualStudio和Sublime写代码的时候有很完善的代码提示,但是最近开始使用Eclipse弄JAVA的时候发现它的代码提示不是很习惯。上网找了一些资料,修改了代码提示的方式,记录在博客上供大家查阅。
本文主要参考了以下文章
http://www.cnblogs.com/a-zx/p/3388041.html
本文基于
Eclipse Java EE IDE for Web Developers.
Version: Luna Service Release 2 (4.4.2)
Build id: 20150219-0600
进行解释。
设置代码提示
打开 Eclipse 依次选择 Window -> Perferences -> Java -> Editor -> Content Assist,Auto activation triggers for Java:设置框中默认是"."
现在将它改为:
.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_
有老版本的Eclipse不支持定义这么多触发器,可以通过修改配置文件实现,网上资料很多。
然后你就会发现Eclipse可以使用更智能的代码提示了。但是现在有一个比较大的问题是,Eclipse智能过头了,它总想帮我们完成一些我们不想要的代码补完。比如按“=”和空格以后就会自动补完代码,这对很多人真的不能忍。
幸好Eclipse是开源软件,解决办法是直接修改代码提示功能的源代码,以完成我们需要的功能。
首先打开window->show view,选择Plug-ins,再找到org.eclipse.jface.text,右键单击,选择import as-> Source Project,导入完成后,在你的workspace就可以看到这个project了。如果没有src这个文件夹,说明你使用的版本中没有带源代码,我正好也是这种情况。
源代码可以去这个地址下载(找了我好久好久)
http://archive.eclipse.org/eclipse/downloads/
在页面上选择你Eclipse版本的连接(我使用的是4.4.2),然后在新页面中下载eclipse-SDK-(*************).zip,根据自己的需要选择合适的版本下载,大概200M左右。下载完成以后解压缩,在.\eclipse\plugins\文件夹下找到 org.eclipse.jface.text.source_3.9.2.v20141003-1326.jar (这是对应我使用的Eclipse版本的文件,实际请根据你自己的版本进行选择),将这个文件复制到你自己的Eclipse安装目录下的.\eclipse\plugins\文件夹下,然后重新启动Eclipse。重复上面的操作导入(import)org.eclipse.jface.text,此时就能够看到src文件夹了。
在src文件夹下org.eclipse.jface.text.contentassist.CompletionProposalPopup#verifyKey()”函数中有一段代码:
if(contains(triggers, key)){
...
}
将这段代码改为
if(key!=0x20&& key!=‘=‘&& key!=‘;‘&& contains(triggers, key)){
...
}
还有把这段代码之上的代码
case‘\t‘:
e.doit=false;
fProposalShell.setFocus();
returnfalse;
修改为
case‘\t‘:
e.doit=false;
insertSelectedProposalWithMask(e.stateMask);
break;
如图:
修改为
经过上述操作,这个辅助输入插件已经排除了空格与“=”的选中功能,增加了TAB键的选中功能。最后就是导出修改后的插件,右键点击你的workspace里的工程,选择Export->Deployable plugins and fragments,点击Next,选择Destination选项卡,选择Directory,选择一个要保存插件的目录,然后Finish。然后就会在你所选的目录下产生一个新的plugins目录,里面有一个jar文件,用它替换掉eclipse/plugins里面的org.eclipse.jface.text,记得覆盖前对原文件进行备份。然后重新启动Eclipse。
如果不想自己下载与修改文件,我这里直接提供修改好的jar包,直接进行覆盖就好了。我的版本是org.eclipse.jface.text.source_3.9.2.v20141003-1326.jar
百度云盘 http://pan.baidu.com/s/1kTl8r2J
原文:http://www.cnblogs.com/pelloz/p/4343208.html