如何使用 Gradle 将 KtLint 样式添加到 Android Studio?
How do I add KtLint style to Android Studio using Gradle?
我想将 ktlint
使用的样式添加到 Android Studio,这样当我自己应用格式时它会使用 ktlint
样式。
根据文档,我安装了 ktlint
CLI
brew install ktlint
然后我导航到项目的根目录并执行
ktlint --android applyToIDEAProject
样式现在出现在我的使用偏好中。
问题是通过 CLI 应用的样式使用了我认为是 ktlint
的最新版本,因为我的手动格式与 Gradle
task.I 更喜欢的格式不同它使用了 Gradle
插件的样式,因此应用于项目的样式与 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 插件之一并看到了这个文件。对我来说,它看起来像是主库的包装器,所以它一定可以不使用第 3 方插件。 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?
这里抛出的是
我的 gradle 文件位于项目的根目录中,所以此时我不确定下一步该做什么。
我设法让这个工作。这是最终的任务定义
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
样式
我想将 ktlint
使用的样式添加到 Android Studio,这样当我自己应用格式时它会使用 ktlint
样式。
根据文档,我安装了 ktlint
CLI
brew install ktlint
然后我导航到项目的根目录并执行
ktlint --android applyToIDEAProject
样式现在出现在我的使用偏好中。
问题是通过 CLI 应用的样式使用了我认为是 ktlint
的最新版本,因为我的手动格式与 Gradle
task.I 更喜欢的格式不同它使用了 Gradle
插件的样式,因此应用于项目的样式与 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 插件之一并看到了这个文件。对我来说,它看起来像是主库的包装器,所以它一定可以不使用第 3 方插件。 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?
这里抛出的是
我的 gradle 文件位于项目的根目录中,所以此时我不确定下一步该做什么。
我设法让这个工作。这是最终的任务定义
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
样式