Unity開発でコード整形ルールを設定・共有する(MonoDevelop / Xamarin Studio)

Unityでゲームを開発する際に使うエディターと言えば、 UnityにビルドインされているMonoDevelopか、Xamarin Studioが主流になる。

f:id:takashicompany:20140701024532p:plain MonoDevelopとXamarin Studioは、コード補完機能で自動でコード(の一部)を生成するが、個人の好みやプロジェクトのコーディング規約に沿っていないこともあるかと思う。

今回は、MonoDevelop(Xamarin Studio)でコード補完時の整形ルールの設定と設定の共有する方法をまとめてみた。

例えば

上がMonoDevelopの標準の設定でコード補完で生成されたコード。 下が独自の設定のコード補完で生成されたコード。 f:id:takashicompany:20140701023635p:plain


f:id:takashicompany:20140701023712p:plain

MonoDevelopのコード整形のルールを調整することで、コード補完によって生成されたコードの改行やスペースのルールなどを調整できるようになる。

1. .slnファイルを作る

まずは、.slnファイルを作ります。 f:id:takashicompany:20140701023818p:plain Projectビューで右クリック > Sync MonoDevelop Project

f:id:takashicompany:20140702021344p:plain こんな感じで生成されるはず。

2. コードの整形ルールを設定する

  1. MonoDevelopのメニューからプロジェクト > ソリューションオプションを選択
    f:id:takashicompany:20140701023836p:plain
  2. ソースコード > コードフォーマッティングで使用する言語のソースコードの項目を選択
    f:id:takashicompany:20140701024012p:plain ここで表示されているコードが、現在のコード整形ルールとなる。
    Editボタンを押すとコード整形の設定画面が開く。

  3. コードの整形ルールを設定する
    f:id:takashicompany:20140701024110p:plain Categoryを選択して、各種設定を選択していく。

コード整形ルールを共有する

設定したコード整形ルールは共有することができるっぽい。
テキストエディターで{プロジェクト名}.slnを開く f:id:takashicompany:20140701024223p:plain

開くとこんな感じ。 f:id:takashicompany:20140701024403p:plain この.slnファイルのテキストを、他のUnityプロジェクトや他の開発者の.slnにまるっとコピペすることで、MonoDevelopのコード整形の設定を移せるらしい。
MonoDevelopを起動していない状態で.slnをコピペ => Sync MonoDevelop Projectで設定が反映される。

「ローカル固有の名前とかあるし、設定まるっと上書きして、ホントに大丈夫なのか…」
ってことで、差分見てみたら、Sync MonoDevelop Projectした時に、よしなにやってくれるっぽい。 f:id:takashicompany:20140702022906p:plain

詳しい調査とか検証はしていないので、あくまで裏ワザ的な感じ。
Unity開発でコーディング規約を設けた場合は、.slnの中身をチームに共有すると幸せになれる(かも?)。

ちなみに、MonoDevelop > Preferencesのコードフォーマッティングがなぜか反映されないのが気になります ><