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