Eclipse自动补全设置

增加代码提示触发器

Eclipse默认的自动补全触发器是 . ,也就是只有在输入 . 时才会出现代码补全的提示信息。

要想让Eclipse支持更多触发器,可进行如下设置:

打开 Eclipse 依次选择 Window -> Perferences -> Java -> Editor -> Content Assist ,修改 右侧面板中 Auto activation triggers for Java:设置框中的值(默认是 .)为 .abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_

需要注意的是,这个输入框默认只能输入5个字符,一个变通的解决方法是导出 Eclipse 的配置文件,修改后再导回去。

  1. 可以先在该输入框中随便输入5个字符(一会儿用于查找,所以最好有点特异性),比如 aaaaa ,保存后关闭设置窗口。

  2. 依次打开 File -> export -> general -> preferences -> 选择保存位置(比如 C:/eclipse.epf)。

  3. 用文本编辑器打开导出的配置文件 eclipse.epf ,将导出前设置的5个字符 aaaaa 替换成

    .abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_ 或者其他需要的字符,然后保存。

  4. 回到 Eclipse ,依次点击 File -> import -> general -> preferences -> 导入修改后的 eclipse.epf 文件。

但是,一个新的问题可能出现了,那就是当按下空格键或等号时会把提示列表第一行的内容上屏。这本不是大的问题,我个人就习惯使用空格完成补全,但是由于上述设置,输入变量名时实时触发了自动提示,Eclipse 会自动在变量名后面加上变量类型。比如,要新建一个 String 类型的变量 s,当输入 s 的时候,Eclipse会在提示列表中列出 sString ,如果此时按下空格(或者等号)的话,就会选中列表中的sString ,新建的变量将会变成 sString 。为避免这种情况出现就只能在出现候选列表时按Esc键关闭代码提示之后再敲入空格或者等号。

导致这一问题的根源在于 Eclipse 默认的上屏键,得益于 Eclipse 的开源,我们可以通过源码修改自定义它的上屏键。

修改 Eclipse 上屏键

导入相关插件工程

打开Eclipse,依次选择 Window -> Show view->Plug-in Development-> Plug-ins,再在刚才添加的Plug-ins选项卡中找到org.eclipse.jface.text,右键单击,选择 import as-> Source Project,导入完成后,在你的 workspace 就可以看到这个 project 了。

解决工程中无源码问题

如果工程里没有src这个文件夹,说明你使用的版本中没有带源代码,有两种办法可以解决。

  1. 在 Eclipse 中安装Eclipse SDK

    打开 Help -> Install New Software ,搜索Eclipse SDK ,选中后按提示完成下载和安装。安装完成后,会在Eclipse 安装路径下的 plugins 目录中出现 org.eclipse.jface.text.source_*.jar (*部分为版本号)文件,重新启动后重复导入工程的操作即可。

  2. 手动下载一个和 Eclipse 版本相同的 Eclipse SDK

    下载地址:http://download.eclipse.org/eclipse/downloads/ ,下载完成后,将其解压,在 plugins 目录下找到 org.eclipse.jface.text.source_*.jar 文件,拷贝至Eclipse 安装路径下的 plugins 目录下。然后重新启动Eclipse。重复导入操作,就可以得到含有src文件夹的工程了。当然,也可以直接打开 Eclipse SDK 在其中进行导入工程等操作。

正常情况下 org.eclipse.jface.text.source_*.jar 和 org.eclipse.jface.text_*.jar 应版本号系统,否则说明SDK版本有误。

修改源码

打开工程下的 org.eclipse.jface.text.contentassist.CompletionProposalPopup 类,定位到函数 verifyKey ,函数中有以下一段代码:

将这段代码中的

改为

这样就使得空格键、等号和分号都不再有上屏功能,只保留回车键作为上屏键。如果想把 Tab 键也作为上屏键,须将上述代码块中的

改为:

导出修改后的插件

最后就是导出修改后的插件,右键点击工程,依次选择 Export-> Plug-in Development-> Deployable plugins and fragments,点击 Next,在 Destination 中的 Directory,选择一个要保存插件的目录,然后 Finish。就会在所选的目录下产生一个新的 plugins 目录,里面有一个jar文件,用它替换掉 Eclipse 安装目录下的 plugins 里面对应的org.eclipse.jface.text_*.jar 。

替换之后重启 Eclipse即可生效。

发表评论

电子邮件地址不会被公开。