在Eclipse中`//@formatter:off`标记的格式化

9

你可能知道,Eclipse可以让你为某些源代码部分禁用代码格式化程序(例如,请参见此问题)。

现在,我的问题是,格式化程序显然会在找到//@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

好的,我认识到这只是一个纯粹的外观问题,但当我在代码中到处看到这个时,我的强迫症让我感到疯狂。特别是在我专门使用格式化标签使代码更美观后。

1个回答

1
你使用的Eclipse版本是什么?
我刚在Eclipse 4.3.1中尝试了一下,它似乎完全按照你想要的方式工作。更好的是,如果你的代码最终像第二个代码块那样,格式化程序会将第一个//@formatter:off块正确缩进。
也许你需要升级你的Eclipse版本?

4
我重新检查了这个问题-似乎我遇到了一些奇怪的边缘情况。我最初尝试的是在一个“对象引用”和它的“方法调用”之间引入//@formatter:off标签。在那种特定情况下,它不起作用,或者说像上面所述那样起作用。你是对的,在(大多数?)其他情况下它都工作得很好。 - fgysin
1
@fgysin 谢谢,你的评论解决了问题。如果我将 off/on 标签放在表达式内部(我在数组初始化中使用它 new Object[] {//@formatter:off ... //@formatter:on};),它会删除缩进;如果你将它放在表达式外面,它会保留缩进。 - Barry NL

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接