未验证 提交 7d542a08 编写于 作者: J Julien Couvreur 提交者: GitHub

Show beta label in UpgradeProject code action (#30486)

上级 1c8e8166
......@@ -470,9 +470,10 @@ void A()
</Project>
</Workspace>",
new[] {
string.Format(CSharpFeaturesResources.Upgrade_this_project_to_csharp_language_version_0, "8.0"),
string.Format(CSharpFeaturesResources.Upgrade_all_csharp_projects_to_language_version_0, "8.0")
string.Format(CSharpFeaturesResources.Upgrade_this_project_to_csharp_language_version_0, "8.0 *beta*"),
string.Format(CSharpFeaturesResources.Upgrade_all_csharp_projects_to_language_version_0, "8.0 *beta*")
});
// https://github.com/dotnet/roslyn/issues/29819 Remove beta label once C# 8.0 is RTM
}
[Fact]
......@@ -575,7 +576,7 @@ class C
</Project>
</Workspace>",
new[] {
string.Format(CSharpFeaturesResources.Upgrade_this_project_to_csharp_language_version_0, "8.0"),
string.Format(CSharpFeaturesResources.Upgrade_this_project_to_csharp_language_version_0, "8.0 *beta*"),
});
}
......
......@@ -41,6 +41,16 @@ public override string SuggestedVersion(ImmutableArray<Diagnostic> diagnostics)
return RequiredVersion(diagnostics).ToDisplayString();
}
public override string AddBetaIfNeeded(string version)
{
if (version == "8.0")
{
// https://github.com/dotnet/roslyn/issues/29819 Remove once C# 8.0 is RTM
return "8.0 *beta*";
}
return version;
}
private static LanguageVersion RequiredVersion(ImmutableArray<Diagnostic> diagnostics)
{
LanguageVersion max = 0;
......
......@@ -19,6 +19,7 @@ internal abstract partial class AbstractUpgradeProjectCodeFixProvider : CodeFixP
public abstract bool IsUpgrade(ParseOptions projectOptions, string newVersion);
public abstract string UpgradeThisProjectResource { get; }
public abstract string UpgradeAllProjectsResource { get; }
public abstract string AddBetaIfNeeded(string version);
public override FixAllProvider GetFixAllProvider()
{
......@@ -42,14 +43,14 @@ protected ImmutableArray<CodeAction> GetUpgradeProjectCodeActionsAsync(CodeFixCo
var result = new List<CodeAction>();
var language = project.Language;
var fixOneProjectTitle = string.Format(UpgradeThisProjectResource, newVersion);
var fixOneProjectTitle = string.Format(UpgradeThisProjectResource, AddBetaIfNeeded(newVersion));
var fixOneProject = new ParseOptionsChangeAction(fixOneProjectTitle,
_ => Task.FromResult(UpgradeProject(project, newVersion)));
result.Add(fixOneProject);
if (solution.Projects.Count(p => CanUpgrade(p, language, newVersion)) > 1)
{
var fixAllProjectsTitle = string.Format(UpgradeAllProjectsResource, newVersion);
var fixAllProjectsTitle = string.Format(UpgradeAllProjectsResource, AddBetaIfNeeded(newVersion));
var fixAllProjects = new ParseOptionsChangeAction(fixAllProjectsTitle,
ct => Task.FromResult(UpgradeAllProjects(solution, language, newVersion, ct)));
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册