コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】StyleCop でソースコードを静的解析してコードスタイルの違反をチェックする方法

はじめに

StyleCop は Visual Studio で動作するソースコードの静的解析ツールで、
コードスタイルの違反をチェックすることができます

この記事では、StyleCop を使用して Unity プロジェクトのソースコードを
静的解析し、コードの違反をチェックする方法を紹介していきます

検証環境

  • Unity 2017.1.1f1
  • Visual Studio Community 2017
  • Windows 10

Visual Studio にインストール

まずは Visual Studio に StyleCop をインストールしていきます

  1. 下記のページにアクセスして「ダウンロード」ボタンを押す
    https://marketplace.visualstudio.com/items?itemName=ChrisDahlberg.StyleCop
  2. ダウンロードした「StyleCop.vsix」を起動する
  3. 起動した「VSIX インストーラー」の手順に従ってインストールする

f:id:baba_s:20171222162904p:plain

これで Visual Studio を起動して Visual Studio メニューの「ツール」に
StyleCop の項目が追加されていればインストール完了です

f:id:baba_s:20171222164223p:plain

この状態で「Run StyleCop」を実行すると、
おそらくエラー一覧に大量の警告が表示されます
StyleCop は多くのデフォルトルールを元にソースコードを静的解析するため
不要なルールは無効にしていく必要があります

ルールのカスタマイズ

f:id:baba_s:20171222164551p:plain

Visual Studio のソリューションエクスプローラでプロジェクトを右クリックして
「StyleCop Settings」を選択します

f:id:baba_s:20171222164739p:plain

そして、表示されたウィンドウでルールの一覧が表示されるので
不要なルールのチェックは外していきます

おすすめのルール

https://gist.github.com/lucasrowe/19f3f421c0c528e1356c29ead59f3aba#file-rbg-stylecop-settings-xml

もしも、ルールのカスタマイズを行うのが大変な場合は
上記のページで公開されているルールがオススメです

f:id:baba_s:20171222165538p:plain

StyleCop のルールを管理するファイルは
Visual Studio のソリューションが存在するフォルダに
「Settings.StyleCop」という名前で作成されるので
このファイルをテキストエディタで開いて、上記の XML のコードを貼り付けます

Unity プロジェクトの特定のファイルを無視する

Unity プロジェクトでは多くのアセットやパッケージを使用しますが
それらのファイルはコードスタイルに準拠していないので、
StyleCop の静的解析の対象外にする必要があります

上記のサイトで、Unity 内の特定のファイルを
StyleCop で無視することができるアセットが公開されているので
こちらを Unity プロジェクトに導入していきます

  1. 下記のページにアクセスする https://github.com/redbluegames/unity-stylecop-ignoreutility/releases/download/v1.0/StyleCopIgnoreUtility.unitypackage
  2. ダウンロードした「StyleCopIgnoreUtility.unitypackage」を
    Unity プロジェクトにインポートする

f:id:baba_s:20171222170237p:plain

これで、Unity のメニューに「Window>StyleCop Ignore Utility」が追加されるので
この項目を選択します

f:id:baba_s:20171222170515p:plain

すると、StyleCop で無視するファイルを選択するウィンドウが表示されるので
「...」ボタンを押して、StyleCop の設定を管理する「Settings.StyleCop」を選択します
そして、無視したいファイルをチェックしたら
「Save andd Load to StyleCop」ボタンを押します

これで、不要なファイルを StyleCop の静的解析の対象外にすることができます

補足

  • StyleCop はあくまでコードスタイルの違反をチェックするためのモノであり
    問題を自動的に修正するものではありません
  • コードスタイルの違反を自動で修正したい場合は
    「Resharper」「CodeMaid」「JustCode」などがオススメです

参考サイト様