用途:在 dotnet/roslyn 仓库中创建或修改 Roslyn IDE 分析器、代码修复(CodeFixProvider)与代码重构(CodeRefactoringProvider),并为其编写测试。适用于新增 IDE0xxx 诊断、实现或修改修复与重构、处理 AbstractBuiltInCodeStyleDiagnosticAnalyzer 等场景。
主要能力与约定:IDE 诊断 ID 统一为 IDE0xxx,定义在 src/Analyzers/Core/Analyzers/IDEDiagnosticIds.cs,应引用常量而非硬编码字符串。代码风格分析器优先继承 AbstractBuiltInCodeStyleDiagnosticAnalyzer,非风格分析器使用 DiagnosticAnalyzer 与 DiagnosticDescriptor。代码修复需提供 FixAllProvider(通常为 WellKnownFixAllProviders.BatchFixer)。重构实现 ComputeRefactoringsAsync 并通过 context.RegisterRefactoring 注册。分析器通过选项系统读取 .editorconfig 偏好,如 context.GetCSharpAnalyzerOptions().PreferXxx,并尊重用户配置的严重级别与启用状态。
本地化与测试:消息与 UI 字符串放在 .resx 文件,通过生成的资源类引用,描述符使用 LocalizableResourceString;修改 .resx 后运行 dotnet msbuild <path to csproj> /t:UpdateXlf 更新 .xlf。分析器与修复配对测试继承 AbstractCSharpDiagnosticProviderBasedUserDiagnosticTest_NoEditor,使用 TestInRegularAndScriptAsync 与 TestMissingInRegularAndScriptAsync;测试标记包括 [|...|]、{|DiagnosticId:...|} 与 $$ 光标标记;独立分析器可用 VerifyCS.Test。
限制:资料未提供安装命令、收费、价格、平台与效果信息,暂未提供。