随笔 - 54  文章 - 0  评论 - 1  阅读 - 46463

Eclipse代码提示补全问题,自动选择第一个

原地址 http://blog.csdn.net/liuhhaiffeng/article/details/7179243

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"

 

  1. // 对源代码进行如下修改  
  2. default:  
  3. ICompletionProposal p= getSelectedProposal();  
  4. if (p instanceof ICompletionProposalExtension) {  
  5. ICompletionProposalExtension t= (ICompletionProposalExtension) p;  
  6. char[] triggers= t.getTriggerCharacters();  
  7. // hf modify  
  8. // eclipse 关闭空格、等号自动补全(上屏)功能  
  9. //if (contains(triggers, key)) {  
  10.  if(key!='='&&key!=0x20&&contains(triggers,key)) {  
  11. e.doit= false;  
  12. hide();  
  13. insertProposal(p, key, e.stateMask, fContentAssistSubjectControlAdapter.getSelectedRange().x);  
  14. }  
  15. }  

 

将修改后的工程导出, 再用导出后的"org.eclipse.jface.text_3.7.1.r371_v20110825-0800.jar"插件覆盖原来对应插件就好了.

posted on   hahanonym  阅读(1924)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示