なんか怪しい・・・
最近会社のPCをmacbook proに新調して貰えたので、これを気に全てのeclipseを最新版、Eclipse Marsに変えてみました。
Marsなんですが、ダウンロードするとeclipseのバイナリ1個しか入ってませんでした。Lunaまではpluginsやconfigration等のファイルが沢山あったのですが、Marsは1ファイルのみでスッキリしています。
なんか・・・
問題無くMarsの環境設定を変えていきコーディングを始め、よし、Command + Shift + f でコードフォーマットだ!と思ったら、「あれ、なんかおかしい」。改行のされ方がおかしい。おかしい。。。。
フォーマッタの設定自体は会社でカスタマイズしたものなのですが、どうもEclipse LunaとEclipse Marsで改行、それもコメント前後の改行のされ方が違う事が解りました。
Java code formatter in Eclipse 4.5 has been completely rewritten.
http://eclipse-n-mati.blogspot.jp/2015/06/eclipse-mars-how-to-switch-back-to.html
こちらのサイトを見ると、どうやらMarsになってコードフォーマッターのコードは完全に書き直して作られたようです。その影響なのか、「ちゃんと動かねーぞオラァ!!!」という声がネット上で沢山見られます。バグバグみたいですね。
フォーマットしたいコード
こういうコードがあって、これをフォーマットしたいと思います。
public static enum Enum { /** aaa */ aaa, /** bbb */ bbb, /* ccc */ ccc, /* ddd */ ddd, ; }
Eclipse Lunaでフォーマットした場合
フォーマット前と変わりません。私としては、こうなって欲しいのです。
public static enum Enum { /** aaa */ aaa, /** bbb */ bbb, /* ccc */ ccc, /* ddd */ ddd, ; }
Eclipse Marsでフォーマットした場合
一方Marsでフォーマットすると、こうなってしまいました。Lunaと全く同じコードフォーマッターをimportしたのに、結果が異なってしまいました。
public static enum Enum { /** aaa */ aaa, /** bbb */ bbb, /* ccc */ ccc, /* ddd */ ddd,; }
どうもコメント「/**」を含んだ場合のフォーマットがおかしい???ようです。バグっているのか仕様が変わったのかもよく解りません。
多分eclipse本体のバグだと思われるのですが、もし会社でMars以前のEclipseでコードフォーマッターをカスタマイズして共有して皆で使ってるぜ!という方がいれば、Marsの使用はもう少し控えた方がいいかもしれません。しかし本体がバグると本当に困るんですよね。いちいち環境設定し直すのが面倒。。。