如何根据.editorConfig文件格式化Java代码?

3
在一个 Maven 项目(后端 Java + 前端 Angular)中,我想添加一种编码风格并自动格式化代码(多种文件类型),例如通过 Git 预提交钩子或/和在编译时完成。
我找到了一些与代码风格相关的插件: 但是每个解决方案都存在问题(仅适用于 Java,没有 Java Linter 或有主观偏见)。尤其适用于包含许多不同语言的项目,.editorConfig 似乎是最完整的配置文件。
不幸的是,唯一处理 .editorconfig 的插件 editorconfig-maven-plugin 不处理 Java,该插件只配备了 YAML 和 XML Linter。

问题1:我们能为editorconfig-maven-plugin配置一个Java代码检查工具吗?有没有一个可以参考的基础来编写这样一个工具?

问题2:除了.editorConfig之外,还有其他工具可以处理基于.editorConfig的Java代码格式化吗?

欢迎任何解决方案,即使不与Maven插件集成。


很遗憾,Idea Intellij团队告诉我他们暂时不会提取Java Linter(使用.editorconfig)因为这将会很复杂(依赖于插件管理系统),请求没有足够的投票。 - user2668735
2个回答

0

0

很遗憾,editorconfig-maven-plugin目前不支持Java:目前该插件支持强制执行其他语言(如XML和YAML)的编码风格规则。

有不同的Maven插件支持Java Linting,例如maven-checkstyle-pluginPMD plugin

如果您正在寻找一种基于.editorConfig处理Java格式的工具,那么有几个选项:

  1. 使用Eclipse IDE和Eclipse Code Formatter插件。

  2. 使用IntelliJ IDEA IDE和EditorConfig插件。

  3. 单独的命令行工具,例如JHipster代码生成器或Jalopy代码格式化程序。这些工具可以轻松地集成到Maven构建过程中,根据.editorConfig规则自动格式化Java代码。


目标是不依赖任何IDE。我看到我们可以使用Intellij作为二进制文件,并使用CLI格式化代码,但300Mo的二进制文件是不可接受的。Jalopy似乎已经8年没有维护了。对于JHipster,我不理解,他们没有提供任何代码格式化工具。 - user2668735
这不是听起来有点争议吗:你想要在任何编辑器之外使用 __editor__Config 文件。在我看来,这个文件并不适用于 linting(我认为它只是定义了缩进和简单的规则)。在 maven-checkstyle-plugin 配置中设置相同的缩进规则,并将其用作更传统的方式可能会更容易些。 - diziaq
我认为.editorconfig文件已经成为一种标准,不再与任何工具相关。这种格式的好处是可以描述许多语言。Checkstyle插件只能提供Java代码的规则,并且只能格式化Java代码。 - user2668735

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接