Apache Camel 和 Intellij Idea 代码格式

Posted

技术标签:

【中文标题】Apache Camel 和 Intellij Idea 代码格式【英文标题】:Apache Camel and Intellij Idea code format 【发布时间】:2018-03-16 06:30:53 【问题描述】:

Intellij Idea 像这样格式化骆驼溃败中的代码:

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();

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

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();

?

【问题讨论】:

见jetbrains.com/help/idea/configuring-code-style.html close voter - 为什么这离题了?这是一个关于 DSL 和编程工具的明确问题。如果您不理解问题,请询问原因。 @well - 我从来没有找到这样做的方法,所以不要格式化代码。很高兴在 DSL 代码中有缩进......只是永远不要使用自动格式功能。 【参考方案1】:

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

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

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

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

有关 IntelliJ 功能的更多详细信息,请参阅其他 *** 问题,例如:How to disable code formatting for some part of the code using comments?

【讨论】:

是的,我之前已经找到了这个解决方案,但我认为应该有更好的方法来做到这一点。感谢您的回答。【参考方案2】:

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

您可以使用 +1 来表示它想要的东西。

我个人也很想拥有这样的功能,但由于我忙于日常工作,并且还在完成我的骆驼书,所以没有太多空闲时间来做这件事。

【讨论】:

以上是关于Apache Camel 和 Intellij Idea 代码格式的主要内容,如果未能解决你的问题,请参考以下文章

[每日一学]apache camel|BDD方式开发apache camel|Groovy|Spock

ServiceMix 中 Apache-Camel 路由的管理和监控

Apache Camel

Apache Kafka 和 Camel 之间的区别(代理与集成)

[每日一学]apache camel|XSLT|SAXON

Apache Camel 2.18中的IN子句