提交 db571d7e 编写于 作者: C CyrusNajmabadi

Repurpose 'Info' for Suggestions.

上级 fe34ef91
......@@ -227,8 +227,6 @@ private static ReportDiagnostic MapSeverityToReport(DiagnosticSeverity severity)
return ReportDiagnostic.Warn;
case DiagnosticSeverity.Error:
return ReportDiagnostic.Error;
case DiagnosticSeverity.Suggestion:
return ReportDiagnostic.Suggestion;
default:
throw ExceptionUtilities.Unreachable;
}
......
......@@ -28,11 +28,6 @@ public enum DiagnosticSeverity
/// Something not allowed by the rules of the language or other authority.
/// </summary>
Error = 3,
/// <summary>
/// Something that can be potentially improved.
/// </summary>
Suggestion = 4,
}
/// <summary>
......
......@@ -36,10 +36,5 @@ public enum ReportDiagnostic
/// Suppress a diagnostic.
/// </summary>
Suppress = 5,
/// <summary>
/// Report a diagnostic as a suggestion.
/// </summary>
Suggestion = 6,
}
}
\ No newline at end of file
Microsoft.CodeAnalysis.Compilation.CreateTupleTypeSymbol(Microsoft.CodeAnalysis.INamedTypeSymbol underlyingType, System.Collections.Immutable.ImmutableArray<string> elementNames = default(System.Collections.Immutable.ImmutableArray<string>)) -> Microsoft.CodeAnalysis.INamedTypeSymbol
Microsoft.CodeAnalysis.Compilation.CreateTupleTypeSymbol(System.Collections.Immutable.ImmutableArray<Microsoft.CodeAnalysis.ITypeSymbol> elementTypes, System.Collections.Immutable.ImmutableArray<string> elementNames = default(System.Collections.Immutable.ImmutableArray<string>)) -> Microsoft.CodeAnalysis.INamedTypeSymbol
Microsoft.CodeAnalysis.DiagnosticSeverity.Suggestion = 4 -> Microsoft.CodeAnalysis.DiagnosticSeverity
Microsoft.CodeAnalysis.Diagnostics.AnalysisContext.RegisterOperationAction(System.Action<Microsoft.CodeAnalysis.Diagnostics.OperationAnalysisContext> action, params Microsoft.CodeAnalysis.OperationKind[] operationKinds) -> void
Microsoft.CodeAnalysis.Diagnostics.AnalysisResult
Microsoft.CodeAnalysis.Diagnostics.AnalysisResult.AnalyzerTelemetryInfo.get -> System.Collections.Immutable.ImmutableDictionary<Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer, Microsoft.CodeAnalysis.Diagnostics.Telemetry.AnalyzerTelemetryInfo>
......@@ -137,7 +136,6 @@ Microsoft.CodeAnalysis.OperationKind.WithStatement = 82 -> Microsoft.CodeAnalysi
Microsoft.CodeAnalysis.OperationKind.YieldBreakStatement = 12 -> Microsoft.CodeAnalysis.OperationKind
Microsoft.CodeAnalysis.OperationKind.YieldReturnStatement = 16 -> Microsoft.CodeAnalysis.OperationKind
Microsoft.CodeAnalysis.PortableExecutableReference.GetMetadata() -> Microsoft.CodeAnalysis.Metadata
Microsoft.CodeAnalysis.ReportDiagnostic.Suggestion = 6 -> Microsoft.CodeAnalysis.ReportDiagnostic
Microsoft.CodeAnalysis.SemanticModel.GetOperation(Microsoft.CodeAnalysis.SyntaxNode node, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> Microsoft.CodeAnalysis.IOperation
Microsoft.CodeAnalysis.Semantics.ArgumentKind
Microsoft.CodeAnalysis.Semantics.ArgumentKind.DefaultValue = 4 -> Microsoft.CodeAnalysis.Semantics.ArgumentKind
......
......@@ -21,7 +21,7 @@ protected override CodeRefactoringProvider CreateCodeRefactoringProvider(Workspa
return new IntroduceVariableCodeRefactoringProvider();
}
private readonly CodeStyleOption<bool> onWithInfo = new CodeStyleOption<bool>(true, NotificationOption.Info);
private readonly CodeStyleOption<bool> onWithInfo = new CodeStyleOption<bool>(true, NotificationOption.Suggestion);
// specify all options explicitly to override defaults.
private IDictionary<OptionKey, object> ImplicitTypingEverywhere() =>
......
......@@ -24,7 +24,7 @@ public class GenerateVariableTests : AbstractCSharpDiagnosticProviderBasedUserDi
null, new GenerateVariableCodeFixProvider());
}
private readonly CodeStyleOption<bool> onWithInfo = new CodeStyleOption<bool>(true, NotificationOption.Info);
private readonly CodeStyleOption<bool> onWithInfo = new CodeStyleOption<bool>(true, NotificationOption.Suggestion);
// specify all options explicitly to override defaults.
private IDictionary<OptionKey, object> ImplicitTypingEverywhere() =>
......
......@@ -376,7 +376,7 @@ public async Task QualifyMemberAccessOnNotificationOptionInfo()
await TestAsyncWithOptionAndNotificationOption(
@"class Class { int Property { get; set; }; void M() { [|Property|] = 1; } }",
@"class Class { int Property { get; set; }; void M() { this.Property = 1; } }",
CodeStyleOptions.QualifyPropertyAccess, NotificationOption.Info);
CodeStyleOptions.QualifyPropertyAccess, NotificationOption.Suggestion);
}
[Fact, Trait(Traits.Feature, Traits.Features.CodeActionsQualifyMemberAccess)]
......
......@@ -89,7 +89,7 @@ void N()
await TestAsync(
initialMarkup: input,
expectedMarkup: expected,
options: Option(CodeStyleOptions.QualifyPropertyAccess, true, NotificationOption.Info),
options: Option(CodeStyleOptions.QualifyPropertyAccess, true, NotificationOption.Suggestion),
compareTokens: false,
fixAllActionEquivalenceKey: FeaturesResources.AddQualification);
}
......
......@@ -931,8 +931,8 @@ void N()
</Workspace>";
var options = OptionsSet(
Tuple.Create(CodeStyleOptions.QualifyPropertyAccess, false, NotificationOption.Info),
Tuple.Create(CodeStyleOptions.QualifyFieldAccess, true, NotificationOption.Info));
Tuple.Create(CodeStyleOptions.QualifyPropertyAccess, false, NotificationOption.Suggestion),
Tuple.Create(CodeStyleOptions.QualifyFieldAccess, true, NotificationOption.Suggestion));
await TestAsync(
initialMarkup: input,
expectedMarkup: expected,
......
......@@ -24,8 +24,8 @@ public partial class UseExplicitTypeTests : AbstractCSharpDiagnosticProviderBase
private readonly CodeStyleOption<bool> onWithNone = new CodeStyleOption<bool>(true, NotificationOption.None);
private readonly CodeStyleOption<bool> offWithNone = new CodeStyleOption<bool>(false, NotificationOption.None);
private readonly CodeStyleOption<bool> onWithInfo = new CodeStyleOption<bool>(true, NotificationOption.Info);
private readonly CodeStyleOption<bool> offWithInfo = new CodeStyleOption<bool>(false, NotificationOption.Info);
private readonly CodeStyleOption<bool> onWithInfo = new CodeStyleOption<bool>(true, NotificationOption.Suggestion);
private readonly CodeStyleOption<bool> offWithInfo = new CodeStyleOption<bool>(false, NotificationOption.Suggestion);
private readonly CodeStyleOption<bool> onWithWarning = new CodeStyleOption<bool>(true, NotificationOption.Warning);
private readonly CodeStyleOption<bool> offWithWarning = new CodeStyleOption<bool>(false, NotificationOption.Warning);
private readonly CodeStyleOption<bool> onWithError = new CodeStyleOption<bool>(true, NotificationOption.Error);
......
......@@ -25,8 +25,8 @@ public partial class UseImplicitTypeTests : AbstractCSharpDiagnosticProviderBase
private readonly CodeStyleOption<bool> onWithNone = new CodeStyleOption<bool>(true, NotificationOption.None);
private readonly CodeStyleOption<bool> offWithNone = new CodeStyleOption<bool>(false, NotificationOption.None);
private readonly CodeStyleOption<bool> onWithInfo = new CodeStyleOption<bool>(true, NotificationOption.Info);
private readonly CodeStyleOption<bool> offWithInfo = new CodeStyleOption<bool>(false, NotificationOption.Info);
private readonly CodeStyleOption<bool> onWithInfo = new CodeStyleOption<bool>(true, NotificationOption.Suggestion);
private readonly CodeStyleOption<bool> offWithInfo = new CodeStyleOption<bool>(false, NotificationOption.Suggestion);
private readonly CodeStyleOption<bool> onWithWarning = new CodeStyleOption<bool>(true, NotificationOption.Warning);
private readonly CodeStyleOption<bool> offWithWarning = new CodeStyleOption<bool>(false, NotificationOption.Warning);
private readonly CodeStyleOption<bool> onWithError = new CodeStyleOption<bool>(true, NotificationOption.Error);
......
......@@ -37,7 +37,7 @@ internal partial class DiagnosticsSuggestionTaggerProvider :
protected internal override bool IncludeDiagnostic(DiagnosticData diagnostic)
{
return diagnostic.Severity == DiagnosticSeverity.Suggestion;
return diagnostic.Severity == DiagnosticSeverity.Info;
}
protected override SuggestionTag CreateTag(DiagnosticData diagnostic)
......
......@@ -3116,7 +3116,7 @@ class C
}
]]>
</text>
Await TestAsync(input, expected, QualifyPropertyAccessOptionWithNotification(LanguageNames.CSharp, NotificationOption.Info))
Await TestAsync(input, expected, QualifyPropertyAccessOptionWithNotification(LanguageNames.CSharp, NotificationOption.Suggestion))
End Function
<Fact, Trait(Traits.Feature, Traits.Features.Simplification)>
......@@ -5689,7 +5689,7 @@ Class C
End Class
]]>
</text>
Await TestAsync(input, expected, QualifyPropertyAccessOptionWithNotification(LanguageNames.VisualBasic, NotificationOption.Info))
Await TestAsync(input, expected, QualifyPropertyAccessOptionWithNotification(LanguageNames.VisualBasic, NotificationOption.Suggestion))
End Function
<Fact, Trait(Traits.Feature, Traits.Features.Simplification)>
......
......@@ -443,7 +443,7 @@ CodeStyleOptions.QualifyPropertyAccess, NotificationOption.None)
Await TestAsyncWithOptionAndNotification(
"Class C : Property I As Integer : Sub M() : [|I|] = 1 : End Sub : End Class",
"Class C : Property I As Integer : Sub M() : Me.I = 1 : End Sub : End Class",
CodeStyleOptions.QualifyPropertyAccess, NotificationOption.Info)
CodeStyleOptions.QualifyPropertyAccess, NotificationOption.Suggestion)
End Function
<Fact, Trait(Traits.Feature, Traits.Features.CodeActionsQualifyMemberAccess)>
......
......@@ -77,7 +77,7 @@ End Class]]>
Await TestAsync(
initialMarkup:=input,
expectedMarkup:=expected,
options:=[Option](CodeStyleOptions.QualifyPropertyAccess, True, NotificationOption.Info),
options:=[Option](CodeStyleOptions.QualifyPropertyAccess, True, NotificationOption.Suggestion),
compareTokens:=False,
fixAllActionEquivalenceKey:=FeaturesResources.AddQualification)
End Function
......
......@@ -789,8 +789,8 @@ End Class]]>
</Workspace>.ToString()
Dim options = OptionsSet(
Tuple.Create(CodeStyleOptions.QualifyPropertyAccess, False, NotificationOption.Info),
Tuple.Create(CodeStyleOptions.QualifyFieldAccess, True, NotificationOption.Info))
Tuple.Create(CodeStyleOptions.QualifyPropertyAccess, False, NotificationOption.Suggestion),
Tuple.Create(CodeStyleOptions.QualifyFieldAccess, True, NotificationOption.Suggestion))
Await TestAsync(
initialMarkup:=input,
expectedMarkup:=expected,
......
......@@ -43,7 +43,6 @@ private static bool CanBeSuppressedOrUnsuppressed(Diagnostic diagnostic, bool ch
case DiagnosticSeverity.Error:
case DiagnosticSeverity.Warning:
case DiagnosticSeverity.Info:
case DiagnosticSeverity.Suggestion:
// We allow suppressions for all the remaining configurable, non-hidden diagnostics.
// Note that compiler errors are not configurable by default, so only analyzer errors are suppressable.
return true;
......
......@@ -48,13 +48,6 @@ internal abstract class SimplifyTypeNamesDiagnosticAnalyzerBase<TLanguageKindEnu
DiagnosticSeverity.Info,
isEnabledByDefault: true,
customTags: DiagnosticCustomTags.Unnecessary);
private static readonly DiagnosticDescriptor s_descriptorRemoveThisOrMeSuggestion = new DiagnosticDescriptor(IDEDiagnosticIds.RemoveQualificationDiagnosticId,
s_localizableTitleRemoveThisOrMe,
s_localizableMessage,
DiagnosticCategory.Style,
DiagnosticSeverity.Suggestion,
isEnabledByDefault: true,
customTags: DiagnosticCustomTags.Unnecessary);
private static readonly DiagnosticDescriptor s_descriptorRemoveThisOrMeWarning = new DiagnosticDescriptor(IDEDiagnosticIds.RemoveQualificationDiagnosticId,
s_localizableTitleRemoveThisOrMe,
s_localizableMessage,
......@@ -156,8 +149,6 @@ private DiagnosticDescriptor GetRemoveQualificationDiagnosticDescriptor(Semantic
return s_descriptorRemoveThisOrMeHidden;
case DiagnosticSeverity.Info:
return s_descriptorRemoveThisOrMeInfo;
case DiagnosticSeverity.Suggestion:
return s_descriptorRemoveThisOrMeSuggestion;
case DiagnosticSeverity.Warning:
return s_descriptorRemoveThisOrMeWarning;
case DiagnosticSeverity.Error:
......
......@@ -251,8 +251,6 @@ protected static ReportDiagnostic MapSeverityToReport(DiagnosticSeverity severit
return ReportDiagnostic.Warn;
case DiagnosticSeverity.Error:
return ReportDiagnostic.Error;
case DiagnosticSeverity.Suggestion:
return ReportDiagnostic.Suggestion;
default:
throw ExceptionUtilities.Unreachable;
}
......
......@@ -186,7 +186,6 @@ private static bool ShouldInclude(DiagnosticData diagnostic)
case DiagnosticSeverity.Error:
return true;
case DiagnosticSeverity.Hidden:
case DiagnosticSeverity.Suggestion:
default:
return false;
}
......
......@@ -72,8 +72,7 @@ private static List<NotificationOptionViewModel> GetDefaultNotifications()
return new List<NotificationOptionViewModel>
{
new NotificationOptionViewModel(NotificationOption.None, KnownMonikers.None),
new NotificationOptionViewModel(NotificationOption.Info, KnownMonikers.StatusInformation),
new NotificationOptionViewModel(NotificationOption.Suggestion, KnownMonikers.Ellipsis),
new NotificationOptionViewModel(NotificationOption.Suggestion, KnownMonikers.StatusInformation),
new NotificationOptionViewModel(NotificationOption.Warning, KnownMonikers.StatusWarning),
new NotificationOptionViewModel(NotificationOption.Error, KnownMonikers.StatusError)
};
......
......@@ -16,13 +16,12 @@ public EnforcementLevel(DiagnosticSeverity severity)
Value = severity;
switch (severity)
{
case DiagnosticSeverity.Suggestion:
case DiagnosticSeverity.Hidden:
Name = "None";
Moniker = KnownMonikers.None;
return;
case DiagnosticSeverity.Info:
Name = "Info";
Name = "Suggestion";
Moniker = KnownMonikers.StatusInformation;
return;
case DiagnosticSeverity.Warning:
......
......@@ -47,7 +47,6 @@ internal partial class NamingRuleDialogViewModel : AbstractNotifyPropertyChanged
{
new EnforcementLevel(DiagnosticSeverity.Hidden),
new EnforcementLevel(DiagnosticSeverity.Info),
new EnforcementLevel(DiagnosticSeverity.Suggestion),
new EnforcementLevel(DiagnosticSeverity.Warning),
new EnforcementLevel(DiagnosticSeverity.Error),
};
......
......@@ -44,8 +44,6 @@ private ImageMoniker GetMoniker()
return KnownMonikers.None;
case CodeAnalysis.DiagnosticSeverity.Info:
return KnownMonikers.StatusInformation;
case CodeAnalysis.DiagnosticSeverity.Suggestion:
return KnownMonikers.Ellipsis;
case CodeAnalysis.DiagnosticSeverity.Warning:
return KnownMonikers.StatusWarning;
case CodeAnalysis.DiagnosticSeverity.Error:
......
......@@ -12,7 +12,7 @@ public class CodeStyleOption<T>
{
public static CodeStyleOption<T> Default => new CodeStyleOption<T>(default(T), NotificationOption.None);
private const int SerializationVersion = 1;
private const int SerializationVersion = 2;
public CodeStyleOption(T value, NotificationOption notification)
{
......@@ -36,6 +36,7 @@ public static CodeStyleOption<T> FromXElement(XElement element)
var typeAttribute = element.Attribute("Type");
var valueAttribute = element.Attribute(nameof(Value));
var severityAttribute = element.Attribute(nameof(DiagnosticSeverity));
var version = (int)element.Attribute(nameof(SerializationVersion));
if (typeAttribute == null || valueAttribute == null || severityAttribute == null)
{
......@@ -43,6 +44,11 @@ public static CodeStyleOption<T> FromXElement(XElement element)
return Default;
}
if (version != SerializationVersion)
{
return Default;
}
var parser = GetParser(typeAttribute.Value);
var value = (T)parser(valueAttribute.Value);
var severity = (DiagnosticSeverity)Enum.Parse(typeof(DiagnosticSeverity), severityAttribute.Value);
......@@ -54,9 +60,6 @@ public static CodeStyleOption<T> FromXElement(XElement element)
notificationOption = NotificationOption.None;
break;
case DiagnosticSeverity.Info:
notificationOption = NotificationOption.Info;
break;
case DiagnosticSeverity.Suggestion:
notificationOption = NotificationOption.Suggestion;
break;
case DiagnosticSeverity.Warning:
......
......@@ -16,8 +16,7 @@ public class NotificationOption
public DiagnosticSeverity Value { get; set; }
public static readonly NotificationOption None = new NotificationOption(nameof(None), DiagnosticSeverity.Hidden);
public static readonly NotificationOption Info = new NotificationOption(nameof(Info), DiagnosticSeverity.Info);
public static readonly NotificationOption Suggestion = new NotificationOption(nameof(Suggestion), DiagnosticSeverity.Suggestion);
public static readonly NotificationOption Suggestion = new NotificationOption(nameof(Suggestion), DiagnosticSeverity.Info);
public static readonly NotificationOption Warning = new NotificationOption(nameof(Warning), DiagnosticSeverity.Warning);
public static readonly NotificationOption Error = new NotificationOption(nameof(Error), DiagnosticSeverity.Error);
......
......@@ -43,7 +43,6 @@ static readonly Microsoft.CodeAnalysis.CodeStyle.CodeStyleOptions.QualifyFieldAc
static readonly Microsoft.CodeAnalysis.CodeStyle.CodeStyleOptions.QualifyMethodAccess -> Microsoft.CodeAnalysis.Options.PerLanguageOption<Microsoft.CodeAnalysis.CodeStyle.CodeStyleOption<bool>>
static readonly Microsoft.CodeAnalysis.CodeStyle.CodeStyleOptions.QualifyPropertyAccess -> Microsoft.CodeAnalysis.Options.PerLanguageOption<Microsoft.CodeAnalysis.CodeStyle.CodeStyleOption<bool>>
static readonly Microsoft.CodeAnalysis.CodeStyle.NotificationOption.Error -> Microsoft.CodeAnalysis.CodeStyle.NotificationOption
static readonly Microsoft.CodeAnalysis.CodeStyle.NotificationOption.Info -> Microsoft.CodeAnalysis.CodeStyle.NotificationOption
static readonly Microsoft.CodeAnalysis.CodeStyle.NotificationOption.None -> Microsoft.CodeAnalysis.CodeStyle.NotificationOption
static readonly Microsoft.CodeAnalysis.CodeStyle.NotificationOption.Suggestion -> Microsoft.CodeAnalysis.CodeStyle.NotificationOption
static readonly Microsoft.CodeAnalysis.CodeStyle.NotificationOption.Warning -> Microsoft.CodeAnalysis.CodeStyle.NotificationOption
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册