如何禁用 Eclipse 的“打字时自动折叠”?

bog*_*anb 8 eclipse folding eclipse-jdt

Eclipse(任何版本的 AFAIK)有一些与 Java 代码折叠相关的奇怪行为。假设我正在编辑这个类:

class A {
  String field;
  @Nonnull 
  Object method(){
    // whatever
  }
}
Run Code Online (Sandbox Code Playgroud)

如果启用折叠并且我告诉它折叠所有内容(它是我的 Control-NumSlash,但可能是自定义的),则该方法正确折叠,即它仅显示Object?method()...该方法。到目前为止一切都很好。

困扰我的部分是,如果我将光标移动到 之后field;,按 Enter,然后键入“ public”之类的内容,然后停止一秒钟,Eclipse 会自动将该单词折叠到下面的方法中。

这似乎是合理的(大概是假设我想将该限定符添加到方法中);但在实践中,我实际上是在尝试添加一个新方法,然后停下来思考它的返回类型或者它的名称。(如果我想修改该方法,我会先展开它,因为它可能已经具有折叠的限定符。)

我充满激情地讨厌这个“功能”,但我终其一生都找不到如何禁用它的方法,甚至无法找到该死的插件(Eclipse 一直坚持认为我不应该被允许删除)中的哪一个负责以便我可以提交错误报告。

那么,有没有人知道(1)这种行为来自哪里,希望(2)我怎样才能摆脱它但保持手动折叠?谢谢!

(根据记录,我使用的是 Kepler SR1,但这种行为可以追溯到很长一段时间,至少五年左右。)

zfb*_*zfb 2

我不认为有任何方法可以阻止它这样做,除非你养成在后面加上分号;或右大括号的习惯,以防止“折叠”它。我相信它的编写目的是将所有内容折叠起来,直到最接近的分号,这就是为什么也包含在内。}publicObject method(){..@Nonnull

我能找到的唯一折叠选项位于窗口 > 首选项 > Java > 编辑器 > 折叠

我认为这是一个错误,或者只是一个具有意想不到的副作用的功能。

有趣的是,如果你输入几乎任何符号或拼写错误,public它都不会折叠。