`
pengyusong
  • 浏览: 17607 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

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

阅读更多
引: 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了。导入后会在该工程中看到有src的源码包,如果没有源码包就说明Eclipse里面没有这个插件的源码,需要下载Eclipse的源码sdk,下载地址为:http://download.eclipse.org/eclipse/downloads/drops/R-3.7-201106131736/index.php#EclipseSDK,下载后打开并重新执行上面的操作就可在工程中看到源码了。
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"





[java] view plaincopy
// 对源代码进行如下修改 
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"我已经上传到我的资源中, 需要的可以去下载.
分享到:
评论

相关推荐

    eclipse自动补全,去空格=号补全XML自动提示实现,格式化风格实现

    四、空格键=”=”键自动上屏问题解决 在Eclipse中,有时候可能会遇到空格键和=”=”键自动上屏的问题。这个问题可以通过修改Eclipse的插件来解决。可以下载Eclipse的源代码版本,然后对插件进行修改,最后导出成...

    Eclipse3.7关闭空格, "="代码自动提示插件

    定制Eclipse的Content assist(代码补全),比如空格键不上屏 以前只知道alt+/调出assist,后来发现可以所有字母都激活content assist(方法百度上都有,就不在这写了).用起来果然很爽.但是eclipse还是有些默认的设置不是...

    Eelipse Luna Service Release 2 (4.4.2) 代码补全插件,消除空格键的代码补全问题

    刚装好的Eclipse的代码补全的触发条件只有一个‘.’,可以通过如下设置使输入任意字符触发自动补全功能 设置提示如下: 打开 Eclipse 依次选择 Window -> Perferences -> Java -> Editor -> Content Assist,Auto ...

    取消eclipse mars1部分按键自动补全

    "取消eclipse mars1部分按键自动补全"的标题和描述指向一个特定的定制化需求,即禁用Eclipse Mars 1中特定键位触发的自动代码补全功能。自动补全功能在编程时可以提高效率,但有时可能因为个人偏好或特定场景的需求...

    Eclipse自动补全

    在`Window > Preferences > General > Editors > Text Editors > Content Assist`中,可以调整补全的触发条件、延迟时间、首选项等。例如,可以设置自动补全在输入多少个字符后启动,或者是否在输入空格后关闭补全...

    eclipse4.7.3a修改版,取消等号和空格触发的自动补全(压缩包2)

    在Eclipse 4.7.3a版本中,开发者可能遇到的一个常见问题是在编写代码时,等号(=)和空格键会自动触发代码补全功能,这在某些场景下可能并不理想,例如当用户快速打字或输入数学公式时。这个描述提到的是一个修改版...

    eclipse自动补全自动提示1

    通过以上步骤,你可以使Eclipse的代码自动提示和补全更加智能,且可以根据个人习惯调整上屏键。这不仅提高了编程效率,也让编码体验更顺畅。记得每次修改后都要保存并应用设置,以确保更改生效。

    org.eclipse.jface.text_3.13.0.v20180527-1819 .jar

    "取消优化代码智能提示"意味着禁用特定的自动完成策略,可能是防止空格键触发代码上屏的设置。用户可以通过Eclipse的首选项或设置菜单来更改这些选项,例如在"General > Editors > Text Editors > Keys"中调整快捷键...

    Eclipse配置

    有时候,Eclipse会在按下空格键或“=”键时自动补全当前最匹配的内容,这可能并不总是符合预期的行为。解决这个问题的方法是通过修改Eclipse的源代码插件: - 导入`org.eclipse.jface.text`插件到工作空间。 - 修改`...

    配置Eclipse的自动提示

    在编程环境中,自动提示功能是提高开发效率的重要工具之一,尤其对于Eclipse这样的集成开发环境(IDE)来说,它的智能感知和代码补全功能能够帮助开发者快速编写代码,减少错误。本文将详细介绍如何配置Eclipse以...

    eclipse使用技巧2

    - **自定义编辑器**:可以通过 `Window -> Preferences -> Java -> Editor -> Content Assist` 设置代码补全的功能。 - **国际化支持**:除了界面语言的设置外,还可以通过安装不同的语言包来支持多语言开发。 通过...

    Eclipse使用技巧(Java开发用户指南)汇编.pdf

    1. **内容辅助(Content Assist)**:在编写Java代码时,内容辅助提供了一种快速输入代码的方式。通过按下Alt+/或使用菜单"编辑>内容辅助",可以获取到当前上下文中的变量、方法、类等的补全列表。在Javadoc注释中同样...

    S32DS for PA 2017 Workspace配置

    - **代码提示和完成**:在“C/C++”(C/C++)>“内容辅助”(Content Assist)中,可以调整代码补全的触发条件和优先级。 5. **保存并应用设置**: 完成所有配置后,记得点击“应用”(Apply)和“确定”(OK)...

    MyEclipse6.0自动提示配置

    可以通过文本编辑器打开该文件,找到`/instance/org.eclipse.jdt.ui/content_assist_autoactivation_triggers_java`这一行,将其值改为`.abcdefghijklmnopqrstuvwxyz`,即包含所有小写字母。如果希望在输入空格时也...

Global site tag (gtag.js) - Google Analytics