配置 IntelliJ 以使用与 Spotless 相同的 Java 格式化程序
Posted
技术标签:
【中文标题】配置 IntelliJ 以使用与 Spotless 相同的 Java 格式化程序【英文标题】:Confgure IntelliJ to use the same Java formatter as Spotless 【发布时间】:2020-05-02 09:49:35 【问题描述】:我使用Spotless Gradle plugin 来确保我的应用程序中Java 代码的格式一致。 build.gradle
中的相关条目是
plugins
id "com.diffplug.gradle.spotless" version "3.27.0"
spotless
java
// The available versions of the Eclipse JDT formatter are defined here
// https://github.com/diffplug/spotless/tree/master/lib-extra/src/main/resources/com/diffplug/spotless/extra/eclipse_jdt_formatter
eclipse('4.13.0')
indentWithSpaces()
removeUnusedImports()
有什么方法可以配置 IntelliJ 以使用相同的格式设置?
【问题讨论】:
我会在 IntelliJ 论坛上问这个问题,因为了解它的开发人员最好定期跟踪这些论坛。 【参考方案1】:不是 100% 令人满意但可行的方法:
1.配置 Spotless 任务
spotless
format 'misc',
target '*.properties','*.gradle', '*.md', '.gitignore' // etc.
// code style rules
java
// code style rules
2。将任务激活添加到*Apply
任务
3.为Build Project
分配方便的击键
在Settings > Keymap
下执行此操作。
请记住,Build Project
正在使用 IntelliJ 的内部构建器。它是增量的(高性能),但在自定义/第三方 gradle 任务的情况下,构建结果可能会偏离 $ gradle build
结果。
对于使用 DevTools 的 Spring 应用程序,构建将导致自动提供更改/更新。
使用 IDE Hook,为 IntelliJ 实现专用的 Spotless 格式化程序插件应该相当简单: https://github.com/diffplug/spotless/blob/master/plugin-gradle/IDE_HOOK.md
到目前为止,我还没有找到。
【讨论】:
已经一年了,令人惊讶的是,IDEA 中仍然没有一尘不染的插件,令人惊讶的是,它似乎不应该那么难实现。无论如何,运行 Gradle 任务听起来并不是一个坏主意,您可以通过这种方式挂钩其他清理任务。一项改进可能是使用idea-ext
插件来设置挂钩,而无需使用 UI。【参考方案2】:
虽然 Tob 的方法有效,但我使用了一些不同的配置方式。
1。在首选项中创建一个外部工具
2。为创建的外部工具分配快捷方式
我更喜欢使用⌘
+ ⌥
+ ;
,因为它很容易记住(IDEA 默认使用⌘
+ ⌥
+ L
)。
3。使用它
按⌘
+ ⌥
+ ;
并等待所有文件处理完毕,IDE 重新加载更改的文件。通常需要 2-5 秒。
警告:spotless 可能会崩溃(这通常是由于代码中的错误而发生的,因此请确保您的代码是可编译的):
【讨论】:
以上是关于配置 IntelliJ 以使用与 Spotless 相同的 Java 格式化程序的主要内容,如果未能解决你的问题,请参考以下文章