「コーディングスタイルを統一する」ためのIntelliJ IDEAの設定ファイルのGit共有管理手順
本エントリでは、チーム開発でIntelliJ IDEAを使う場合に、
コーディングスタイルを統一するために必要な設定の手順を示します。
この手順では「.idea」配下のファイルをGitで共有しますが、
本手順の前に、最低限Git管理に追加しておくファイルは以下のエントリを参考にしてください。
Gitで共有管理すべきIntelliJ IDEAの設定ファイルのメモ
http://takemikami.com/2018/08/29/GitIntelliJ-IDEA.html
CodeStyle定義ファイルの入手
ここではGoogleStyleを適用するので、以下から定義ファイルをダウンロードしておきます。
GoogleStyle:
https://github.com/google/styleguide/blob/gh-pages/intellij-java-google-style.xml
適用するコーディングスタイルの設定
まず初めにコーディングスタイルの設定を行います。
Preferences → Editor → Code Style
と選ぶと、以下のような画面が表示されます。
ここではプロジェクト用のCode Styleを設定するので、
SchemeをProjectに変更した後、
歯車ボタン → ImportScheme → IntelliJ IDEA code style XML を選び
適用したいCodeStyoleの定義ファイル(先ほどのGoogleStyleのファイル)を読み込みます。
「.idea/codeStyles/」配下に指定した定義が反映されていることを確認しておきます。
ファイル保存時にフォーマットを適用
以上の設定で、
Option + Command + L を押すと、定義通りReformatされるようになりますが。
ここでは、
ファイル保存時に自動でReformatさせるため「Save Actions」プラグインを導入します。
# diffを見やすくするため、formatを強制させる意図です。
Preferences → Plugins → Browse Repositoriesを開き、
「Save Actions」を検索し、プラグインをインストールします。
プラグインをインストールした後、
Preferences → Other Settings → Save Actions
と選ぶと、以下のような画面が表示されます。
ここでは、以下の設定にチェックを入れておきます。
- Activate save actions on save
- Reformat file
# 設定は一例なので、必要に応じて変更してください。
ここまでの手順で設定を行うと、
「.idea/saveactions_settting.xml」というファイルが生成されています。
実際のファイルは以下のようになっています。
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="SaveActionSettings">
<option name="actions">
<set>
<option value="activate" />
<option value="reformat" />
</set>
</option>
<option name="configurationPath" value="" />
</component>
</project>
またプロジェクトに必要なプラグインとして、
Preferences → Build, Execution, Deployment → Required Plugin
にも「Save Actions」プラグインを追加しておきます。
これは「idea/externalDependencies.xml」というファイルに設定が保存されます。
設定ファイルのGitへの追加
ここまでの手順で生成された設定ファイルをGit管理に追加します。
具体的には以下のファイルを追加することになります。
- .idea/codeStyles/codeStyleConfig.xml
- .idea/codeStyles/Project.xml
- .idea/saveactions_settting.xml
- .idea/externalDependencies.xml
「.gitignore」ファイルは、以下のようなイメージになります。
.idea/*
!.idea/gradle.xml
!.idea/misc.xml
!.idea/codeStyles
!.idea/saveactions_settting.xml
!.idea/externalDependencies.xml