Java eclipse中`/@formatter:off`标记的格式

Java eclipse中`/@formatter:off`标记的格式,java,eclipse,code-formatting,Java,Eclipse,Code Formatting,您可能知道,Eclips允许您禁用源代码某些部分的代码格式化程序(请参见示例) 现在,我的问题是,格式化程序显然会在找到/@formatter:off标记的行的最开头停止格式化代码。其结果是,格式化程序标记本身(本质上只是一个注释行)被放置在一个奇怪的位置,即在行的最开始没有缩进 看看这个例子 我输入的内容: //@formatter:off Some code { with indentation that I dont want to be f

您可能知道,Eclips允许您禁用源代码某些部分的代码格式化程序(请参见示例)

现在,我的问题是,格式化程序显然会在找到
/@formatter:off
标记的行的最开头停止格式化代码。其结果是,格式化程序标记本身(本质上只是一个注释行)被放置在一个奇怪的位置,即在行的最开始没有缩进

看看这个例子

我输入的内容:

   //@formatter:off
   Some code {
     with indentation
       that I dont    want to be    formatted.
   } 
   //@formatter:on
点击[Ctrl+F]后,看起来如下所示:

//@formatter:off
   Some code {
     with indentation...
       that I dont    want to be    formatted.
   } 
   //@formatter:on

好吧,我意识到这纯粹是一个表面问题,但当我在代码中到处看到这一点时,我的强迫症让我发疯。特别是在专门使用格式化标记使代码看起来更漂亮之后。

您使用的是哪一版本的Eclipse

我刚刚在Eclipse4.3.1中尝试过这个,它似乎完全按照您的需要工作。更好的是,如果您的代码最终与第二个代码块类似,那么格式化程序实际上会将第一个
/@formatter:off
块缩进到正确的缩进位置


也许您需要升级您的Eclipse版本?

刚刚重新检查了这个问题-似乎我偶然发现了一些奇怪的边缘案例。我首先尝试的是在对象引用及其方法调用之间引入
/@formatter:off
标记。在这种特定情况下,它不起作用,或者更确切地说,它起作用如上所述。您是对的,它在(大多数?)其他情况下工作正常。@fgysin谢谢,您的评论解决了这个问题。如果我将off/on标记放在表达式中(我在数组初始化
新对象[]{//@formatter:off…/@formatter:on};
),它将删除缩进,如果将其放在表达式之外,它将保留缩进。