SuperAPI AI 工具集

dotnet-roslyn-analyzers

编程与开发

查看项目

更新于 10-16 01:25

技能介绍

用途:该技能面向编写自定义 Roslyn 分析器、代码修复提供程序(CodeFixProvider)、代码重构提供程序(CodeRefactoringProvider)与诊断抑制器(DiagnosticSuppressor),而非使用或配置现有分析器。

项目设置:分析器项目必须目标 netstandard2.0,并设置 EnforceExtendedAnalyzerRules、IsRoslynComponent、LangVersion 为 latest;引用 Microsoft.CodeAnalysis.CSharp 与 Microsoft.CodeAnalysis.Analyzers,且均使用 PrivateAssets="all"。

主要能力:DiagnosticAnalyzer 继承自 DiagnosticAnalyzer 并加 [DiagnosticAnalyzer(LanguageNames.CSharp)] 特性;DiagnosticDescriptor 约定涵盖 ID 前缀、分类命名、严重级别选择与 helpLinkUri。分析上下文注册方式包括 RegisterSyntaxNodeAction、RegisterSymbolAction、RegisterOperationAction、RegisterSyntaxTreeAction、RegisterCompilationStartAction、RegisterCompilationAction。CodeFixProvider 支持 FixAllProvider、equivalenceKey 与 trivia 保留;DiagnosticSuppressor 可依据代码结构有条件抑制其他分析器诊断(需 Roslyn 3.8+);CodeRefactoringProvider 通过灯泡菜单触发的代码转换。还涵盖多版本 Roslyn 目标(3.8 至 4.14)、Microsoft.CodeAnalysis.Testing 测试、NuGet 打包与性能最佳实践。

适用与限制:适合 .NET 分析器作者。范围边界明确:使用与配置现有分析器见 dotnet-add-analyzers,编写源生成器见 dotnet-csharp-source-generators。抑制器不能报告新诊断。