📜  使用 ktlint 在 Kotlin 中进行代码格式化

📅  最后修改于: 2022-05-13 01:55:47.254000             🧑  作者: Mango

使用 ktlint 在 Kotlin 中进行代码格式化

众所周知,谷歌特别推荐用于 android 应用程序开发的 kotlin 语言,当然,它使 android 应用程序开发人员的生活更轻松。但是,如果您是该领域的初学者,那么您可能不知道您需要以所需的格式编写代码。它对开发人员绝对有帮助,但如果你不熟悉如何使用 Kotlin 编写干净的代码,那么不用担心你不需要学习一些东西来实现这一点,相反,你只需要使用用于相同的ktlint目的。

使用它的好处

  • Ktlitn 可以节省您的时间
  • 它可以节省您的精力(因为您不必手动检查代码样式)
  • 它可以简化您的流程

我们可以用 ktlint 做什么?

在此之前,我们先说一些重要的东西,比如 ktlint 分解成两件事。

  1. linting 工具: lining 工具基于 kotlin 标准样式指南,它将验证并确保您的代码符合该样式指南。
  2. 格式化程序:如果 ktlint 检测到您的代码中存在问题,您可以运行格式化程序并让 ktlint 尝试自动为您修复这些问题。

我们如何实现它?

  • 将 ktlint 添加到您的项目中,更具体地说,我们将 ktlint 与 ktlint Gradle 插件集成,这是一个独立的第三方插件,位于基本 ktlint 工具之上,通过提供开箱即用的 Gradle,使用 ktlint 变得非常容易用于运行 ktlint 命令的任务。
  • 有几个选项,但最简单的方法是使用 ktlint-Gradle 插件,它为 ktlint 的工具提供开箱即用的 Gradle 任务

将 ktlint 添加到您的 Android 项目中

  • 要添加 ktlint-gradle 插件,只需将 ktlint-gradle 插件添加到您的根级 build.gradle 文件
  • 对于将插件应用到子项目只需将 ktlint-gradle 插件应用到您想要检查的任何 Gradle 模块
  • 将添加的 Gradle 任务验证为 检查是否已为您的各种构建目标添加了 ktlintCheck 和 ktlintFormat 任务

添加 ktlint-gradle 插件

如果使用支持插件 DSL 的 Gradle 版本,您可以使用以下代码将 ktlint-gradle 添加到您的项目中:

Kotlin
// root-level build.gradle
plugins {
    id "org.jlleitschuh.gradle.ktlint" version "7.1.0"
}
 
// root-level build.gradle
buildscript {
  repositories {
    maven {
      url "https://plugins.gradle.org/m2/"
    }
  }
  dependencies {
    classpath "org.jlleitschuh.gradle:ktlint-gradle:7.1.0"
  }
}


Kotlin
// root-level build.gradle
allprojects {
    ...
    apply plugin: "org.jlleitschuh.gradle.ktlint"
}


将 ktlint-Gradle 插件应用于所有子项目

您需要将 ktlint-gradle 插件应用于项目中的各个模块。您可以使用根级 build.gradle 文件中的 allProjects{} 块来执行此操作。

科特林

// root-level build.gradle
allprojects {
    ...
    apply plugin: "org.jlleitschuh.gradle.ktlint"
}

测试添加的 Gradle 任务

最后,您需要测试 ktlint Gradle 任务现在是否可供使用。你可以通过这些方式

  • 从命令行运行 ./gradlew 任务并查找任何 ktlint 任务
  • 尝试从命令行运行 ./gradlew ktlintCheck
  • 使用 IntelliJ 或 Android Studio 中的 Gradle 工具窗口查看是否列出了任务

要实际检查代码的格式,请从命令行运行以下命令:

要自动修复 ktlintCheck 报告的任何错误,您可以从命令行运行以下命令:

当所有内容都正确格式化后,您应该在运行 ktlintCheck 时看到类似下图的内容。 ktlint 是一个由 Pinterest 维护的开源项目,您可以找到更多信息。点击这里。