在Eclipse中,是否可能标记Java代码的一部分不自动格式化?

10

eclipse为Java代码提供的自动格式化功能真是太棒了!你可以写出糟糕的代码,只需要简单地按下CTRL+SHIFT+f组合键,代码就会变得很棒。

但是,有时我希望标记部分代码不要被自动格式化。例如,使用流畅接口时:

public void fluentInterfaceJooqDemo() {
    create.select(AUTHOR.FIRST_NAME, AUTHOR.LAST_NAME, count())
          .from(AUTHOR)
          .join(BOOK).on(AUTHOR.ID.equal(BOOK.AUTHOR_ID))
          .where(BOOK.LANGUAGE.eq("DE"))
          .and(BOOK.PUBLISHED.gt(date("2008-01-01")))
          .groupBy(AUTHOR.FIRST_NAME, AUTHOR.LAST_NAME)
          .having(count().gt(5))
          .orderBy(AUTHOR.LAST_NAME.asc().nullsFirst())
          .limit(2)
          .offset(1)
          .forUpdate()
          .of(AUTHOR.FIRST_NAME, AUTHOR.LAST_NAME);
}

按下 CTRL+SHIFT+f

public void fluentInterfaceJooqDemo() {
    create.select(AUTHOR.FIRST_NAME, AUTHOR.LAST_NAME, count()).from(AUTHOR).join(BOOK).on(AUTHOR.ID.equal(BOOK.AUTHOR_ID))
            .where(BOOK.LANGUAGE.eq("DE")).and(BOOK.PUBLISHED.gt(date("2008-01-01"))).groupBy(AUTHOR.FIRST_NAME, AUTHOR.LAST_NAME)
            .having(count().gt(5)).orderBy(AUTHOR.LAST_NAME.asc().nullsFirst()).limit(2).offset(1).forUpdate()
            .of(AUTHOR.FIRST_NAME, AUTHOR.LAST_NAME);
}

然而,我正在寻找一种方法来标记这样的代码non-autoformat,例如。

//non-format
public void fluentInterfaceJooqDemo() {
    ...
}

2
也许这个链接可以帮到你:https://dev59.com/vXI-5IYBdhLWcg3wf4hD - Sotirios Delimanolis
你可以选择要格式化的部分,然后按下 CTRL + SHIFT + f 键,这样只有选定的部分会被格式化。 - Roman Vottner
就我个人而言,我认为鼓励编写“糟糕代码”的工具并不是很出色。 :) - pamphlet
3个回答

10

我认为您可以使用 @formatter:off@formatter:on

// @formatter:off
public void fluentIterfaceThingy() { 
...
}
// @formatter:on

在代码样式部分可能需要打开此选项:Window->Preferences->Java->Formatter->Edit->On/Of Tags


谢谢,如何打开这个选项? - Mark
@Mark - 编辑以突出那里。 - Todd

1

是的,这可以在Eclipse中进行配置。您还可以重新定义开/关关键字。

enter image description here


0

我不确定是否需要额外的配置(我们公司有定制的Eclipse),但这对我有效:

// @formatter:off // @formatter:on


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