Eclipse变量名自动补全问题解决记录

时间:2023-01-22 08:46:29
53873039oycg
{ "@context": "https://zhanzhang.baidu.com/contexts/cambrian.jsonld", "@id": "http://53873039oycg.iteye.com/blog/2038310", "title": "Eclipse变量名自动补全问题解决记录", "images": [], "description": "", "pubDate": "2014-03-29T18:58:42" }

Eclipse变量名自动补全问题解决记录

    博客分类:
  • java
  </div>


        不知道大家在使用eclipse输入变量名的时候,有没有遇到过自动补全变量名的问题,前提,设置了Content Assist,如下

      
Eclipse变量名自动补全问题解决记录
 

     
Eclipse变量名自动补全问题解决记录
 

       我每次都是自己删除补全的变量名的。今天有时间就搜了下怎么取消eclipse的自动补全变量名功能,参考了博客http://www.cnblogs.com/whunick/p/3632412.html

 

        思路:eclipse自动补全变量名使用了plugin org.eclipse.jface.text。找到实际完成此功能的类CompletionProposalPopup,修改后替换plugin

 

       步骤

       (一)在Eclipse打开Window菜单–>show view –>Others –>Plug-in Development –>Plug-ins。

       如下所示

      
Eclipse变量名自动补全问题解决记录
    
Eclipse变量名自动补全问题解决记录

 

    (二)在plug-ins视图下找到org.eclipse.jface.text,右键import as Source Project ,如下所示
    
Eclipse变量名自动补全问题解决记录
   
Eclipse变量名自动补全问题解决记录
     结果为

    
Eclipse变量名自动补全问题解决记录
    我的eclipse没有带源码,那怎么修改类呢,这时候就要去下载插件的源码了,当然如果你的eclipse带源码那个太好了,那下面的操作可以参照http://www.cnblogs.com/whunick/p/3632412.html说的进行,不需要往下看了。

   

    如何下载插件的源码呢,可以借助一个插件来完成,插件名字叫org.freejava.javasourceattacher_1.2.1,可以从http://svn.codespot.com/a/eclipselabs.org/free-plugins/trunk/site/plugin…下载,具体介绍可以参考源链接:http://www.javaworld.com/article/2075958/open-source-tools/open-source-eclipse-plugin-for-download-library-source-code-automatically.html

    官方介绍:

   

写道

 

Install plugin: - Use Update site URL: http://svn.codespot.com/a/eclipselabs.org/free-plugins/trunk/site/ - Or download offline: download plugin from http://svn.codespot.com/a/eclipselabs.org/free-plugins/trunk/site/plugin… and save it to eclipse/dropins/ folder then restart Eclipse. Usage: Right click on a Java library of a Java-based project and choose the menu item “Attach Java Source” and wait for the source code to be downloaded/attached to the library automatically

 

     下载后把插件放到eclipse的dropins目录,重启eclipse,在刚才的项目org.eclipse.jface.text下的org.eclipse.jface.text_3.7.0.v20110505-0800.jar右键,选择Attach Java Source,插件自动下载。下载的目录在C:\Documents and Settings\Administrator\.sourceattacher\下面,可以从eclipse的Error Log看到

    
Eclipse变量名自动补全问题解决记录
 

    找到源码位置,解压,在eclipse新建一个Java项目,把org文件夹复制到项目的src下面,其他文件夹复制到src父文件夹下面,打开org.eclipse.jface.text_3.7.0.v20110505-0800.jar把用META-INF下的文件覆盖项目的META-INF文件夹

    在项目右击,选择build path–>configure build path,在libraries下面点击add library,选择plug-in dependencies,点击finish。如下所示

   
Eclipse变量名自动补全问题解决记录
    
Eclipse变量名自动补全问题解决记录
    

    (三)找到CompletionProposalPopup类,路径src/org/eclipse/jface/text/contentassist/CompletionProposalPopup.java,找到这样一行代码

    

Java代码   Eclipse变量名自动补全问题解决记录Eclipse变量名自动补全问题解决记录
  1. char[] triggers = t.getTriggerCharacter();   
  2. if(contains(triggers,key))  
char[] triggers = t.getTriggerCharacter();  
if(contains(triggers,key))

     if 里判断你按下的键(key)是否在triggers 中,如果是,就触发第一行提示的

代码。于是,我们只要在这里排除掉空格和=号即可,如下

    

Java代码   Eclipse变量名自动补全问题解决记录Eclipse变量名自动补全问题解决记录
  1. char[] triggers= t.getTriggerCharacters();  
  2. if ((key != ‘=’) &&(key != 0x20)&&contains(triggers, key))   
char[] triggers= t.getTriggerCharacters(); 
if ((key != '=') &&(key != 0x20)&&contains(triggers, key))

    修改成这样,空格和等号就不会触发自动补全了。

    如下所示

    
Eclipse变量名自动补全问题解决记录
    
Eclipse变量名自动补全问题解决记录
 

     (四)保存后导出,替换org.eclipse.jface.text_3.7.0.v20110505-0800.jar里面的
CompletionProposalPopup类,导出是普通的Export–>Jar File

    
Eclipse变量名自动补全问题解决记录
 

      然后使用压缩软件打开org.eclipse.jface.text_3.7.0.v20110505-0800.jar把新生成的CompletionProposalPopup类替换掉老的class,注意把CompletionProposalPopup$.*.class之类的也替换掉,保存后,替换掉eclipse的plugins下面的org.eclipse.jface.text_3.7.0.v20110505-0800.jar,替换之前注意备份org.eclipse.jface.text_3.7.0.v20110505-0800.jar

  

     重启Eclipse,大功告成,现在按=就可以了,再也不要自己去删掉补全的部分了。

 

     本文系原创,转载请注明出处,谢谢。