Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRodrigo Moya <rodrigo.moya@xamarin.com>2019-11-26 14:51:51 +0300
committerGitHub <noreply@github.com>2019-11-26 14:51:51 +0300
commit15eb26f4bdd0d9aaf43b4d0011cd8f91101f5213 (patch)
tree1d4f91c4b530af9ff40ce8638f274bbadc56d778
parent7ff74522f1fcdacba1817c448d6ec2e3fb7a4d44 (diff)
parent4df15d51af859a89c05e8f2f5056f33274682bce (diff)
Merge pull request #9371 from mono/pr-aspnetcore-execution-target-group
[AspNet*] Add a group for ASP.NET Core Browser execution targets
-rw-r--r--main/src/addins/AspNet/Projects/AspNetAppProjectFlavor.cs8
-rw-r--r--main/src/addins/MonoDevelop.AspNetCore/MonoDevelop.AspNetCore.Tests/MonoDevelop.AspNetCore.Tests/AspNetCoreProjectTests.cs6
-rw-r--r--main/src/addins/MonoDevelop.AspNetCore/MonoDevelop.AspNetCore/AspNetCoreProjectExtension.cs6
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Core.Execution/ExecutionTarget.cs14
4 files changed, 26 insertions, 8 deletions
diff --git a/main/src/addins/AspNet/Projects/AspNetAppProjectFlavor.cs b/main/src/addins/AspNet/Projects/AspNetAppProjectFlavor.cs
index ad8049679f..d0932c706b 100644
--- a/main/src/addins/AspNet/Projects/AspNetAppProjectFlavor.cs
+++ b/main/src/addins/AspNet/Projects/AspNetAppProjectFlavor.cs
@@ -708,14 +708,14 @@ namespace MonoDevelop.AspNet.Projects
protected override IEnumerable<ExecutionTarget> OnGetExecutionTargets (ConfigurationSelector configuration)
{
- var apps = new List<ExecutionTarget> ();
+ var result = new ExecutionTargetGroup (GettextCatalog.GetString ("Browser"), "MonoDevelop.AspNet.BrowserExecutionTargets");
foreach (var browser in MonoDevelop.Ide.IdeServices.DesktopService.GetApplications ("https://localhost", DesktopApplicationRole.Viewer)) {
if (browser.IsDefault)
- apps.Insert (0, new BrowserExecutionTarget (browser.Id,browser.DisplayName,browser));
+ result.Insert (0, new BrowserExecutionTarget (browser.Id,browser.DisplayName,browser));
else
- apps.Add (new BrowserExecutionTarget (browser.Id,browser.DisplayName,browser));
+ result.Add (new BrowserExecutionTarget (browser.Id,browser.DisplayName,browser));
}
- return apps;
+ yield return result;
}
}
}
diff --git a/main/src/addins/MonoDevelop.AspNetCore/MonoDevelop.AspNetCore.Tests/MonoDevelop.AspNetCore.Tests/AspNetCoreProjectTests.cs b/main/src/addins/MonoDevelop.AspNetCore/MonoDevelop.AspNetCore.Tests/MonoDevelop.AspNetCore.Tests/AspNetCoreProjectTests.cs
index c9e5df4ec2..2871419fbf 100644
--- a/main/src/addins/MonoDevelop.AspNetCore/MonoDevelop.AspNetCore.Tests/MonoDevelop.AspNetCore.Tests/AspNetCoreProjectTests.cs
+++ b/main/src/addins/MonoDevelop.AspNetCore/MonoDevelop.AspNetCore.Tests/MonoDevelop.AspNetCore.Tests/AspNetCoreProjectTests.cs
@@ -35,6 +35,7 @@ using MonoDevelop.Projects;
using UnitTests;
using MonoDevelop.Ide.Gui;
using MonoDevelop.Ide.Projects.FileNesting;
+using MonoDevelop.Core.Execution;
namespace MonoDevelop.AspNetCore.Tests
{
@@ -194,9 +195,10 @@ namespace MonoDevelop.AspNetCore.Tests
using (var sol = (Solution)await Services.ProjectService.ReadWorkspaceItem (Util.GetMonitor (), solutionFileName)) {
var project = (DotNetProject)sol.Items[0];
- var targets = project.GetExecutionTargets (ConfigurationSelector.Default)
- .Cast<AspNetCoreTargetFrameworkExecutionTarget> ()
+ var groups = project.GetExecutionTargets (ConfigurationSelector.Default)
+ .Cast<ExecutionTargetGroup> ()
.ToList ();
+ var targets = groups.SelectMany (x => x.ToArray ());
if (Directory.Exists ("/Applications/Safari.app")) {
var matchNetCoreApp21 = targets.FirstOrDefault (x => x.Name.Contains ("Safari • netcoreapp2.1"));
diff --git a/main/src/addins/MonoDevelop.AspNetCore/MonoDevelop.AspNetCore/AspNetCoreProjectExtension.cs b/main/src/addins/MonoDevelop.AspNetCore/MonoDevelop.AspNetCore/AspNetCoreProjectExtension.cs
index c17e990a32..e50b937d18 100644
--- a/main/src/addins/MonoDevelop.AspNetCore/MonoDevelop.AspNetCore/AspNetCoreProjectExtension.cs
+++ b/main/src/addins/MonoDevelop.AspNetCore/MonoDevelop.AspNetCore/AspNetCoreProjectExtension.cs
@@ -178,7 +178,7 @@ namespace MonoDevelop.AspNetCore
protected override IEnumerable<ExecutionTarget> OnGetExecutionTargets (OperationContext ctx, ConfigurationSelector configuration, SolutionItemRunConfiguration runConfig)
{
- var result = new List<ExecutionTarget> ();
+ var result = new ExecutionTargetGroup (GettextCatalog.GetString ("Browser"), "MonoDevelop.AspNetCore.BrowserExecutionTargets");
foreach (var browser in IdeServices.DesktopService.GetApplications ("https://localhost", Ide.Desktop.DesktopApplicationRole.Viewer)) {
if (browser.IsDefault) {
if (Project.HasMultipleTargetFrameworks) {
@@ -195,7 +195,9 @@ namespace MonoDevelop.AspNetCore
}
}
- return result.Count > 0 ? result : base.OnGetExecutionTargets (configuration);
+ return result.Count > 0
+ ? new ExecutionTarget [] { result }
+ : base.OnGetExecutionTargets (ctx, configuration, runConfig);
}
IEnumerable<ExecutionTarget> GetMultipleTargetFrameworkExecutionTargets (DesktopApplication browser)
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Execution/ExecutionTarget.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Execution/ExecutionTarget.cs
index 0cc2485439..f726b4043d 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Execution/ExecutionTarget.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Execution/ExecutionTarget.cs
@@ -220,6 +220,20 @@ namespace MonoDevelop.Core.Execution
}
#endregion
+
+ #region Helper methods
+
+ public void AddRange (IEnumerable<ExecutionTarget> collection)
+ {
+ targets.AddRange (collection);
+ }
+
+ public void InsertRange (int index, IEnumerable<ExecutionTarget> collection)
+ {
+ targets.InsertRange (index, collection);
+ }
+
+ #endregion
}
public class MultiProjectExecutionTarget : ExecutionTarget