定制Eclipse的Content assist(代码补全),比如空格键 "="键不上屏
来源:互联网 发布:北京网络布线 编辑:程序博客网 时间:2024/05/12 22:01
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”。
按照上述方法修改后编写代码可以实现随时代码提示和补全功能, 但是在使用过程中问题又来了, 当按下空格键时会把第一行的内容自动上屏,其实很多时候就是想输一个空格而已. 如何解决, 在网上搜索了一下, 果然有人遇到同样问题, 参考下面解决方案, 顺利在Eclipse 3.7下解决问题.
参考文章:
引: http://blog.csdn.net/liuhhaiffeng/article/details/7179243
以前只知道alt+/调出assist,后来发现可以所有字母都激活content assist(方法百度上都有,就不在这写了).用起来果然很爽.但是eclipse还是有些默认的设置不是很好,比如空格键和=号会把第一行的内容自动上屏,其实很多时候我就是想输一个空格或=号而已.这个在设置里面没办法设置.幸好eclipse是有插件机制的,可以通过修改插件的源码,然后导出成插件,再替换掉原来的插件来处理
1.先找到相关的插件
打开Plug-ins View找到插件org.eclipse.jface.text,右键点击,选择import as Source Project,导入完成后,在你的workspace就可以看到这个project了
2.修改代码
在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))
3.把修改好的org.eclipse.jface.text导出
右键点击你的workspace里的org.eclipse.jface.text,选择export-->Deployable plugins and fragments, next,destination 选择archive file,然后finish.你就可以在zip文件里看到生成好的jar ,用它替换掉eclipse/plugins里面的同名jar包,就可以了
怎么我找不到src这个文件夹的
嗯 可能跟源码有关,你找找你的Eclipse IDE for Java EE Developers 的plugins目录下面有没有org.eclipse.jface.text的源码
Eclipse的Plug-in Development Environment (PDE)插件网址:
http://www.eclipse.org/pde/
我同时安装了Eclipse 3.5和Eclipse 3.7, 按照上面的文章指导, 在Eclipse 3.5下无法对插件源码进行修改, 而在Eclipse 3.7下可以成功修改.
Eclipse 3.5 Galileo "import"对话框下没有"Plug-in Development"选项, 在Eclipse 3.5下无法对插件"org.eclipse.jface.text"源码进行修改.
Eclipse 3.7 "import"对话框下有"Plug-in Development"选项, 可以对Eclipse 3.7下的插件"org.eclipse.jface.text"源码进行修改.
"Import As" 需要选择"Projects with source folders"
- // 对源代码进行如下修改
- default:
- ICompletionProposal p= getSelectedProposal();
- if (p instanceof ICompletionProposalExtension) {
- ICompletionProposalExtension t= (ICompletionProposalExtension) p;
- char[] triggers= t.getTriggerCharacters();
- // hf modify
- // eclipse 关闭空格、等号自动补全(上屏)功能
- //if (contains(triggers, key)) {
- if(key!='='&&key!=0x20&&contains(triggers,key)) {
- e.doit= false;
- hide();
- insertProposal(p, key, e.stateMask, fContentAssistSubjectControlAdapter.getSelectedRange().x);
- }
- }
// 对源代码进行如下修改default:ICompletionProposal p= getSelectedProposal();if (p instanceof ICompletionProposalExtension) {ICompletionProposalExtension t= (ICompletionProposalExtension) p;char[] triggers= t.getTriggerCharacters();// hf modify// eclipse 关闭空格、等号自动补全(上屏)功能//if (contains(triggers, key)) { if(key!='='&&key!=0x20&&contains(triggers,key)) {e.doit= false;hide();insertProposal(p, key, e.stateMask, fContentAssistSubjectControlAdapter.getSelectedRange().x);}}
将修改后的工程导出, 再用导出后的"org.eclipse.jface.text_3.7.1.r371_v20110825-0800.jar"插件覆盖原来对应插件就好了.
- 定制Eclipse的Content assist(代码补全),比如空格键 "="键不上屏
- 定制Eclipse的Content assist(代码补全),比如空格键 "="键不上屏
- 定制Eclipse的Content assist(代码补全),比如空格键 "="键不上屏
- 定制Eclipse的Content assist(代码补全),比如空格键 "="键不上屏
- 【转】定制Eclipse的Content assist(代码补全),比如空格键不上屏
- 定制Eclipse的Content assist(代码补全),取消 空格键 "=" 自动补全(上屏)
- Eclipse定制Content Assist代码补全功能
- Eclipse代码补全,修改 空格键 "=" 键不上屏
- Eclipse代码补全,修改 空格键 "=" 键不上屏
- Eclipse代码补全,修改 空格键 "=" 键不上屏
- Eclipse代码补全,修改 空格键 "=" 键不上屏
- Eclipse代码补全 空格键 "=" 键不上屏设置
- eclipse Content Assist 无法使用,不能自动补全的解决办法
- Eclipse代码补全 及 空格键 "="键自动上屏问题
- 定制eclipse代码提示--设置空格键不上屏
- eclipse 代码补全
- Eclipse自动补全增强,自动补全弹出时TAB、空格键功能修改
- 如何设置eclipse的代码补全
- vCenter 虚拟机硬盘空间不足的问题处理过程
- 泛型练习5
- 大型网站技术架构核心原理与案例分析--第二、三章(总结待续)
- 黑马程序员-day22其他流对象
- jsp九大内置对象及解析
- 定制Eclipse的Content assist(代码补全),比如空格键 "="键不上屏
- jquery操作节点属性attr
- 三、Redis基础命令--hash
- android启动流程
- hadoop环境搭建相关学习网站
- SVN 文件导出造成桌面图标显示问号
- 二进制实用程序(objdump, readelf,ar, nm等) .
- 关于Class.forName(className).newInstance()的理解
- 英语学习 4 quora:macbook software