Open9
dotnet/C# Analyzers memo
ピン留めされたアイテム
dotnet/C#のAnalyzerとは
- コード中のコンパイルは通るけど良くない書き方やスタイルを指摘してくれるプログラム
- 正式には Roslyn Analyzer
- Roslyn(dotnetのコンパイラ)がAnalyzerを読み込み、そのルールでコード解析を行う
- 他の言語だとLinterだが、単に指摘するだけじゃなくcodefix機能で修正できることがあるのが違い
- nugetでプロジェクトごとに導入するのが基本
awesome
NetFabric.Hyperlinq.Analyzer
高速なLINQライブラリHyperlinqのAnalyzer。普通のコードのLINQも指摘してくれるらしい。
※最新版の2.1にはバグが有る模様
AsyncFixer
async/await関係の書き方を指摘・修正してくれるAnalyzer。
ConfiguraAwait(true/false)
の指摘だけなら他のAnalyzerで代用できるので不要かも。
Microsoft.VisualStudio.Threading.Analyzers
MS公式。
Roslynator
これだけあればいいかんじになるすごいやつ。
VSCodeの拡張もあるが、analyzerとして導入するのが推奨されている。
analyzerとして導入するのは以下。
Roslynator.Analyzers
Roslynator.CodeAnalysis.Analyzers
Roslynator.Formatting.Analyzers
Meziantou.Analyzer
Microsoft.CodeAnalysis.PublicApiAnalyzers
MS公式。ライブラリを作るときに便利。Breaking Changeとかをチェックできる。
使い方
- nuget等で導入
- テキストファイル
PublicAPI.Shipped.txt
/PublicAPI.Unshipped.txt
を作成(手動) - csprojで上の2つを参照する
<ItemGroup>
<AdditionalFiles Remove="PublicAPI.Shipped.txt" />
<AdditionalFiles Remove="PublicAPI.Unshipped.txt" />
</ItemGroup>
- codefix機能で一気に
PublicAPI.Unshipped.txt
に自動登録する(ファイル単位やプロジェクト単位も選べる)
.NET project file analyzers
csprojとかのアナライザー、らしい。
ライブラリのアナライザーを推奨してくれたりする
宣言順の不正や相互参照を検出するアナライザー