原地址 http://blog.csdn.net/liuhhaiffeng/article/details/7179243
Eclipse具有代码提示功能,但是默认的提示只有在输入"."时才会提示,我们希望Eclipse可以像VisualStudio那样,输入任何字母都可以自动提示,按照如下方式进行修改即可:
1.“window”→“Preferences” 2.选择“java”,展开,“Editor”,选择“ContentAssist”。 3.选择“ContentAssist”,然后看到右边,右边的“Auto-Activation”下面的“AutoActivationtriggersforjava”这个选项。其实就是指触发代码提示的就是“.”这个符号。 4.“AutoActivationtriggersforjava”这个选项,在“.”后加abcdefghijklmnopqrstuvwxyz字母,方便后面的查找修改。然后“apply”,点击“OK”。
按照上述方法修改后编写代码可以实现随时代码提示和补全功能,但是在使用过程中问题又来了,当按下空格键时会把第一行的内容自动上屏,其实很多时候就是想输一个空格而已.如何解决,在网上搜索了一下,果然有人遇到同样问题,参考下面解决方案,顺利在Eclipse3.7下解决问题.
参考文章:
引:http://johnlxj.blog.163.com/blog/static/16586556420117175344712/ 以前只知道alt+/调出assist,后来发现可以所有字母都激活contentassist(方法百度上都有,就不在这写了).用起来果然很爽.但是eclipse还是有些默认的设置不是很好,比如空格键和=号会把第一行的内容自动上屏,其实很多时候我就是想输一个空格或=号而已.这个在设置里面没办法设置.幸好eclipse是有插件机制的,可以通过修改插件的源码,然后导出成插件,再替换掉原来的插件来处理 1.先找到相关的插件 打开Plug-insView找到插件org.eclipse.jface.text,右键点击,选择importasSourceProject,导入完成后,在你的workspace就可以看到这个project了 2.修改代码 在src/org/eclipse/jface/text/contentassist/CompletionProposalPopup.java文件中,找到这样一行代码 chartriggers=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-->Deployablepluginsandfragments,next,destination选择archivefile,然后finish.你就可以在zip文件里看到生成好的jar,用它替换掉eclipse/plugins里面的同名jar包,就可以了
怎么我找不到src这个文件夹的 嗯可能跟源码有关,你找找你的EclipseIDEforJavaEEDevelopers的plugins目录下面有没有org.eclipse.jface.text的源码
Eclipse的Plug-inDevelopmentEnvironment(PDE)插件网址:http://www.eclipse.org/pde/
我同时安装了Eclipse3.5和Eclipse3.7,按照上面的文章指导,在Eclipse3.5下无法对插件源码进行修改,而在Eclipse3.7下可以成功修改.
Eclipse3.5Galileo"import"对话框下没有"Plug-inDevelopment"选项,在Eclipse3.5下无法对插件"org.eclipse.jface.text"源码进行修改.
Eclipse3.7"import"对话框下有"Plug-inDevelopment"选项,可以对Eclipse3.7下的插件"org.eclipse.jface.text"源码进行修改.
"ImportAs"需要选择"Projectswithsourcefolders"
- //对源代码进行如下修改
- default:
- ICompletionProposalp=getSelectedProposal();
- if(pinstanceofICompletionProposalExtension){
- ICompletionProposalExtensiont=(ICompletionProposalExtension)p;
- char[]triggers=t.getTriggerCharacters();
- //hfmodify
- //eclipse关闭空格、等号自动补全(上屏)功能
- //if(contains(triggers,key)){
- if(key!='='&&key!=0x20&&contains(triggers,key)){
- e.doit=false;
- hide();
- insertProposal(p,key,e.stateMask,fContentAssistSubjectControlAdapter.getSelectedRange().x);
- }
- }
将修改后的工程导出,再用导出后的"org.eclipse.jface.text_3.7.1.r371_v20110825-0800.jar"插件覆盖原来对应插件就好了.