やらなイカ?

たぶん、iOS/Androidアプリの開発・テスト関係。

Static Analysis

BannedApiAnalyzers.Unity を公開しました

Microsoft.CodeAnalysis.BannedApiAnalyzers は、プロンプトで使用を禁止したいAPIを設定ファイルに書くことでコンパイル時に診断できるRoslynアナライザです。 もちろんUnityでも使用できますが、Unityでは自動生成される .csproj ファイルに設定ファイルの…

UnityではRoslynアナライザーのどのバージョンを使えばいいのか

Unity 2020.2 からUnityエディターでRoslynアナライザー(およびソースジェネレーター)がサポートされましたが、Unityエディタに同梱されているMicrosoft.CodeAnalysis.CSharpのバージョンよりも新しいバージョンでコンパイルされたアナライザーは動作しま…

Unity Test Framework完全攻略ガイド 第3版

3年ぶりの改版となる『Unity Test Framework完全攻略ガイド 第3版』を、コミックマーケット107の2日目(水曜日)南i-17b「いか小屋」で頒布します。 第3版では、Unity Test Frameworkパッケージの最新APIへの追随だけでなく、本書で扱う範囲を広げています…

Unity 6 で追加された Roslyn Analyzer 関連機能

Unity 6 のマニュアルを見ていたら、Roslyn Analyzer についての機能追加があったので紹介します。 docs.unity3d.com Microsoft.CodeAnalysis.Csharp 4.3 アナライザおよびコードジェネレーターをビルドするときに使用する Microsoft.CodeAnalysis.Csharp の…

Unityプロジェクト向け .editorconfigサンプル

EditorConfig は、異なるIDE間でもコーディングスタイルや静的解析の設定を共有できる仕組みです。 JetBrains Riderをはじめ、多くのIDE/ エディタでサポートされています。 本稿では、筆者の使用している設定を紹介します。 Roslynの.editorconfig 元にして…

JetBrains Rider/ReSharperのNamespace does not correspond to file locationインスペクションをUnityプロジェクトで期待どおり診断させる

JetBrains Rider/ReSharperの提供するコードインスペクションに "Namespace does not correspond to file location" があります。 名前空間がディレクトリ階層と一致していることを検査するものですが、Unityプロジェクトの場合デフォルトでは期待どおりの結…

Unity 2021.2未満でも動作するRoslyn Analyzerプロジェクト

Unity 2020.2から制限付きながらRoslynアナライザが動作するようになり、その後、Unity 2021.1.2で実用段階に行き着いたことは以前ブロク記事で紹介しました。 www.nowsprinting.com しかし、この時点でUnityエディター上で動作しない*1アナライザがありまし…

カスタムRoslyn AnalyzerをUPMパッケージとして配布する

Unity 2020.2でRoslynアナライザによる静的解析を行えるようになりましたが*1、NuPkgやDLLで配布してUnityプロジェクトに導入するのはやや面倒です。 そこで、アナライザをUnity Package Manager (UPM) パッケージとして配布する方法を紹介します。アナライ…

Unity 2020.2時点のRoslyn Analyzerサポート状況まとめ

Unity 2020.2でRoslynアナライザによる静的解析が動作するようになりました。しかし、まだ色々と制限があるようなので現時点のサポート状況を検証してまとめてみました。 検証に使用したプロジェクト も公開していますので、認識違い等あれば教えていただる…

JetBrains ReSharper Command Line Tools 2019.3でコードインスペクションを実行する

JetBrains製のC# IDEであるRiderにあるコードインスペクション機能を、そのままコマンドラインで実行できるツールがReSharper Command Line Toolsとして提供されています。 ReSharper Command Line Toolsは、これまでWindows版しかサポートされていませんで…

JetBrains Riderでコードの複雑度を計測する

JetBrains製のC# IDEであるRiderには、様々なプラグインが提供されています。 その中から、コードの複雑度を計測するプラグインを2つ紹介します。 www.jetbrains.com サイクロマティック複雑度 サイクロマティック複雑度(cyclomatic complexity)は循環的複…