OPCDiaryまた、一部手違いでコンテンツが消えてしまっていてすみません。2015の1日目です。CalendarではStyleCopの紹介をさせていただきましたが、このStyleCopAnalyzersはそれの後継に当たります。1.0を使用しています。目次StyleCopAnalyzersとは?StyleCopAnalyzersのインストールStyleCopAnalyzerの設定ルール適応の設定stylecop.jsonStyleCopAnalyzerの適応コードの修正まとめいいね:StyleCopAnalyzersとは?StyleCopAnalyzersとはC#のソースコードに対する静的分析ツールで、設定されたコード規約に対して、書かれているソースコードが実際にその規約に則っているかを確認するツールです。文法チェックをするいわゆるLintのようなツールとは違い、=の前後にスペースは入れるのか入れないのか、コードブロック間の空行の数、コメントの有無、記述順序といったものを確認するためのツールです。Analyzerを使用します。2015以降に限定されますが、ReSharperのようなサードパーティツールがいらなくなりました。(従来のStyleCOpでもコード解析だけで有ればReSharperは不要でしたが、コード修正を行うにはReSharperがないと手で一つずつ修正する必要があり、事実上必須でした)現在GitHub上でソースコードが公開されていおり、RTMに向けて開発中です。Installerを使用してのインストールでしたが、StyleCopAnalyzersはNuGetを使用してのインストールになります。このため原則的にProject毎のインストールになります。ツールメニュー>NuGetパッケージマネージャ>ソリューションのNuGetパッケージの管理を選択します。StyleCopAnalyzersのインストールはこのNuGetのパッケージ管理ツールを使用して以下のように行います。「参照」を選択します。検索文字列のテキストボックスに「StyleCopAnalyzers」と入力します。プレリリースなので、プレリリースを含めるにチェックを入れます。検索結果から最新のStyleCopAnalyzersを選択します。StyleCopAnalyzersの対象プロジェクトにチェックを入れます。インストールボタンをクリックしてインストールします。以上で基本的にインストールは終了です。途中確認のダイアログがデル場合には確認をして進めてください。インストール後すぐに分析が始まり、下図の様にソリューションエクスプローラで問題のあったファイルに緑の波線が付くと思います。設定にはProjectのプロパティのコード分析タブで行うルール適応の設定と、ヘッダ内容等を設定するstylecop.jsonファイルによる設定があります。ルール適応の設定どのルールをプロジェクトに適応させるかは、FxCop他と同様にプロジェクトのプロパティのコード分析タブで行います。ルールセットの開くボタンをクリックして設定を表示させます。下図のStyleCopAnalyzersの左の△をクリックして展開します。ちなみにその下の管理されたバイナリ分析が従来のFxCopで、上二つがVS2015が付かされているRoslynを使用したコード分析です。下図の様にずらっとルールが表示されるので、適応したいルールにチェックを入れます。(実際には適応したくないルールのチェックを外します)ここでは一つ一つのルールの解説はしません。選択すると下図の様に簡単に説明が出ますが、非常に簡単なので従来のStyleCopのルール説明を確認された方が良いと思います。(ただしStyleCopAnalyzersで変更・追加されたルールもある。規則セットを使用したコード分析規則のグループ化またもう一つ大事な設定として、ルール違反が起きたときに、エラーとするのか、警告とするのかといった設定もここで行います。Fix(コード編集機能)の制御を行う事ができます。CodeFixesより追加する方式が可能となりました。(後述)次に追加したjsonファイルの先頭に以下のようにスキーマの指定をします。することでこのjsonファイルの編集でインテリセンスを使用できます。Documentationと言ったルールがありますが、ここではDocumentationルールでのファイルヘッダの設定方法について説明します。それ以外につきましては次https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/Configuration.mdを参照してください。StyleCopのルール1634等でCopyrightのかかれたファイルヘッダをソースコードの先頭に記載する必要があり、StyleCop時代はその内容を設定ツールのGUI上で指定しましたが、StyleCopAnalyzerではそのようなGUIツールが無いので、このstylecop.json上で指定します。次からの要領でstylecop.jsonファイルを追加します。Fixesのアイコンが表示されるのでクリックします。Projectを選択し、変更のプレビューを選択します。適用をクリックしてファイルを追加します。これで、プロジェクトにstylecop.jsonと言うファイルが作成されます。copyrightText,と言う変数が用意されているほか、variablesで変数を追加することもできます。以下のような要領で記載します。}}ただし、このままではstylecop.jsopnの設定内容を使用する設定となっていないので、プロジェクトファイル(.csproj)でとなっているところを探し、これを以下に書き換えます。https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/EnableConfiguration.mdこの設定で以下のようなファイルヘッダが追加されます。information.//StyleCopAnalyzerの適応StyleCopAnalyzerによるコード分析は常に実行されているほか、分析メニューのソリューションでコード分析を実行を選択することで能動的に実行し、結果をエラー一覧に出力することができます。プロジェクトのプロパティのコード分析タブで「ビルドに対するコード分析の有効化」にチェックを入れるとビルド時に自動的に分析を走らせることができます。リアルタイムでの分析の結果は、ソースコード上に緑の波線の下線が付くほか、ソリューションエクスプローラのファイルにも同様に下線がつきます。ファイルの下線にマウスカーソルを置くと下図の様にそのファイルで発生してる分析閣下でのエラーが表示され、個別ルールをクリックすることで該当箇所にジャンプできます。分析結果でエラーとなっている緑色の波線下線の部分をクリックします。すると下図の様にコードヒントが表示されるので、変更のプレビューをクリックし、表示されるダイアログの内容を確認して適応をクリックします。ここではアクセス修飾子が必要というSA1400番のルールによりエラーになっているので、アクセス修飾子としてinternalがコードに追加されています、また、先ほどのコードヒントのダイアログでSA1400と言うルール番号のところをクリックすることで、以下のようなルール解説のページを表示する事ができます。該当行の左にでるコードヒントで、ルールの非表示(SA1400の非表示)を選択し、ソース内を選択すると、コード内に無視するようプリプロセッサを追加します。}}StyleCopの時にはこの指定は属性での指定となっていました。先ほどのコードヒントで抑制ファイル内を選択すると、GlobalSuppressions.csと言うファイルが追加され、その中に該当ルールを無視するための属性が追加されて、プロジェクト全体に適応されます。Fixeasのアイコンをクリックし、そのメニューの中から適切な項目を選択してください。まとめStyleCopの後継となるStyleCopAnalyzerについて説明しました。コーディング標準についてはみなさんそれぞれに一言お有りだと思いますが、StyleCopのルール自体はMS社内に置いてある程度実績の有るルール内容となっていますので、ぜひ参考にして、自分たちに会うようにルール選択をするのが良いと思います。最近のCoreFxのコーディングルール等見ると非常に簡略化されており、コーディングスタイルのルール一つとってもコーポレートレベルでガバナンスをしっかり掛けたいケース、OSSでのケースそれぞれ違う物だなと思います。どの様なケースであれ、コーディングスタイルごときの内容をコードレビューの時間を使って指摘していったり、修正したりするのは全く無駄な作業、時間ではあるので、もっと早い段階で発見修正ができるようStyleCopAnalyzerや、オフラインで強制整形するツールを使っていくのが良いのでは無いでしょうか。いう事で、明日はNumAniCloudさんです。1.0(RTM)の内容に合わせて記事見直しを行い修正しました。Vistaでは提供されない。Vistaでは提供されないと言うことに。library昨日悩まなくていいことで悩んでいた時に見つけたもの。2009よりぬきPDCさん。IRCでonoさんに教えてもらいました。1月27日・28日パシフィコ横浜で、PDCのセッションからより抜きでカンファレンスを行うようです。RC英語版ですが、RCがMSDNでダウンロードできるようになりました。リンクまとめRC1が出ました。2021リリースされました。?Forzaホーム検索トップサイドバー%d人のブロガーが「いいね」をつけました。タイトルとURLをコピーしました。