File: src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Diagnostics\DiagnosticAnalyzerCategory.cs
Web Access
Project: src\src\CodeStyle\Core\Analyzers\Microsoft.CodeAnalysis.CodeStyle.csproj (Microsoft.CodeAnalysis.CodeStyle)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
 
using System;
 
namespace Microsoft.CodeAnalysis.Diagnostics;
 
[Flags]
internal enum DiagnosticAnalyzerCategory
{
    /// <summary>
    /// Invalid value, analyzer must support at least one or more of the subsequent analysis categories.
    /// </summary>
    None = 0,
 
    /// <summary>
    /// Analyzer reports syntax diagnostics (i.e. registers a SyntaxTree action).
    /// Note: an <see cref="DiagnosticAnalyzer"/> that uses this will not work properly if
    /// it registers a <see cref="AnalysisContext.RegisterSyntaxNodeAction{TLanguageKindEnum}(Action{SyntaxNodeAnalysisContext}, TLanguageKindEnum[])"/> and then ends
    /// up needing to use the <see cref="SyntaxNodeAnalysisContext.SemanticModel"/>.  If a
    /// <see cref="SemanticModel"/> is needed, use <see cref="SemanticSpanAnalysis"/> or
    /// <see cref="SemanticDocumentAnalysis"/>.
    /// </summary>
    SyntaxTreeWithoutSemanticsAnalysis = 0x0001,
 
    /// <summary>
    /// Analyzer reports semantic diagnostics and also supports incremental span based method body analysis.
    /// An analyzer can support incremental method body analysis if edits within a method body only affect the diagnostics reported by the analyzer on the edited method body.
    /// </summary>
    SemanticSpanAnalysis = 0x0010,
 
    /// <summary>
    /// Analyzer reports semantic diagnostics but doesn't support incremental span based method body analysis.
    /// It needs to re-analyze the whole document for reporting semantic diagnostics even for method body editing scenarios.
    /// </summary>
    SemanticDocumentAnalysis = 0x0100,
}