Apache Camel和Intellij Idea代码格式

wel*_*ell 9 java intellij-idea apache-camel

Intellij Idea在camel路由中格式化代码,如下所示:

from("direct:loop")
     .log("Loop: ${header[loopCount]}")
     .choice()
     .when(simple("header[loopCount] < 10"))
     .process(exchange -> {
         Message in = exchange.getIn();
         in.setHeader("loopCount", in.getHeader("loopCount", Integer.class) + 1);
     })
     .to("direct:loop")
     .otherwise()
     .log("Exiting loop")
     .end();
Run Code Online (Sandbox Code Playgroud)

是否有任何插件或其他方法可以这样做:

from("direct:loop")
 .log("Loop: ${header[loopCount]}")
 .choice()
     .when(simple("header[loopCount] < 10"))
         .process(exchange -> {
             Message in = exchange.getIn();
             in.setHeader("loopCount", in.getHeader("loopCount", Integer.class) + 1);
         })
         .to("direct:loop")
     .otherwise()
         .log("Exiting loop")
 .end();
Run Code Online (Sandbox Code Playgroud)

Tad*_*ato 6

我不认为还有一个很好的插件可以根据需要格式化Java DSL代码.

最多我们只能禁用Java代码中特定DSL部分的格式化.我建议在IntelliJ IDEA中使用Camel DSL路由的格式化器开/关功能:

// @formatter:off
...
// @formatter:on
Run Code Online (Sandbox Code Playgroud)

您可以Formatter ControlPreferences...- > Editor- >中找到设置Code Style(截至2017.2.3).

有关IntelliJ功能的更多详细信息,请参阅其他StackOverflow问题:
如何使用注释禁用部分代码的代码格式化?


Cla*_*sen 5

Camel IDEA插件有一张关于此的票:https://github.com/camel-idea-plugin/camel-idea-plugin/issues/309

您可以使用+1来表示所需的内容.

我个人也希望有这样的功能,但没有太多的业余时间来处理这个问题,因为我忙于正常工作,还完成了我的骆驼书.