基本上,我想从IntelliJ 导出代码样式设置(默认值很好)并在Checkstyle中使用它们。 (它是已经设置的maven构建验证类型的东西,但我们想要使用IntelliJ的代码样式,而不是Sun或Google)
第一步应该是导出IntelliJ代码样式。说起来容易做起来难,但似乎。
现在,我知道在SO和其他地方都有很多这方面的材料,但是我根本找不到代码样式的xml文件,甚至在使用" copy之后也是如此项目"或者"另存为..."在IntelliJ设置代码样式对话框中。
我也尝试通过IntelliJ文件菜单导出代码样式,但它只会从已更改的区域导出代码样式(例如,将标签空间从4更改为2,它只会导出" OTHER_INDENT_OPTIONS"代码风格的一部分。)
我应该补充一点,我使用的是IDEA 14.1.4。
是否可以导出完整的IntelliJ代码样式?
答案 0 :(得分:5)
不幸的是,不可能做到你想要的(至少)三个原因,前两个你已经提出过:
虽然可以使用文件 - >设置 - >代码样式 - > Java-> {点击设置图标} - >选择导出,从Intellij IDEA导出代码样式文件...从弹出菜单,导出的XML文件仅包含您从默认设置所做的更改。
这些导出的设置的格式只对Intellij有意义,因此即使您可以将每个Java代码样式设置导出到XML文件,您也必须大量编辑该文件以使其有意义到CheckStyle。
最后,请注意,Intellij有一个打开请求,可以完全按照您的意愿执行操作。请参阅IDEA-149529:
缺乏代码样式的当前导出功能。只有用 对于IntelliJ的其他用户或作为备份。只导出差异 在用户定义的设置和内置默认值之间。 这就是它 很难为其他人制作匹配的风格 格式化/美化工具。
如果导出可以选择导出ALL,那将会很有帮助 设置IDEA使用。
然而,还有另一种方法。而不是向Checkstyle提供Intellij IDEA文件,而是向Intellij IDEA提供Checkstyle文件......
安装Checkstyle插件,然后在Intellij IDEA中打开两组一个或多个重复文件,一组配置为使用IDEA的格式,一组配置为Checkstyle的格式。
反复调整Checkstyle设置,直到其打开的文件格式化为符合IDEA格式化的相应文件。当文件集匹配时,创建一个Checkstyle XML规则文件。单调乏味,但只有一次活动。
最后,您可以使用导入方案 - >将自定义的CheckStyle XML规则文件导入Intellij Idea。 CheckStyle配置,如下面的屏幕截图所示(当且仅当您安装了 CheckStyle-IDEA 插件时)。创建OP时,此功能不存在。有关详细信息,请参阅以下错误报告:IDEA-61520 Codestyle from Checkstyle,特别是JetBrains日期为2/8/16的回复。
另见:
Intellij IDEA错误Configure code style from checkstyle #126
SO post IntelliJ IDEA code format from checkstyle configuration
答案 1 :(得分:0)
我也在寻找答案。我想您想像我一样将其添加到构建过程中。由于我认为强制执行某些无法自动化的操作没有任何价值,因此我决定(尚未实现)将样式格式程序作为预提交挂钩(我使用git)https://www.jetbrains.com/help/idea/command-line-formatter.html来执行更改列表。我也使用默认值,这就足够了。
由于我没有任何自定义设置,因此我不知道除了xml中的diff之外,是否还会运行导出的代码样式xml。无论哪种方式,强制执行无法自动化的代码样式规则都是没有意义的。