【问题标题】:Confgure IntelliJ to use the same Java formatter as Spotless配置 IntelliJ 以使用与 Spotless 相同的 Java 格式化程序
【发布时间】: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 论坛上问这个问题,因为了解它的开发人员最好定期跟踪这些论坛。

标签: java intellij-idea spotless


【解决方案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 可能会崩溃(这通常是由于代码中的错误而发生的,因此请确保您的代码是可编译的):

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 2012-05-28
    • 2014-11-29
    • 1970-01-01
    • 2019-03-30
    • 2020-06-25
    相关资源
    最近更新 更多