04 eclipse 自动补全功能的改进

参考文章 : http://tieba.baidu.com/p/2466687622?pn=1#35658184556l

这是一个关于修改了一下eclipse自动补全功能的问题, 当你配置了给定的字母会自动提示, 当你你键入变量名的时候,会自动提示补全,然后 这时候, 键入空格 或者”=”, 这时候 都会直接帮你吧变量名补齐

这个问题 我也很早之前就遇到了, 由于最近没什么时间, 并且最近没有怎么使用eclipse, 所以 一直把这个问题放在这里了, 昨天的时候, 没事 就按照上面的帖子把问题解决了
但是 这里与上面帖子里的不同在于, 因为我这里import org.eclipse.jface.text项目导进来嘛, 没有源代码, 所以在网上去找了一份这个插件的源代码, 然后 自己更新代码之后, 进行编译, 并将其更新到插件对应的jar包中

1 问题描述

这里写图片描述
看到了吗? 上面等eclipse自动提示的时候, 我的按键是 空格 + “=”, 我的原意是将变量名命名成”lI”, 但是 eclipse却给我将其替换为了备选项的”listIterator”

2 导出org.eclipse.jface.text插件为一个项目

先找到相关的插件: window -> show view -> plug-ins
找到插件org.eclipse.jface.text,右键点击,选择import as Source Project,导入完成后,在你的workspace就可以看到这个project了

这里写图片描述

3 导入源码, 更新业务代码, 编译

在src/org/eclipse/jface/text/contentassist/CompletionProposalPopup.java文件中,找到这样一行代码
char[] triggers = t.getTriggerCharacter();
if(contains(triggers,key))
在那行if判断里面,eclipse会判断key(就是你按下的键)是否在triggers中,如果是,那就触发下面的第一行提示上屏的代码.所以我们要做的就是把空格和=号排除就可以了:
if(key != ‘=’ && key != 0x20 &&contains(triggers,key)){
………

}
代码修改成这样后,提示的时候按下空格或者等号,提示就会没掉,也不会自动补全了咯!!!
这里写图片描述
上面 只录制了对于org.eclipse.jface.text.contentassist.CompletionProposalPopup.java的更新了的部分的显示, 加入了一个filteredTriggerChars, 并在业务代码之前加入了一个过滤条件, 以免 使用空格 或”=”, 或者 其他我不想按此键之后eclipse为我自动补全的按键的ascii码 [这里 我配置的是所有的非字母的字符]
后面的这个Main.java主要是为了编译CompletionProposalPopup.java

4 更新CompletionProposalPopup的相关字节码文件到 插件包中

这里写图片描述

这里就是将更新代码之后的CompletionProposalPopup.java的编译完成的字节码, 更新到插件的jar包中, 然后 启动eclipse, 就会发现上面的问题解决了
如果 你不放心的话, 可以为org.eclipse.jface.text备一个份

5 解决问题, 收工

这里写图片描述
看到了吗? 上面等eclipse自动提示的时候, 我的按键是 空格 + “=”, 我的原意是将变量名命名成”lI”, 然后可以看到我们的主题问题解决了

过滤掉的输入字符如下 :
这里写图片描述


参考教程 : http://tieba.baidu.com/p/2466687622?pn=1#35658184556l
jface.text 源代码 : http://vdisk.weibo.com/s/aWiTqHd1bs37I
http://download.csdn.net/detail/u011039332/9179331
上图操作之后更新之后的jface.text的jar包 : http://download.csdn.net/detail/u011039332/9179349

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值