Eclipse(任何版本的AFAIK)都有一些与Java代码中的折叠相关的奇怪行为。假设我正在编辑这个类:
class A {
String field;
@Nonnull
Object method(){
// whatever
}
}
如果启用了折叠并且我告诉它要折叠所有内容(它是我的Control-NumSlash,但可能是自定义的),则该方法被正确折叠,即它仅显示该方法的Object method()...
。一切都很好'直到现在。
困扰我的部分是,如果我在field;
之后向右移动光标,按Enter键,输入类似“public
”的内容,然后停一秒钟,Eclipse会自动折叠该单词进入下面的方法。
这似乎是合理的(可能是因为它假设我想将该限定符添加到方法中);但在实践中,我实际上正在尝试添加一种新方法,暂停一下,思考它的返回类型或可能是它的名字。 (如果我想修改方法,我首先展开它,因为它可能已经有了这个限定符,折叠了。)
我讨厌这个“功能”充满激情,但我不能为我的生活找到如何禁用它,甚至不知道哪些该死的插件(Eclipse一直坚持我不应该被删除)负责它,所以我可以提交错误报告。
那么,有没有人知道(1)这种行为来自哪里,希望(2)如何摆脱它但保持手动折叠?谢谢!
(为了记录,我正在使用Kepler SR1,但这种行为可以追溯到很长一段时间,至少五年左右。)
答案 0 :(得分:1)
我不相信有任何办法阻止它这样做,除非你养成在;
之后放一个分号}
或关闭大括号public
的习惯,这会阻止它Object method(){..
来自'折叠'它。我相信这是为了折叠所有内容,直到最接近的分号,这也是为什么@Nonnull
也包括在内。
我可以找到折叠的唯一选项位于窗口>偏好> Java>编辑>折叠强>
我认为这是一个错误,或者只是一个有意想不到的副作用的功能。
有趣的是,如果您放置几乎任何符号或拼写错误public
它就不会折叠它。