Open8

dotnet/C# Analyzers memo

ピン留めされたアイテム
いぬいぬいぬいぬ

dotnet/C#のAnalyzerとは

  • コード中のコンパイルは通るけど良くない書き方やスタイルを指摘してくれるプログラム
  • 正式には Roslyn Analyzer
  • Roslyn(dotnetのコンパイラ)がAnalyzerを読み込み、そのルールでコード解析を行う
  • 他の言語だとLinterだが、単に指摘するだけじゃなくcodefix機能で修正できることがあるのが違い
  • nugetでプロジェクトごとに導入するのが基本

https://learn.microsoft.com/ja-jp/visualstudio/extensibility/getting-started-with-roslyn-analyzers?view=vs-2022

いぬいぬいぬいぬ

Roslynator

https://github.com/dotnet/roslynator

これだけあればいいかんじになるすごいやつ。
VSCodeの拡張もあるが、analyzerとして導入するのが推奨されている。

analyzerとして導入するのは以下。

Roslynator.Analyzers
Roslynator.CodeAnalysis.Analyzers
Roslynator.Formatting.Analyzers

いぬいぬいぬいぬ

Microsoft.CodeAnalysis.PublicApiAnalyzers

https://github.com/dotnet/roslyn-analyzers/tree/main#microsoftcodeanalysispublicapianalyzers

MS公式。ライブラリを作るときに便利。Breaking Changeとかをチェックできる。

使い方

  1. nuget等で導入
  2. テキストファイルPublicAPI.Shipped.txt/ PublicAPI.Unshipped.txtを作成(手動)
  3. csprojで上の2つを参照する
<ItemGroup>
    <AdditionalFiles Remove="PublicAPI.Shipped.txt" />
    <AdditionalFiles Remove="PublicAPI.Unshipped.txt" />
  </ItemGroup>
  1. codefix機能で一気にPublicAPI.Unshipped.txtに自動登録する(ファイル単位やプロジェクト単位も選べる)