您的位置:首页 > 编程语言 > Java开发

定制Eclipse的代码提示(优化自动上屏等功能)

2013-07-24 11:26 399 查看


定制Eclipse的代码提示(优化自动上屏等功能)

Eclipse具有代码提示功能, 但是默认的提示只有在输入"."时才会提示, 我们希望Eclipse可以像Visual Studio那样, 输入任何字母都可以自动提示, 按照如下方式进行修改即可:
1. "Window"——>"Preferences"

2. 选择"java",展开"Editor",选择"Content Assist"

3. 选择"Content Assist",然后看到右边的"Auto-Activation"下面的"Auto Activation triggers for java"这个选项。其实就是指触发代码提示的就是"."这个符号

4. "Auto Activation triggers for java"这个选项,在"."后加abcdefghijklmnopqrstuvwxyz(字母,方便后面的查找修改。然后"apply",点击"OK"
按照上述方法修改后编写代码可以实现随时代码提示和补全功能, 但是在使用过程中问题又来了,这样的提示太智能啦,比如我只是想定义一个Button btnClick,但是自动提示总是会在后面帮你追加Button以便标示,最后变成了btnClickButton,但是我的本意只是想输入btnClick,这样的提示就会让人不得不每次都修改变量,很不人性化,还有就是当按下空格键时会把第一行的内容自动上屏,其实很多时候就是想输一个空格而已. 如何解决?
解决方案:
第一步:打开"Window"——>"Show
View"——>"Other"——>找到"Plug-in Development"——>选择"Plug-in",如图一
(很多朋友可能找不到这个"Plug-in
Development"或者"Plug-in"视图,这是因为没有安装PDE,此时只需要在线安装PDE插件即可,在线地址:http://download.eclipse.org/eclipse/pde/visualization/updates(安装方式:Help——>Install
New Software——>输入地址在线安装即可,如图二),安装完毕再如第一步所说的选择Plug-in视图即可)



图一



图二
第二步:在打开的"Plug-in"视图中找到"org.eclipse.jface.text(版本号:不同版本版本号不一样)",如下图:



第三步:右键选择jar包,选择"Import As"——>选择"Source Project"



第四步:导入jar程序之后,找到"src/org/eclipse/jface/text/contentassist/CompletionProposalPopup.java",但是此时你可能会发现我的项目里面根本连src文件夹都没有,这怎么办呢?



(根本原因是你的eclipse开发工具不是源码SDK,是经过编译的,此时我们需要去官网下载一个源码的SDK版就可以,具体下载地址:http://download.eclipse.org/eclipse/downloads/drops/R-3.8.1-201209141540/index.php#EclipseSDK,具体的版本要跟你jface.text版本一直最好,如我的是3.8.1

,所以我去下载的网址是3.8.1版本的)






下载完毕之后按照第一步方式,找到你下载的Eclipse 的jface.text文件,把它导入到项目中,然后编辑"src/org/eclipse/jface/text/contentassist/CompletionProposalPopup.java"类
第五步:找到"src/org/eclipse/jface/text/contentassist/CompletionProposalPopup.java"类中的public boolean verifyKey(VerifyEvent e) 方法下的如下代码:


char[] triggers= t.getTriggerCharacters();

if (contains(triggers, key)) {

e.doit = false;

hide();

insertProposal(p, key, e.stateMask, fContentAssistSubjectControlAdapter.getSelectedRange().x);

}
修改为如下代码:



char[] triggers= t.getTriggerCharacters();

if(key != '=' && key != 0x20 && contains(triggers,key))
{

e.doit = false;

hide();

insertProposal(p, key, e.stateMask, fContentAssistSubjectControlAdapter.getSelectedRange().x);

}

再修改代码处的向上数9行处的代码:


case '\t':

e.doit= false;

fProposalShell.setFocus();

return false;
修改为:





case '\t':

e.doit= false;

insertSelectedProposalWithMask(e.stateMask);

break;

如此,我们代码提示的时候就不会自动上屏或者补齐,并且tab切换时候才自动上屏,增强了代码提示的
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: