はじめに
どうも、ikasumi1503です。KotlinのリンターシリーズのKtlint編です。Kotlin開発においてKtlintを使ってコードのフォーマットをしていきたい場面は多いかと思います。そこで、本記事ではKtlintの簡単な設定方法をまとめていこうと思います。
導入方法
導入方法を次の4つに分けて説明していこうと思います。
- リンタールールの設定方法
- Ktlint Pluginの導入(開発中のフォーマット)
- 手動で実行できるようにする
- GitHub Actions連携
1. リンタールール自体の設定方法
ktlintはリンタールールを直接設定しなくともkotlinの公式ガイドラインに基づいた設定をしてくれます。設定しなくてもいいという方は、次の段落へ進んでください。
まずプロジェクトルート直下に.editorconfigを作りましょう。
左上のプロジェクトの表示方法のポップアップがあるので、これをProjectまたはProject Filesにします。

そしてルートディレクトリに.editorconfigを追加しましょう。

.editorconfig内に適当に書いていきます
root = true
[*]
indent_style = space
indent_size = 4
charset = utf-8
end_of_line = lf
insert_final_newline = true
2. Ktlint Pluginの導入(開発中にリンターをかける)
Android StudioのPluginsを開きましょう。
左上のメニュー > File > Settings > Plugins
次に、検索バーで「ktlint」と入力すると一番上にKtlintが出てくるのでこれをインストールしてIDEを再起動しましょう。これで書いている途中でおかしなコードがあればエラーを出してくれます。
次にリンターを有効にしましょう
左上のメニュー > File > Settings > Tools > KtLint
“Distract Free” モードを有効にしてOKを押すとリンターが有効化されます。
3. 手動で実行できるようにする
プロジェクトのbuild.gradle.ktsを開きましょう。見つからないという方はshiftキーを2回押してなんでも検索によってこのファイルを見つけ出しましょう。
// プロジェクト構成:
your-project/
├─ build.gradle.kts ← ×
├─ settings.gradle.kts
├─ app/
│ └─ build.gradle.kts ← 〇ここです
見つけたら、早速プラグインを入れます。
plugins {
id("org.jlleitschuh.gradle.ktlint") version "11.6.0" // バージョンは都度合わせていきましょう
}
次にリンターのふるまいを設定します。上のプラグインを入れてSync Nowボタンで設定を適用させてから出ないと、この設定が見つからないよと言われるのですが、同時に入れてから適用させても問題ありません。
ktlint {
android.set(true)
outputToConsole.set(true)
ignoreFailures.set(false)
}
この設定の意味については他投稿者様の記事が参考になります。
これで右上に出ているSync nowをクリックすると、設定が適用されます。
そして、プロジェクトルートで次のコードを実行して成功したら導入できています。
./gradlew ktlintCheck # スタイル違反のチェック
./gradlew ktlintFormat # 自動整形
以上のコマンドでCLIに警告内容が出力されます(レポートファイルは出力されません)。
4.GitHub Actions連携
.github/workflows/ にGitHub Actionsワークフローを作成しましょう。
ファイル内容は長いので次のレポジトリ内に入れています。あくまで例としてAIに吐き出させたものを使っています。一応私の環境では動作確認済みです。
https://github.com/ikasumi1503/KtlintSample
ktlint_example.yml ... プルリクエストしたら、Ktlintを実行してワークフローのコンソール内で警告内容をXML形式で吐き出しています。
ktlint_reviewdog_example.yml ... 一応reviewdogバージョンも出しておきます。プルリクエストしたら警告内容をPRコメントにばらまきます。
以上のファイルがmainブランチにないと機能しない点にご注意ください。
おわりに
以上がKtlintの簡単な設定方法です。ぜひ試してみてください。
