IntelliJの自動整形でimportのwildcardを使わないようにする

Posted on 2025/08/20

前回のエントリー では休職について記載しましたが、現在、無事職に着くことができています。

さて、そのプロジェクトでの話ですが、CIでKotlinコードに対してktlintでソースコードのチェックを行っています。
ルールは(ほぼ)デフォルト設定を用いているのですが、このデフォルト設定とIntelliJ IDEAのデフォルト設定が競合するルールがあります。
つまり、IntelliJ IDEAの設定でフォーマットをかけると、CIが失敗してしまいます。

具体的に引っかかったのは、タイトルにある通り、importのwildcard(*)利用です。
IntelliJ IDEAのデフォルト設定では、5個以上同じパッケージのクラスをimportしようとした場合に * でまとめられます(Editor > Code Style > Kotlin > Imports 設定より)。

しかし、ktlintのデフォルト設定では standard:no-wildcard-importsが有効になっており、wildcard利用は禁止されています。

なので、IntelliJ IDEAの設定を変えないといけないのか、と思っていたのですが、ktlintの公式ドキュメントに対応方法が書いてありました。

ということで、 .editorconfig にリンク先の通り設定を行うか、 ktlint-intellij-plugin をインストールすればktlint設定の通り整形してくれるようです。

ちなみに、ktlint関係なしにimportの * を使わないようにしたい場合は、前述の設定 Editor > Code Style > Kotlin > Imports で値を極端に大きく設定すれば良さそうです。