定制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切换时候才自动上屏,增强了代码提示的





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值