Browse Source

Support latest T4MVC 2.13.0

Latest T4MVC template uses ProjectItem.Collection which returns the ProjectItems that
contain the ProjectItem.
pull/28/head
Matt Ward 13 years ago
parent
commit
2fc93423c0
  1. 23
      src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/ProjectItem.cs
  2. 1
      src/AddIns/Misc/PackageManagement/SharpDevelop.EnvDTE/Src/ProjectItem.vb
  3. 28
      src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/ProjectItemTests.cs

23
src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/ProjectItem.cs

@ -158,10 +158,15 @@ namespace ICSharpCode.PackageManagement.EnvDTE @@ -158,10 +158,15 @@ namespace ICSharpCode.PackageManagement.EnvDTE
internal string GetIncludePath(string fileName)
{
string relativeDirectory = containingProject.GetRelativePath(projectItem.FileName);
string relativeDirectory = GetProjectItemRelativePathToProject();
return Path.Combine(relativeDirectory, fileName);
}
string GetProjectItemRelativePathToProject()
{
return containingProject.GetRelativePath(projectItem.FileName);
}
internal string GetIncludePath()
{
return projectItem.Include;
@ -208,5 +213,21 @@ namespace ICSharpCode.PackageManagement.EnvDTE @@ -208,5 +213,21 @@ namespace ICSharpCode.PackageManagement.EnvDTE
public virtual short FileCount {
get { return 1; }
}
public global::EnvDTE.ProjectItems Collection {
get {
string relativePath = GetProjectItemRelativeDirectoryToProject();
if (String.IsNullOrEmpty(relativePath)) {
return containingProject.ProjectItems;
}
var directoryProjectItem = new DirectoryProjectItem(containingProject, relativePath);
return directoryProjectItem.ProjectItems;
}
}
string GetProjectItemRelativeDirectoryToProject()
{
return Path.GetDirectoryName(GetProjectItemRelativePathToProject());
}
}
}

1
src/AddIns/Misc/PackageManagement/SharpDevelop.EnvDTE/Src/ProjectItem.vb

@ -13,6 +13,7 @@ Namespace EnvDTE @@ -13,6 +13,7 @@ Namespace EnvDTE
ReadOnly Property Document() As Document
ReadOnly Property FileNames(index As Short) As String
ReadOnly Property FileCount() As Short
ReadOnly Property Collection As ProjectItems
Sub Delete()
Sub Remove()

28
src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/ProjectItemTests.cs

@ -372,5 +372,33 @@ namespace PackageManagement.Tests.EnvDTE @@ -372,5 +372,33 @@ namespace PackageManagement.Tests.EnvDTE
Assert.AreEqual(1, count);
}
[Test]
public void Collection_ProjectItemIsFileInProjectRootFolder_ReturnsProjectItemsCollectionForProject()
{
CreateProjectItems();
msbuildProject.FileName = @"d:\projects\MyProject\MyProject.csproj";
msbuildProject.AddFile(@"program.cs");
global::EnvDTE.ProjectItem projectItem = projectItems.Item("program.cs");
global::EnvDTE.ProjectItems collection = projectItem.Collection;
Assert.AreEqual(project.ProjectItems, collection);
}
[Test]
public void Collection_ProjectItemIsFileInSubFolderOfProject_ReturnsProjectItemsCollectionForSubFolder()
{
CreateProjectItems();
msbuildProject.FileName = @"d:\projects\MyProject\MyProject.csproj";
msbuildProject.AddFile(@"src\program.cs");
global::EnvDTE.ProjectItem srcDirectoryItem = project.ProjectItems.Item("src");
global::EnvDTE.ProjectItem fileProjectItem = srcDirectoryItem.ProjectItems.Item("program.cs");
global::EnvDTE.ProjectItems collection = fileProjectItem.Collection;
global::EnvDTE.ProjectItem item = collection.Item("program.cs");
Assert.AreEqual("program.cs", item.Name);
}
}
}

Loading…
Cancel
Save