zoukankan      html  css  js  c++  java
  • (java部署篇)eclipse ~ 自动补全词的各种控制(转)

    #这种方法只适用于Eclipse Classic版本(这个版本带有插件的源码)

    在使用Eclispe的过程,感觉自动补全做的不好,没有VS的强大。下面说两个增强自动补全的方法:

    1.增加Eclipse的提示功能

    在Eclipse中,从Window -> preferences -> Java -> Editor -> Content assist -> Auto-Activation下,我们可以在"."号后面加入我们需要自动提示的首字幕,比如"abc",可以把26个字母的大小写全部加上(.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_)。 

    2. 修改自动补全的快捷键

     首先,打开Eclipse,打开window->show view,选择Plug-ins,再找到org.eclipse.jface.text,右键单击,选择import as-> Source Project,导入完成后,在你的workspace就可以看到这个project了。

    在导入工程下的“org.eclipse.jface.text.contentassist.CompletionProposalPopup#verifyKey()”函数中有一段代码:

     1 // key != 0
     2         switch (key) {
     3             case 0x1B: // Esc
     4                 e.doit= false;
     5                 hide();
     6                 break;
     7 
     8             case '
    ': // Ctrl-Enter on w2k
     9             case '
    ': // Enter
    10                 e.doit= false;
    11                 insertSelectedProposalWithMask(e.stateMask);
    12                 break;
    13 
    14             case '	':
    15                 e.doit= false;
    16                 fProposalShell.setFocus();
    17                 return false;
    18 
    19             default:
    20                 ICompletionProposal p= getSelectedProposal();
    21                 if (p instanceof ICompletionProposalExtension) {
    22                     ICompletionProposalExtension t= (ICompletionProposalExtension) p;
    23                     char[] triggers= t.getTriggerCharacters();
    24                     if (contains(triggers, key)) {
    25                         e.doit= false;
    26                         hide();
    27                         insertProposal(p, key, e.stateMask, fContentAssistSubjectControlAdapter.getSelectedRange().x);
    28                     }
    29             }
    30         }
    View Code

    把这段代码修改为:

     1 // key != 0
     2         switch (key) {
     3             case 0x1B: // Esc
     4                 e.doit= false;
     5                 hide();
     6                 break;
     7 
     8             case '
    ': // Ctrl-Enter on w2k
     9             case '
    ': // Enter
    10                 e.doit= false;
    11                 insertSelectedProposalWithMask(e.stateMask);
    12                 break;
    13 
    14             case '	':
    15                 e.doit= false;
    16                 insertSelectedProposalWithMask(e.stateMask);
    17                 break;
    18 
    19             default:
    20                 ICompletionProposal p= getSelectedProposal();
    21                 if (p instanceof ICompletionProposalExtension) {
    22                     ICompletionProposalExtension t= (ICompletionProposalExtension) p;
    23                     char[] triggers= t.getTriggerCharacters();
    24                     if (key!='='&&key!=0x20&&key!='.'&&key!=';'&&contains(triggers, key)) {
    25                         e.doit= false;
    26                         hide();
    27                         insertProposal(p, key, e.stateMask, fContentAssistSubjectControlAdapter.getSelectedRange().x);
    28                     }
    29             }
    30         }
    View Code

    这样会取消“=”,空格,“.”和“;”的自动补全,加入TAB的自动补全。 

    最后就是导出修改后的插件,右键点击你的workspace里的工程,选择Export->Deployable plugins and fragments,点击Next,选择Destination选项卡,选择Directory,选择一个要保存插件的目录,然后Finish,这样会得 到一个zip包,打开,plugins里会有一个jar包,替换Eclipse的目录下的plugins里的同名文件(最好先把原plugins目录下的 org.eclipse.jface.text_3.7.2.v20111213-1208.jar(因为Eclipse版本的不同这个文件的名字可能不 同)备份)。

    修改后使用Eclipse会很顺手!

  • 相关阅读:
    (39)JS运动之缓冲运动
    学习hibernate笔记
    企业网络管理市场
    java实现第六届蓝桥杯打印大X
    java实现第六届蓝桥杯移动距离
    java实现第六届蓝桥杯加法变乘法
    java实现第六届蓝桥杯垒骰子
    java实现第六届蓝桥杯垒骰子
    java实现第六届蓝桥杯打印大X
    java实现第七届蓝桥杯取球博弈
  • 原文地址:https://www.cnblogs.com/phoenixfling/p/3196126.html
Copyright © 2011-2022 走看看