| File: src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\RuleLevel.cs | Web Access |
| Project: src\roslyn\src\RoslynAnalyzers\Microsoft.CodeAnalysis.Analyzers\Core\Microsoft.CodeAnalysis.Analyzers.csproj (Microsoft.CodeAnalysis.Analyzers) |
// 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. #if NET_ANALYZERS || TEXT_ANALYZERS || MICROSOFT_CODEANALYSIS_ANALYZERS namespace Microsoft.CodeAnalysis { #pragma warning disable CA1008 // Enums should have zero value #pragma warning disable CA1027 // Mark enums with FlagsAttribute internal enum RuleLevel #pragma warning restore CA1027 // Mark enums with FlagsAttribute #pragma warning restore CA1008 // Enums should have zero value { /// <summary> /// Correctness rule which prevents the compiler from producing a well-defined output binary, and must have /// <b>no false positives</b>. Violations of this rule must be fixed by users before any other testing work can /// continue. This rule will be <b>enabled in CI and IDE live analysis</b> by default with severity /// <see cref="DiagnosticSeverity.Error"/>. /// </summary> /// <remarks> /// Since analyzers cannot directly influence output binaries, this value is typically only valid in the /// implementation of source generators. Rare exceptions may occur at the request of a director in coordination /// with the core compiler team. /// </remarks> BuildError = 1, /// <summary> /// Correctness rule which should have <b>no false positives</b>, and is extremely likely to be fixed by users. /// This rule will be <b>enabled in CI and IDE live analysis</b> by default with severity <see cref="DiagnosticSeverity.Warning"/>. /// </summary> BuildWarning = 2, /// <summary> /// Correctness rule which should have <b>no false positives</b>, and is extremely likely to be fixed by users. /// This rule is a candidate to be turned into a <see cref="BuildWarning"/>. /// Until then, this rule will be an <see cref="IdeSuggestion"/> /// </summary> BuildWarningCandidate = IdeSuggestion, /// <summary> /// Rule which should have <b>no false positives</b>, and is a valuable IDE live analysis suggestion for opportunistic improvement, but not something to be enforced in CI. /// This rule will be <b>enabled by default as an IDE-only suggestion</b> with severity <see cref="DiagnosticSeverity.Info"/> which will be shown in "Messages" tab in Error list. /// </summary> #pragma warning disable CA1069 // Enums values should not be duplicated - BuildWarningCandidate is used to mark a separate bucket of rules that could be promoted. IdeSuggestion = 3, #pragma warning restore CA1069 // Enums values should not be duplicated /// <summary> /// Rule which <b>may have some false positives</b> and hence would be noisy to be enabled by default as a suggestion or a warning in IDE live analysis or CI. /// This rule will be enabled by default with <see cref="DiagnosticSeverity.Hidden"/> severity, so it will be <b>effectively disabled in both IDE live analysis and CI</b>. /// However, hidden severity ensures that this rule can be <i>enabled using the category based bulk configuration</i> (TODO: add documentation link on category based bulk configuration). /// </summary> IdeHidden_BulkConfigurable = 4, /// <summary> /// <b>Disabled by default rule.</b> /// Users would need to explicitly enable this rule with an ID-based severity configuration entry for the rule ID. /// This rule <i>cannot be enabled using the category based bulk configuration</i> (TODO: add documentation link on category based bulk configuration). /// </summary> Disabled = 5, /// <summary> /// <b>Disabled by default rule</b>, which is a candidate for <b>deprecation</b>. /// </summary> CandidateForRemoval = 6, } } #endif