当前位置: 首页 > news >正文

2017.4.17 定制Eclipse的Content assist(代码补全),比如空格键 =键不上屏

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://johnlxj.blog.163.com/blog/static/16586556420117175344712/ 以前只知道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的源码

EclipsePlug-in Development Environment (PDE)插件网址: http://www.eclipse.org/pde/

 

我同时安装了Eclipse 3.5Eclipse 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"

[java] view plain copy print
// 对源代码进行如下修改
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"插件覆盖原来对应插件就好了.

已经修改好的"org.eclipse.jface.text_3.7.1.r371_v20110825-0800.jar"我已经上传到我的资源中, 需要的可以去下载.

转载于:https://www.cnblogs.com/mojiayi/p/6723721.html

相关文章:

  • Director.js路由
  • Java实现八进制正整数转化为十进制数
  • vim 设置默认显示行号
  • iOS APNs远程推送流程精简版
  • python面向对象01
  • css3边框背景写法及简写。待续
  • 逻辑分析题汇总(一)
  • python/文件操作
  • pyhton随笔02
  • C# 中的EventHandler
  • 二叉搜索树的插入
  • git配置文件读取顺序
  • 20170424
  • jq插件的编写方法(自定义jq插件)---转
  • 反转输出并连接
  • 「前端」从UglifyJSPlugin强制开启css压缩探究webpack插件运行机制
  • 03Go 类型总结
  • CentOS7简单部署NFS
  • CSS魔法堂:Absolute Positioning就这个样
  • jQuery(一)
  • Promise面试题,控制异步流程
  • Service Worker
  • SpiderData 2019年2月25日 DApp数据排行榜
  • Spring技术内幕笔记(2):Spring MVC 与 Web
  • 产品三维模型在线预览
  • 大整数乘法-表格法
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 你不可错过的前端面试题(一)
  • 如何在GitHub上创建个人博客
  • 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
  • 一文看透浏览器架构
  • 移动端唤起键盘时取消position:fixed定位
  • 用jQuery怎么做到前后端分离
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • 新海诚画集[秒速5センチメートル:樱花抄·春]
  • ​iOS安全加固方法及实现
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • (bean配置类的注解开发)学习Spring的第十三天
  • (delphi11最新学习资料) Object Pascal 学习笔记---第2章第五节(日期和时间)
  • (poj1.3.2)1791(构造法模拟)
  • (TOJ2804)Even? Odd?
  • (分布式缓存)Redis哨兵
  • (附源码)springboot金融新闻信息服务系统 毕业设计651450
  • (附源码)ssm航空客运订票系统 毕业设计 141612
  • (附源码)计算机毕业设计大学生兼职系统
  • (免费领源码)Python#MySQL图书馆管理系统071718-计算机毕业设计项目选题推荐
  • (转)利用PHP的debug_backtrace函数,实现PHP文件权限管理、动态加载 【反射】...
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • .360、.halo勒索病毒的最新威胁:如何恢复您的数据?
  • .NET 材料检测系统崩溃分析
  • .NET/C# 使窗口永不获得焦点
  • .Net转Java自学之路—SpringMVC框架篇六(异常处理)
  • @hook扩展分析
  • @JsonSerialize注解的使用
  • @reference注解_Dubbo配置参考手册之dubbo:reference