解决Eclipse增强代码补全导致变量自动补全问题
4星 · 超过85%的资源 需积分: 4 171 浏览量
更新于2024-09-13
2
收藏 1KB TXT 举报
"在Eclipse开发环境中,启用增强代码补全功能后,有时会在变量声明时遇到一个问题,即输入变量名后,Eclipse会自动在后面添加变量类型,导致实际输入的变量名与预期不符。例如,声明一个名为`test`的`String`类型变量,按空格或回车时,变量名会变为`testString`。解决这个问题的方法是通过修改Eclipse的源码来调整代码补全的行为。
首先,你需要下载Eclipse的源码,可以从地址http://mirrors.ustc.edu.cn/eclipse/eclipse/downloads/drops4/R-4.2.1-201209141800/eclipse-SDK-4.2.1-win32.zip获取对应版本的Eclipse源码包,并将其解压到本地。
接下来,按照以下步骤操作:
1. 打开Eclipse,然后选择`Window -> Show View -> Plug-ins`来查看已安装的插件。
2. 在插件列表中找到并导入`org.eclipse.jface.text`作为源项目,这通常位于你的工作空间的`plugins`目录下。
3. 导入源代码后,找到并编辑`src/org/eclipse/jface/text/contentassist/CompletionProposalPopup.java`文件。
4. 修改`CompletionProposalPopup.java`中的相关代码段,主要关注处理触发字符的部分。当检测到触发字符时,检查是否应该触发代码补全,避免在不需要的情况下添加变量类型。
在原有代码的基础上,加入条件判断,使得只有在按下特定键(例如等号或非空格键)时,才会执行代码补全。原始代码可能如下:
```java
char[] triggers = t.getTriggerCharacter();
if (contains(triggers, key)) {
// 当前代码补全逻辑
}
```
修改后的代码应该像这样:
```java
char[] triggers = t.getTriggerCharacter();
if (contains(triggers, key)) {
if (key != '=' && key != 0x20 && contains(triggers, key)) {
// 新的代码补全逻辑,避免空格触发
}
}
```
5. 保存修改后,你需要重新打包这个修改过的`org.eclipse.jface.text`插件。选择`Export -> Deployable plugins and fragments`,在向导中设置输出为一个归档文件,指定一个新的存储位置,例如桌面的一个`.zip`文件。
6. 解压缩生成的`.zip`文件,替换掉Eclipse安装目录下的`eclipse/plugins`中的相应`jar`文件。
完成这些步骤后,重启Eclipse,你将发现变量声明时的代码补全问题已经得到了修正,现在空格不会触发变量类型自动添加,从而避免了`testString`这样的错误情况发生。"
这个解决方案对于那些在Eclipse中遇到相同问题的开发者来说非常有用,它允许自定义代码补全行为,以适应个人的编程习惯。同时,这也是一个深入理解Eclipse插件系统和源码修改的实例,对于提升Eclipse的使用体验有重要意义。
2019-01-30 上传
2018-11-14 上传
2014-11-17 上传
点击了解资源详情
2023-04-06 上传
2023-09-25 上传
wushaoboph
- 粉丝: 0
- 资源: 17
最新资源
- C语言数组操作:高度检查器编程实践
- 基于Swift开发的嘉定单车LBS iOS应用项目解析
- 钗头凤声乐表演的二度创作分析报告
- 分布式数据库特训营全套教程资料
- JavaScript开发者Robert Bindar的博客平台
- MATLAB投影寻踪代码教程及文件解压缩指南
- HTML5拖放实现的RPSLS游戏教程
- HT://Dig引擎接口,Ampoliros开源模块应用
- 全面探测服务器性能与PHP环境的iprober PHP探针v0.024
- 新版提醒应用v2:基于MongoDB的数据存储
- 《我的世界》东方大陆1.12.2材质包深度体验
- Hypercore Promisifier: JavaScript中的回调转换为Promise包装器
- 探索开源项目Artifice:Slyme脚本与技巧游戏
- Matlab机器人学习代码解析与笔记分享
- 查尔默斯大学计算物理作业HP2解析
- GitHub问题管理新工具:GIRA-crx插件介绍