在 Checkstyle 中使用 IntelliJ 代码样式

Use IntelliJ code style in Checkstyle

本质上,我想从 IntelliJ 导出代码样式设置(默认的就可以)并在 Checkstyle 中使用它们。 (它用于已经设置好的 Maven 构建验证之类的东西,但我们想使用 IntelliJ 的代码风格,而不是 Sun 或 Google 的)

第一步应该是导出 IntelliJ 代码风格。说起来容易做起来难。

现在,我知道在 SO 和其他地方有很多关于此的 material,但是 我根本找不到任何地方的代码样式 xml 文件,甚至在 IntelliJ 设置代码样式对话框中使用 "copy to project" 或 "save as..." 之后也不行。

我也尝试通过 IntelliJ 文件菜单导出代码样式,但它只会从已更改的区域导出代码样式(例如更改选项卡space从 4 到 2,它只会导出代码样式的 "OTHER_INDENT_OPTIONS" 部分。

我应该补充一点,我使用的是 IDEA 14.1.4。

是否可以导出完整的IntelliJ代码风格?

不幸的是,由于(至少)三个原因,您无法做您想做的事,其中前两个您已经提出:

  1. 虽然可以使用 File->Settings->Code Style->Java->{Click the Settings icon 从 Intellij IDEA 导出代码样式文件}->Select 从弹出菜单导出...,导出的 XML 文件仅包含您对默认设置所做的更改。

  2. 这些导出设置的格式只对 Intellij 有意义,所以即使您可以将每个 Java 代码样式设置导出到 XML 文件,您然后将不得不大量编辑该文件以使其对 CheckStyle 有意义。

  3. 最后,请注意,有一个公开请求要求 Intellij 完全按照您的意愿行事。参见 IDEA-149529:

Current export functionality for Code Styles is lacking. Only useful for other users of IntelliJ or as a backup. Only exports the diff between user defined settings and the built-in default. This makes it very difficult to produce a matching style for other formatting/beautification tools.

It would be helpful if the export had the option of exports ALL the settings IDEA uses.

但是,还有另一种方法。不是向 Checkstyle 提供 Intellij IDEA 文件,而是向 Intellij IDEA 提供 Checkstyle 文件...

  1. 安装Checkstyle插件,然后在Intellij IDEA中打开两组一个或多个重复的文件,一组配置为使用IDEA的格式,一组配置为Checkstyle的格式。

  2. 反复调整Checkstyle设置,直到其打开的文件格式符合IDEA格式化的相应文件。当文件集匹配时,创建一个 Checkstyle XML 规则文件。乏味,但只有一次 activity.

  3. 最后,您可以使用 Import Scheme -> CheckStyle Configuration 将自定义的 CheckStyle XML 规则文件导入 Intellij Idea,如图所示在下面的屏幕截图中(如果且仅当您安装了 CheckStyle-IDEA 插件)。创建 OP 时此功能不存在。有关详细信息,请参阅以下错误报告:IDEA-61520 Codestyle from Checkstyle,特别是 JetBrains 于 2016 年 2 月 8 日的回复。

另请参阅:

我也在寻找这个问题的答案。我想你想像我一样将它添加到你的构建过程中。由于我认为强制执行无法自动化的事情没有任何价值,因此我决定(尚未实施)执行样式格式化程序作为预提交挂钩(我使用 git)https://www.jetbrains.com/help/idea/command-line-formatter.html 反对更改列表中的所有文件。我也用默认的,这就够了。

由于我没有任何定制,我不知道导出的代码样式 xml 除了 xml 中的差异之外是否会 运行 默认。无论哪种方式,都没有必要强制执行无法自动化的代码样式规则。