小编Jad*_*uth的帖子

EditorConfig - 如何访问自定义分析器中的 editorconfig 规则设置

我想知道是否有一种本地方法来存储和访问自定义 roslyn 分析器的附加设置。假设我有诊断 ID 'XA0001' 的规则,并且在编辑器配置中我将设置

dotnet_diagnostic.XA0001.severity = error
Run Code Online (Sandbox Code Playgroud)

到目前为止,一切都还好。现在我想添加类似的内容来为新规则创建设置:

dotnet_diagnostic.XA0001.scope = class, enum, interface
dotnet_diagnostic.XA0001.level = toplevel
Run Code Online (Sandbox Code Playgroud)

其中范围和级别是我的规则的附加属性,我需要可配置(通常是字符串或某种枚举),因为它们可以变化。每次都会有该规则的默认设置可以被 editorconfig 覆盖。

是否可能,如果可以,是否有任何超短的示例 ev。指向帖子的链接如何访问分析器类中的其他 editorconfig 设置或仅从该项目级别访问?

[DiagnosticAnalyzer(LanguageNames.CSharp)]
    public class RuleXA0001Analyzer : DiagnosticAnalyzer
    {
        public override ImmutableArray<DiagnosticDescriptor> SupportedDiagnostics { get; } = ImmutableArray.Create(RuleXA0001.Descriptor);

        public override void Initialize(AnalysisContext context)
        {
            context.ConfigureGeneratedCodeAnalysis(GeneratedCodeAnalysisFlags.None);
            context.EnableConcurrentExecution();

            //TODO access editorconfig settings for this rule
            //Perform analysis & report diagnostics
        }
    }   
}   
Run Code Online (Sandbox Code Playgroud)

无需访问其他规则设置,即使它在其他情况下可能是有益的。

谢谢

c# roslyn editorconfig roslyn-code-analysis visual-studio-2019

5
推荐指数
1
解决办法
1269
查看次数