Browse Source

add support for ProjectExtensions in IProject API

pull/16/merge
Siegfried Pammer 14 years ago
parent
commit
a48016d276
  1. 3
      src/AddIns/BackendBindings/Scripting/Test/ICSharpCode.Scripting.Tests.csproj
  2. 11
      src/AddIns/BackendBindings/Scripting/Test/Utils/MockProject.cs
  3. 10
      src/Main/Base/Project/Src/Project/AbstractProject.cs
  4. 11
      src/Main/Base/Project/Src/Project/IProject.cs
  5. 27
      src/Main/Base/Project/Src/Project/MSBuildBasedProject.cs
  6. 3
      src/Main/Base/Test/ICSharpCode.SharpDevelop.Tests.csproj
  7. 12
      src/Main/Base/Test/StringTagProvider/MockProjectForTagProvider.cs

3
src/AddIns/BackendBindings/Scripting/Test/ICSharpCode.Scripting.Tests.csproj

@ -54,6 +54,9 @@ @@ -54,6 +54,9 @@
<RequiredTargetFramework>4.0</RequiredTargetFramework>
</Reference>
<Reference Include="System.Xml" />
<Reference Include="System.Xml.Linq">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="WindowsBase">
<RequiredTargetFramework>3.0</RequiredTargetFramework>
</Reference>

11
src/AddIns/BackendBindings/Scripting/Test/Utils/MockProject.cs

@ -299,6 +299,17 @@ namespace ICSharpCode.Scripting.Tests.Utils @@ -299,6 +299,17 @@ namespace ICSharpCode.Scripting.Tests.Utils
{
throw new NotImplementedException();
}
public System.Xml.Linq.XElement LoadProjectExtensions(string name)
{
throw new NotImplementedException();
}
public void SaveProjectExtensions(string name, System.Xml.Linq.XElement element)
{
throw new NotImplementedException();
}
#endregion
}
}

10
src/Main/Base/Project/Src/Project/AbstractProject.cs

@ -7,6 +7,7 @@ using System.Collections.ObjectModel; @@ -7,6 +7,7 @@ using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Diagnostics;
using System.IO;
using System.Xml.Linq;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Debugging;
@ -563,5 +564,14 @@ namespace ICSharpCode.SharpDevelop.Project @@ -563,5 +564,14 @@ namespace ICSharpCode.SharpDevelop.Project
public virtual void ProjectCreationComplete()
{
}
public virtual XElement LoadProjectExtensions(string name)
{
return new XElement(name);
}
public virtual void SaveProjectExtensions(string name, XElement element)
{
}
}
}

11
src/Main/Base/Project/Src/Project/IProject.cs

@ -7,6 +7,7 @@ using System.Collections.ObjectModel; @@ -7,6 +7,7 @@ using System.Collections.ObjectModel;
using System.ComponentModel;
using System.IO;
using System.Xml;
using System.Xml.Linq;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Gui;
@ -257,6 +258,16 @@ namespace ICSharpCode.SharpDevelop.Project @@ -257,6 +258,16 @@ namespace ICSharpCode.SharpDevelop.Project
/// Notifies the project that it was succesfully created from a project template.
/// </summary>
void ProjectCreationComplete();
/// <summary>
/// Loads the project extension content with the specified name.
/// </summary>
XElement LoadProjectExtensions(string name);
/// <summary>
/// Saves the project extension content with the specified name.
/// </summary>
void SaveProjectExtensions(string name, XElement element);
}
/// <summary>

27
src/Main/Base/Project/Src/Project/MSBuildBasedProject.cs

@ -9,7 +9,7 @@ using System.Diagnostics; @@ -9,7 +9,7 @@ using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Xml;
using System.Xml.Linq;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Internal.Templates;
@ -1570,5 +1570,30 @@ namespace ICSharpCode.SharpDevelop.Project @@ -1570,5 +1570,30 @@ namespace ICSharpCode.SharpDevelop.Project
}
*/
#endregion
#region ProjectExtensions
public override void SaveProjectExtensions(string name, XElement element)
{
lock (SyncRoot) {
var existing = projectFile.Children.OfType<ProjectExtensionsElement>().FirstOrDefault();
if (existing == null) {
existing = projectFile.CreateProjectExtensionsElement();
projectFile.AppendChild(existing);
}
existing[name] = element.ToString();
}
}
public override XElement LoadProjectExtensions(string name)
{
lock (SyncRoot) {
var existing = projectFile.Children.OfType<ProjectExtensionsElement>().FirstOrDefault();
if (existing == null) {
existing = projectFile.CreateProjectExtensionsElement();
}
return XElement.Parse(existing[name]) ?? new XElement(name);
}
}
#endregion
}
}

3
src/Main/Base/Test/ICSharpCode.SharpDevelop.Tests.csproj

@ -55,6 +55,9 @@ @@ -55,6 +55,9 @@
<SpecificVersion>False</SpecificVersion>
</Reference>
<Reference Include="Microsoft.Build.Engine" />
<Reference Include="System.Xml.Linq">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="WindowsBase">
<RequiredTargetFramework>3.0</RequiredTargetFramework>
</Reference>

12
src/Main/Base/Test/StringTagProvider/MockProjectForTagProvider.cs

@ -4,6 +4,8 @@ @@ -4,6 +4,8 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Xml.Linq;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Project;
@ -280,5 +282,15 @@ namespace ICSharpCode.SharpDevelop.Tests.StringTagProvider @@ -280,5 +282,15 @@ namespace ICSharpCode.SharpDevelop.Tests.StringTagProvider
{
throw new NotImplementedException();
}
public XElement LoadProjectExtensions(string name)
{
throw new NotImplementedException();
}
public void SaveProjectExtensions(string name, XElement element)
{
throw new NotImplementedException();
}
}
}

Loading…
Cancel
Save