You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在IntelliJ IDEA中为Kotlin配置提交前自动格式化代码钩子?

配置Kotlin代码自动格式化Pre-Commit Hook

方案1:用Gradle Spotless插件 + Git原生Hook

Spotless是支持多语言的代码格式化插件,内置ktfmt(Google开源Kotlin格式化工具),适合Gradle项目。

步骤1:配置Spotless插件

在项目根目录的build.gradle.kts中添加:

plugins {
    id("com.diffplug.spotless") version "6.25.0"
}

spotless {
    kotlin {
        ktfmt() // 使用Google的ktfmt规则
        // 若需自定义规则,可添加ktfmt().config(mapOf("indent_style" to "space", "indent_size" to "4"))
    }
}

执行./gradlew spotlessApply测试,确认代码能被正确格式化。

步骤2:编写Pre-Commit Hook脚本

  1. 进入项目的.git/hooks目录,复制pre-commit.sample文件并重命名为pre-commit(删除.sample后缀)。
  2. 打开pre-commit文件,替换原有内容为:
#!/bin/sh

# 执行Spotless格式化命令
./gradlew spotlessApply

# 将格式化后的代码重新暂存到Git
git add .

exit 0
  1. 给脚本添加执行权限:
chmod +x .git/hooks/pre-commit

方案2:用pre-commit框架 + ktfmt钩子

pre-commit是跨语言的Hook管理工具,方便团队统一维护Hook配置。

步骤1:安装pre-commit

通过pip安装(需先安装Python环境):

pip install pre-commit

步骤2:配置Hook规则

在项目根目录创建.pre-commit-config.yaml文件,内容如下:

repos:
-   repo: ktfmt官方pre-commit钩子仓库
    rev: v0.46 # 替换为最新版本号
    hooks:
    -   id: ktfmt

步骤3:安装Hook到Git

执行命令完成Hook安装:

pre-commit install

步骤4:验证效果

执行pre-commit run --all-files测试全量代码格式化,后续每次执行git commit时,工具会自动格式化暂存的Kotlin文件。

同步IntelliJ IDEA格式化规则

为了避免本地手动格式化和Hook格式化规则不一致,可在IntelliJ中安装ktfmt插件:

  1. 打开Settings > Plugins,搜索ktfmt并安装。
  2. 进入Settings > Tools > ktfmt,勾选Enable ktfmt,确保和Hook使用相同的规则版本。

内容的提问来源于stack exchange,提问作者Makruzz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 11:16:01