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
internal string GetIncludePath(string fileName) internal string GetIncludePath(string fileName)
{ {
string relativeDirectory = containingProject.GetRelativePath(projectItem.FileName); string relativeDirectory = GetProjectItemRelativePathToProject();
return Path.Combine(relativeDirectory, fileName); return Path.Combine(relativeDirectory, fileName);
} }
string GetProjectItemRelativePathToProject()
{
return containingProject.GetRelativePath(projectItem.FileName);
}
internal string GetIncludePath() internal string GetIncludePath()
{ {
return projectItem.Include; return projectItem.Include;
@ -208,5 +213,21 @@ namespace ICSharpCode.PackageManagement.EnvDTE
public virtual short FileCount { public virtual short FileCount {
get { return 1; } 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
ReadOnly Property Document() As Document ReadOnly Property Document() As Document
ReadOnly Property FileNames(index As Short) As String ReadOnly Property FileNames(index As Short) As String
ReadOnly Property FileCount() As Short ReadOnly Property FileCount() As Short
ReadOnly Property Collection As ProjectItems
Sub Delete() Sub Delete()
Sub Remove() Sub Remove()

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

@ -372,5 +372,33 @@ namespace PackageManagement.Tests.EnvDTE
Assert.AreEqual(1, count); 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