是否有可能在eclipse中标记java代码的一部分而不是自动格式化?

时间:2014-01-08 15:02:10

标签: java eclipse formatting format autoformatting

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() {
    ...
}

3 个答案:

答案 0 :(得分:10)

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

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

可能必须在代码样式部分启用此选项:Window->Preferences->Java->Formatter->Edit->On/Of Tags

答案 1 :(得分:1)

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

enter image description here

答案 2 :(得分:0)

我不确定是否需要其他配置(我们公司有定制的日食)但这对我有用:

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