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:
authorMatt Ward <matt.ward@xamarin.com>2017-06-30 13:48:27 +0300
committerMatt Ward <matt.ward@xamarin.com>2017-06-30 13:53:14 +0300
commit5fb37293b6e544681aff0ca576175e74c3c44fda (patch)
tree26ba7dc31d6ea1ab27ee0000aa882daaa6277bdc /main/src/addins/MonoDevelop.DotNetCore/MonoDevelop.DotNetCore.NodeBuilders
parentc8da5213d8037c0e71b898c81f46b3f5f3e1e7d7 (diff)
[DotNetCore] Show SDK information before dependencies are restored
Fixed bug #56455 - Show SDK for project when not restored https://bugzilla.xamarin.com/show_bug.cgi?id=56455 When a new .NET Core project is created the Dependencies - SDK folder shows no items until the restore is completed. Now the SDK dependency is shown (e.g. NETStandard.Library or Microsoft.NETCore.App) whilst the dependencies are being restored and the updated information has not yet been returned from MSBuild. This mirrors the behaviour of Visual Studio on Windows.
Diffstat (limited to 'main/src/addins/MonoDevelop.DotNetCore/MonoDevelop.DotNetCore.NodeBuilders')
-rw-r--r--main/src/addins/MonoDevelop.DotNetCore/MonoDevelop.DotNetCore.NodeBuilders/PackageDependencyNode.cs15
-rw-r--r--main/src/addins/MonoDevelop.DotNetCore/MonoDevelop.DotNetCore.NodeBuilders/SdkDependenciesNode.cs11
-rw-r--r--main/src/addins/MonoDevelop.DotNetCore/MonoDevelop.DotNetCore.NodeBuilders/SdkDependenciesNodeBuilder.cs6
3 files changed, 32 insertions, 0 deletions
diff --git a/main/src/addins/MonoDevelop.DotNetCore/MonoDevelop.DotNetCore.NodeBuilders/PackageDependencyNode.cs b/main/src/addins/MonoDevelop.DotNetCore/MonoDevelop.DotNetCore.NodeBuilders/PackageDependencyNode.cs
index 8067bbfed0..a459ee357a 100644
--- a/main/src/addins/MonoDevelop.DotNetCore/MonoDevelop.DotNetCore.NodeBuilders/PackageDependencyNode.cs
+++ b/main/src/addins/MonoDevelop.DotNetCore/MonoDevelop.DotNetCore.NodeBuilders/PackageDependencyNode.cs
@@ -66,6 +66,18 @@ namespace MonoDevelop.DotNetCore.NodeBuilders
version = packageReference.Metadata.GetValue ("Version", string.Empty);
}
+ public PackageDependencyNode (
+ DependenciesNode dependenciesNode,
+ string name,
+ bool topLevel,
+ bool readOnly)
+ {
+ this.dependenciesNode = dependenciesNode;
+ this.name = name;
+ IsTopLevel = topLevel;
+ IsReadOnly = readOnly;
+ }
+
public static PackageDependencyNode Create (
DependenciesNode dependenciesNode,
string dependencyName,
@@ -111,6 +123,9 @@ namespace MonoDevelop.DotNetCore.NodeBuilders
public string GetSecondaryLabel ()
{
+ if (string.IsNullOrEmpty (version))
+ return string.Empty;
+
return string.Format ("({0})", version);
}
diff --git a/main/src/addins/MonoDevelop.DotNetCore/MonoDevelop.DotNetCore.NodeBuilders/SdkDependenciesNode.cs b/main/src/addins/MonoDevelop.DotNetCore/MonoDevelop.DotNetCore.NodeBuilders/SdkDependenciesNode.cs
index 57bd391991..137084bee9 100644
--- a/main/src/addins/MonoDevelop.DotNetCore/MonoDevelop.DotNetCore.NodeBuilders/SdkDependenciesNode.cs
+++ b/main/src/addins/MonoDevelop.DotNetCore/MonoDevelop.DotNetCore.NodeBuilders/SdkDependenciesNode.cs
@@ -78,5 +78,16 @@ namespace MonoDevelop.DotNetCore.NodeBuilders
{
return ParentNode.PackageDependencyCache.GetDependency (dependency);
}
+
+ /// <summary>
+ /// Returns a SDK node for the project whilst the package dependencies are still loading.
+ /// </summary>
+ public IEnumerable<PackageDependencyNode> GetDefaultNodes ()
+ {
+ if (Project.TargetFramework.IsNetCoreApp ())
+ yield return new PackageDependencyNode (ParentNode, "Microsoft.NETCore.App", true, true);
+ else if (Project.TargetFramework.IsNetStandard ())
+ yield return new PackageDependencyNode (ParentNode, "NETStandard.Library", true, true);
+ }
}
}
diff --git a/main/src/addins/MonoDevelop.DotNetCore/MonoDevelop.DotNetCore.NodeBuilders/SdkDependenciesNodeBuilder.cs b/main/src/addins/MonoDevelop.DotNetCore/MonoDevelop.DotNetCore.NodeBuilders/SdkDependenciesNodeBuilder.cs
index 2f6878cb38..305b59f2d2 100644
--- a/main/src/addins/MonoDevelop.DotNetCore/MonoDevelop.DotNetCore.NodeBuilders/SdkDependenciesNodeBuilder.cs
+++ b/main/src/addins/MonoDevelop.DotNetCore/MonoDevelop.DotNetCore.NodeBuilders/SdkDependenciesNodeBuilder.cs
@@ -62,6 +62,8 @@ namespace MonoDevelop.DotNetCore.NodeBuilders
var dependenciesNode = (SdkDependenciesNode)dataObject;
if (dependenciesNode.LoadedDependencies) {
AddLoadedDependencyNodes (treeBuilder, dependenciesNode);
+ } else {
+ treeBuilder.AddChildren (dependenciesNode.GetDefaultNodes ());
}
}
@@ -73,6 +75,10 @@ namespace MonoDevelop.DotNetCore.NodeBuilders
} else if (frameworkNodes.Any ()) {
var frameworkNode = frameworkNodes.First ();
treeBuilder.AddChildren (frameworkNode.GetDependencyNodes ());
+ } else {
+ // Projects sometimes return no dependencies from MSBuild initially so
+ // add the default nodes until the dependencies are updated.
+ treeBuilder.AddChildren (dependenciesNode.GetDefaultNodes ());
}
}