チーム開発でInteliJとEclipseを使う場合の注意点調査(work in progress)

InteliJやEclipseではデフォルトの設定だとフォーマットをかけたときに微妙に差があり、gitで細かい差分がでることがあるのが気になっていますのでこのあたりの動きを調べてみたいと思います。

import

Organize Imports

InteliJで"File -> Settings -> Editor -> CodeStyle -> Java"でImportsタブのImort LayOutを見てみるとデフォルトでは以下のようになっています。

import all other imports
<blank line>
import javax.*
import java.*
<blank line>

同様の設定をEclipseで見る場合はプロジェクトを右クリックし"Properties -> Java Code Style -> Organaize Imports"と進みます。デフォルトでは以下のようになっているかと思います。

java
javax
org
com

InteliJとEclipseの設定を比べてみると、InteliJではjavax,javaのパッケージがそれ以外のパッケージの下に来るようになっていますが、Eclipseではjava,javaxのパッケージが上に来るようになっています。

例えば、WindowsのInteliJで"Ctrl + Alt + o"でパッケージ最適化の結果が以下のようになっている場合、

import jp.co.teruuu.parser.common.type.Tuple2;
import jp.co.teruuu.parser.common.type.Tuple3;

import java.util.List;
import java.util.Optional;

同じコードをWindowsEclipseで"Shift + Ctrl + o"で最適化すると以下のようにjavaのパッケージが上に来るようになります。

import java.util.List;
import java.util.Optional;

import jp.co.teruuu.parser.common.type.Tuple2;
import jp.co.teruuu.parser.common.type.Tuple3;

Eclipseの設定をInteliJと同様にしたいのであれば、以下のようにします。

*
java
javax

または、InteliJ側をEclipseのデフォルトの設定に合わせるのであれば以下のようになります。

import javax.*
import java.*
<blank line>
import all other imports

*によるimport省略

InteliJで"File -> Settings -> Editor -> CodeStyle -> Java"でImportsタブの Class count to use import with '*' の設定を見るとデフォルトでは5になっているかと思います。

Class count to use import with '*':     5

これでたとえば、 java.util のパッケージが5個以上になると * で省略して java.util.* と省略してimportされるようになります。*による省略を行いたくない場合はここの数値を大きくしたらとりあえず大丈夫そうです。

Eclipseではプロジェクトを右クリックし"Properties -> Java Code Style -> Organaize Imports"の Number of imports needed for .*(e.g. 'org.eclipse.*') に同様の設定があります。