【问题标题】:How do I add KtLint style to Android Studio using Gradle?如何使用 Gradle 将 KtLint 样式添加到 Android Studio?
【发布时间】:2020-02-02 21:45:54
【问题描述】:

我想将ktlint 使用的样式添加到Android Studio,这样当我自己应用格式设置时,它就会使用ktlint 样式。

根据文档,我安装了ktlint CLI

brew install ktlint 

然后我导航到项目的根目录并执行

ktlint --android applyToIDEAProject

样式现在出现在我的使用偏好中。

问题是通过 CLI 应用的样式使用我认为是最新版本的 ktlint,因为我的手动格式化与格式化 Gradle 任务不同。如果它使用 @987654332 中的样式,我会更喜欢@plugin 因此应用于项目的样式与Gradle 任务在格式化时使用的样式相同。

最后,我希望它是一个 Gradle 任务,以便其他开发人员可以导入和应用与我创建钩子相同的样式。

下面是我的“ktlint”Gradle 文件

dependencies {
    ktlint "com.pinterest:ktlint:0.34.2"
}


task ktlint(type: JavaExec, group: "verification") {
    description = "Check Kotlin code style."
    classpath = configurations.ktlint
    main = "com.pinterest.ktlint.Main"
    args "src/**/*.kt"
}

check.dependsOn ktlint

task ktlintFormat(type: JavaExec, group: "formatting") {
    description = "Fix Kotlin code style deviations."
    classpath = configurations.ktlint
    main = "com.pinterest.ktlint.Main"
    args "-F", "src/**/*.kt"
}

更新 1

我查看了其中一个可用的 Gradle 插件并看到了这个文件。对我来说,它看起来像是主库的包装器,因此必须可以不使用 3rd 方插件。 https://github.com/JLLeitschuh/ktlint-gradle/blob/master/plugin/src/main/kotlin/org/jlleitschuh/gradle/ktlint/KtlintApplyToIdeaTask.kt

我使用的版本是 0.34.2,与最新版本相比,似乎后来添加了对这些命令的支持,如下所示https://github.com/pinterest/ktlint/blob/master/ktlint/src/main/kotlin/com/pinterest/ktlint/Main.kt#L49

根据这些信息,我添加了这个 Gradle 任务,它已经取得了进展,但仍然失败。

task addKtLintStyle(type: JavaExec, group: "formatting") {
    description = "yep"
    classpath = configurations.ktlint
    main = "com.pinterest.ktlint.Main"
    args "--android", "applyToIDEA"
}

因为这个错误而失败

.idea directory not found. Are you sure you are inside project root directory? 

扔在这里

https://github.com/pinterest/ktlint/blob/master/ktlint/src/main/kotlin/com/pinterest/ktlint/internal/ApplyToIDEACommandHelper.kt#L27

我的 gradle 文件位于项目的根目录中,所以我现在不确定下一步该做什么。

【问题讨论】:

标签: android gradle ktlint


【解决方案1】:

我设法让它工作。这是最终的任务定义

task addKtLintStyle(type: JavaExec, group: "formatting") {
    description = "Adds The KtLint Style To Your IDE"
    classpath = configurations.ktlint
    main = "com.pinterest.ktlint.Main"
    args "--android", "applyToIDEA", "-y"
    //Point to the root directory because this task needs access to the .idea directory
    workingDir(getRootDir())
}

注意这一行

    //Point to the root directory because this task needs access to the .idea directory
    workingDir(getRootDir())

还有

    args "--android", "applyToIDEA", "-y"

-y 只接受应用的样式。

重启Android Studio后,可以看到ktlint样式

【讨论】:

    猜你喜欢
    • 2015-12-26
    • 1970-01-01
    • 2013-11-12
    • 1970-01-01
    • 1970-01-01
    • 2015-08-02
    • 2021-05-04
    • 2014-01-09
    • 1970-01-01
    相关资源
    最近更新 更多