28 changed files with 1048 additions and 0 deletions
@ -0,0 +1,16 @@ |
|||||||
|
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||||
|
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||||
|
|
||||||
|
using System.Reflection; |
||||||
|
|
||||||
|
// Information about this assembly is defined by the following
|
||||||
|
// attributes.
|
||||||
|
//
|
||||||
|
// change them to the information which is associated with the assembly
|
||||||
|
// you compile.
|
||||||
|
|
||||||
|
[assembly: AssemblyTitle("TextTemplating")] |
||||||
|
[assembly: AssemblyDescription("Text Templating (T4) Addin for SharpDevelop")] |
||||||
|
[assembly: AssemblyConfiguration("")] |
||||||
|
[assembly: AssemblyTrademark("")] |
||||||
|
[assembly: AssemblyCulture("")] |
@ -0,0 +1,12 @@ |
|||||||
|
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||||
|
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||||
|
|
||||||
|
using System; |
||||||
|
|
||||||
|
namespace ICSharpCode.TextTemplating |
||||||
|
{ |
||||||
|
public interface ITextTemplatingAppDomain : IDisposable |
||||||
|
{ |
||||||
|
AppDomain AppDomain { get; } |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,12 @@ |
|||||||
|
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||||
|
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||||
|
|
||||||
|
using System; |
||||||
|
|
||||||
|
namespace ICSharpCode.TextTemplating |
||||||
|
{ |
||||||
|
public interface ITextTemplatingAppDomainFactory |
||||||
|
{ |
||||||
|
ITextTemplatingAppDomain CreateTextTemplatingAppDomain(string applicationBase); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,13 @@ |
|||||||
|
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||||
|
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||||
|
|
||||||
|
using System; |
||||||
|
using ICSharpCode.SharpDevelop.Project; |
||||||
|
|
||||||
|
namespace ICSharpCode.TextTemplating |
||||||
|
{ |
||||||
|
public interface ITextTemplatingCustomToolContext |
||||||
|
{ |
||||||
|
FileProjectItem EnsureOutputFileIsInProject(FileProjectItem baseItem, string outputFileName); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,12 @@ |
|||||||
|
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||||
|
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||||
|
|
||||||
|
using System; |
||||||
|
|
||||||
|
namespace ICSharpCode.TextTemplating |
||||||
|
{ |
||||||
|
public interface ITextTemplatingFileGenerator : IDisposable |
||||||
|
{ |
||||||
|
void ProcessTemplate(); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,13 @@ |
|||||||
|
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||||
|
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||||
|
|
||||||
|
using System; |
||||||
|
|
||||||
|
namespace ICSharpCode.TextTemplating |
||||||
|
{ |
||||||
|
public interface ITextTemplatingHost : IDisposable |
||||||
|
{ |
||||||
|
bool ProcessTemplate(string inputFile, string outputFile); |
||||||
|
string OutputFile { get; } |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,34 @@ |
|||||||
|
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||||
|
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||||
|
|
||||||
|
using System; |
||||||
|
using System.IO; |
||||||
|
using System.Reflection; |
||||||
|
|
||||||
|
namespace ICSharpCode.TextTemplating |
||||||
|
{ |
||||||
|
[Serializable] |
||||||
|
public class TextTemplatingAppDomain : ITextTemplatingAppDomain |
||||||
|
{ |
||||||
|
AppDomain appDomain; |
||||||
|
|
||||||
|
public TextTemplatingAppDomain(string applicationBase) |
||||||
|
{ |
||||||
|
AppDomainSetup setupInfo = new AppDomainSetup(); |
||||||
|
setupInfo.ApplicationBase = applicationBase; |
||||||
|
this.appDomain = AppDomain.CreateDomain("TextTemplatingAppDomain", null, setupInfo); |
||||||
|
} |
||||||
|
|
||||||
|
public AppDomain AppDomain { |
||||||
|
get { return this.appDomain; } |
||||||
|
} |
||||||
|
|
||||||
|
public void Dispose() |
||||||
|
{ |
||||||
|
if (this.appDomain != null) { |
||||||
|
AppDomain.Unload(this.appDomain); |
||||||
|
this.appDomain = null; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,15 @@ |
|||||||
|
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||||
|
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||||
|
|
||||||
|
using System; |
||||||
|
|
||||||
|
namespace ICSharpCode.TextTemplating |
||||||
|
{ |
||||||
|
public class TextTemplatingAppDomainFactory : ITextTemplatingAppDomainFactory |
||||||
|
{ |
||||||
|
public ITextTemplatingAppDomain CreateTextTemplatingAppDomain(string applicationBase) |
||||||
|
{ |
||||||
|
return new TextTemplatingAppDomain(applicationBase); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,23 @@ |
|||||||
|
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||||
|
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||||
|
|
||||||
|
using System; |
||||||
|
using ICSharpCode.SharpDevelop.Project; |
||||||
|
|
||||||
|
namespace ICSharpCode.TextTemplating |
||||||
|
{ |
||||||
|
public class TextTemplatingCustomToolContext : ITextTemplatingCustomToolContext |
||||||
|
{ |
||||||
|
CustomToolContext context; |
||||||
|
|
||||||
|
public TextTemplatingCustomToolContext(CustomToolContext context) |
||||||
|
{ |
||||||
|
this.context = context; |
||||||
|
} |
||||||
|
|
||||||
|
public FileProjectItem EnsureOutputFileIsInProject(FileProjectItem baseItem, string outputFileName) |
||||||
|
{ |
||||||
|
return context.EnsureOutputFileIsInProject(baseItem, outputFileName); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,69 @@ |
|||||||
|
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||||
|
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||||
|
|
||||||
|
using System; |
||||||
|
using System.IO; |
||||||
|
using ICSharpCode.SharpDevelop.Project; |
||||||
|
|
||||||
|
namespace ICSharpCode.TextTemplating |
||||||
|
{ |
||||||
|
public class TextTemplatingFileGenerator : ITextTemplatingFileGenerator |
||||||
|
{ |
||||||
|
ITextTemplatingHost host; |
||||||
|
FileProjectItem projectFile; |
||||||
|
ITextTemplatingCustomToolContext context; |
||||||
|
|
||||||
|
public TextTemplatingFileGenerator( |
||||||
|
ITextTemplatingHost host, |
||||||
|
FileProjectItem projectFile, |
||||||
|
ITextTemplatingCustomToolContext context) |
||||||
|
{ |
||||||
|
this.host = host; |
||||||
|
this.projectFile = projectFile; |
||||||
|
this.context = context; |
||||||
|
} |
||||||
|
|
||||||
|
public void Dispose() |
||||||
|
{ |
||||||
|
host.Dispose(); |
||||||
|
} |
||||||
|
|
||||||
|
public void ProcessTemplate() |
||||||
|
{ |
||||||
|
GenerateOutputFileForTemplate(); |
||||||
|
AddOutputFileToProjectIfRequired(); |
||||||
|
} |
||||||
|
|
||||||
|
void GenerateOutputFileForTemplate() |
||||||
|
{ |
||||||
|
string inputFileName = projectFile.FileName; |
||||||
|
string outputFileName = GetOutputFileName(inputFileName); |
||||||
|
host.ProcessTemplate(inputFileName, outputFileName); |
||||||
|
} |
||||||
|
|
||||||
|
string GetOutputFileName(string inputFileName) |
||||||
|
{ |
||||||
|
return Path.ChangeExtension(inputFileName, ".cs"); |
||||||
|
} |
||||||
|
|
||||||
|
void AddOutputFileToProjectIfRequired() |
||||||
|
{ |
||||||
|
context.EnsureOutputFileIsInProject(projectFile, host.OutputFile); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
// internal static void LogicalSetData (string name, object value,
|
||||||
|
// System.CodeDom.Compiler.CompilerErrorCollection errors)
|
||||||
|
// {
|
||||||
|
// //FIXME: CallContext.LogicalSetData not implemented in Mono
|
||||||
|
// try {
|
||||||
|
// System.Runtime.Remoting.Messaging.CallContext.LogicalSetData (name, value);
|
||||||
|
// } catch (NotImplementedException) {
|
||||||
|
// errors.Add (new System.CodeDom.Compiler.CompilerError (
|
||||||
|
// null, -1, -1, null,
|
||||||
|
// "Could not set " + name + " - CallContext.LogicalSetData not implemented in this Mono version"
|
||||||
|
// ) { IsWarning = true });
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
} |
||||||
|
} |
@ -0,0 +1,38 @@ |
|||||||
|
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||||
|
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||||
|
|
||||||
|
using System; |
||||||
|
using System.CodeDom.Compiler; |
||||||
|
using System.IO; |
||||||
|
using ICSharpCode.SharpDevelop.Project; |
||||||
|
|
||||||
|
namespace ICSharpCode.TextTemplating |
||||||
|
{ |
||||||
|
public class TextTemplatingFileGeneratorCustomTool : ICustomTool |
||||||
|
{ |
||||||
|
public void GenerateCode(FileProjectItem item, CustomToolContext context) |
||||||
|
{ |
||||||
|
using (var generator = CreateTextTemplatingFileGenerator(item, context)) { |
||||||
|
generator.ProcessTemplate(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
protected virtual ITextTemplatingFileGenerator CreateTextTemplatingFileGenerator( |
||||||
|
FileProjectItem projectFile, |
||||||
|
CustomToolContext context) |
||||||
|
{ |
||||||
|
var appDomainFactory = new TextTemplatingAppDomainFactory(); |
||||||
|
string applicationBase = GetAssemblyBaseLocation(); |
||||||
|
var host = new TextTemplatingHost(appDomainFactory, applicationBase); |
||||||
|
var textTemplatingCustomToolContext = new TextTemplatingCustomToolContext(context); |
||||||
|
|
||||||
|
return new TextTemplatingFileGenerator(host, projectFile, textTemplatingCustomToolContext); |
||||||
|
} |
||||||
|
|
||||||
|
string GetAssemblyBaseLocation() |
||||||
|
{ |
||||||
|
string location = GetType().Assembly.Location; |
||||||
|
return Path.GetDirectoryName(location); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,42 @@ |
|||||||
|
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||||
|
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||||
|
|
||||||
|
using System; |
||||||
|
using Mono.TextTemplating; |
||||||
|
|
||||||
|
namespace ICSharpCode.TextTemplating |
||||||
|
{ |
||||||
|
public class TextTemplatingHost : TemplateGenerator, ITextTemplatingHost |
||||||
|
{ |
||||||
|
ITextTemplatingAppDomainFactory appDomainFactory; |
||||||
|
ITextTemplatingAppDomain templatingAppDomain; |
||||||
|
string applicationBase; |
||||||
|
|
||||||
|
public TextTemplatingHost(ITextTemplatingAppDomainFactory appDomainFactory, string applicationBase) |
||||||
|
{ |
||||||
|
this.appDomainFactory = appDomainFactory; |
||||||
|
this.applicationBase = applicationBase; |
||||||
|
} |
||||||
|
|
||||||
|
public void Dispose() |
||||||
|
{ |
||||||
|
if (templatingAppDomain != null) { |
||||||
|
templatingAppDomain.Dispose(); |
||||||
|
templatingAppDomain = null; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public override AppDomain ProvideTemplatingAppDomain(string content) |
||||||
|
{ |
||||||
|
if (templatingAppDomain == null) { |
||||||
|
CreateAppDomain(); |
||||||
|
} |
||||||
|
return templatingAppDomain.AppDomain; |
||||||
|
} |
||||||
|
|
||||||
|
void CreateAppDomain() |
||||||
|
{ |
||||||
|
templatingAppDomain = appDomainFactory.CreateTextTemplatingAppDomain(applicationBase); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,30 @@ |
|||||||
|
<AddIn |
||||||
|
name="Text Templating" |
||||||
|
author="Matt Ward" |
||||||
|
copyright="prj:///doc/copyright.txt" |
||||||
|
description="Adds support for T4 templates." |
||||||
|
addInManagerHidden="preinstalled"> |
||||||
|
|
||||||
|
<Manifest> |
||||||
|
<Identity name="ICSharpCode.TextTemplating"/> |
||||||
|
</Manifest> |
||||||
|
|
||||||
|
<Runtime> |
||||||
|
<Import assembly="TextTemplating.dll"/> |
||||||
|
</Runtime> |
||||||
|
|
||||||
|
<Path name="/SharpDevelop/Workbench/FileFilter"> |
||||||
|
<FileFilter |
||||||
|
id="T4" |
||||||
|
insertbefore="AllFiles" |
||||||
|
name="Text Template Files (*.tt)" |
||||||
|
extensions="*.tt"/> |
||||||
|
</Path> |
||||||
|
|
||||||
|
<Path name="/SharpDevelop/CustomTools"> |
||||||
|
<CustomTool |
||||||
|
id="TextTemplatingFileGenerator" |
||||||
|
class="ICSharpCode.TextTemplating.TextTemplatingFileGeneratorCustomTool" |
||||||
|
fileNamePattern=".tt"/> |
||||||
|
</Path> |
||||||
|
</AddIn> |
@ -0,0 +1,84 @@ |
|||||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||||
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build"> |
||||||
|
<PropertyGroup> |
||||||
|
<ProjectGuid>{B5D8C3E6-42EC-4D4B-AD05-3644B32563EF}</ProjectGuid> |
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> |
||||||
|
<Platform Condition=" '$(Platform)' == '' ">x86</Platform> |
||||||
|
<OutputType>Library</OutputType> |
||||||
|
<RootNamespace>ICSharpCode.TextTemplating</RootNamespace> |
||||||
|
<AssemblyName>TextTemplating</AssemblyName> |
||||||
|
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion> |
||||||
|
<AllowUnsafeBlocks>False</AllowUnsafeBlocks> |
||||||
|
<NoStdLib>False</NoStdLib> |
||||||
|
<WarningLevel>4</WarningLevel> |
||||||
|
<TreatWarningsAsErrors>false</TreatWarningsAsErrors> |
||||||
|
<OutputPath>..\..\..\..\..\AddIns\Misc\TextTemplating\</OutputPath> |
||||||
|
</PropertyGroup> |
||||||
|
<PropertyGroup Condition=" '$(Platform)' == 'x86' "> |
||||||
|
<PlatformTarget>x86</PlatformTarget> |
||||||
|
<RegisterForComInterop>False</RegisterForComInterop> |
||||||
|
<GenerateSerializationAssemblies>Auto</GenerateSerializationAssemblies> |
||||||
|
<BaseAddress>4194304</BaseAddress> |
||||||
|
<FileAlignment>4096</FileAlignment> |
||||||
|
</PropertyGroup> |
||||||
|
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' "> |
||||||
|
<DebugSymbols>true</DebugSymbols> |
||||||
|
<DebugType>Full</DebugType> |
||||||
|
<Optimize>False</Optimize> |
||||||
|
<CheckForOverflowUnderflow>True</CheckForOverflowUnderflow> |
||||||
|
<DefineConstants>DEBUG;TRACE</DefineConstants> |
||||||
|
<StartAction>Project</StartAction> |
||||||
|
</PropertyGroup> |
||||||
|
<PropertyGroup Condition=" '$(Configuration)' == 'Release' "> |
||||||
|
<DebugSymbols>false</DebugSymbols> |
||||||
|
<DebugType>None</DebugType> |
||||||
|
<Optimize>True</Optimize> |
||||||
|
<CheckForOverflowUnderflow>False</CheckForOverflowUnderflow> |
||||||
|
<DefineConstants>TRACE</DefineConstants> |
||||||
|
</PropertyGroup> |
||||||
|
<ItemGroup> |
||||||
|
<Reference Include="Mono.TextTemplating"> |
||||||
|
<HintPath>lib\Mono.TextTemplating.dll</HintPath> |
||||||
|
</Reference> |
||||||
|
<Reference Include="System" /> |
||||||
|
<Reference Include="System.Core"> |
||||||
|
<RequiredTargetFramework>3.5</RequiredTargetFramework> |
||||||
|
</Reference> |
||||||
|
<Reference Include="System.Xml" /> |
||||||
|
</ItemGroup> |
||||||
|
<ItemGroup> |
||||||
|
<Compile Include="..\..\..\..\Main\GlobalAssemblyInfo.cs"> |
||||||
|
<Link>Configuration\GlobalAssemblyInfo.cs</Link> |
||||||
|
</Compile> |
||||||
|
<Compile Include="Src\ITextTemplatingAppDomain.cs" /> |
||||||
|
<Compile Include="Src\ITextTemplatingAppDomainFactory.cs" /> |
||||||
|
<Compile Include="Src\ITextTemplatingCustomToolContext.cs" /> |
||||||
|
<Compile Include="Src\ITextTemplatingHost.cs" /> |
||||||
|
<Compile Include="Src\ITextTemplatingFileGenerator.cs" /> |
||||||
|
<Compile Include="Src\TextTemplatingAppDomain.cs" /> |
||||||
|
<Compile Include="Src\TextTemplatingAppDomainFactory.cs" /> |
||||||
|
<Compile Include="Src\TextTemplatingCustomToolContext.cs" /> |
||||||
|
<Compile Include="Src\TextTemplatingFileGenerator.cs" /> |
||||||
|
<Compile Include="Src\TextTemplatingFileGeneratorCustomTool.cs" /> |
||||||
|
<Compile Include="Configuration\AssemblyInfo.cs" /> |
||||||
|
<Compile Include="Src\TextTemplatingHost.cs" /> |
||||||
|
</ItemGroup> |
||||||
|
<ItemGroup> |
||||||
|
<None Include="TextTemplating.addin"> |
||||||
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory> |
||||||
|
</None> |
||||||
|
</ItemGroup> |
||||||
|
<ItemGroup> |
||||||
|
<ProjectReference Include="..\..\..\..\Main\Base\Project\ICSharpCode.SharpDevelop.csproj"> |
||||||
|
<Project>{2748AD25-9C63-4E12-877B-4DCE96FBED54}</Project> |
||||||
|
<Name>ICSharpCode.SharpDevelop</Name> |
||||||
|
<Private>False</Private> |
||||||
|
</ProjectReference> |
||||||
|
<ProjectReference Include="..\..\..\..\Main\Core\Project\ICSharpCode.Core.csproj"> |
||||||
|
<Project>{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}</Project> |
||||||
|
<Name>ICSharpCode.Core</Name> |
||||||
|
<Private>False</Private> |
||||||
|
</ProjectReference> |
||||||
|
</ItemGroup> |
||||||
|
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" /> |
||||||
|
</Project> |
Binary file not shown.
@ -0,0 +1,16 @@ |
|||||||
|
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||||
|
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||||
|
|
||||||
|
using System.Reflection; |
||||||
|
|
||||||
|
// Information about this assembly is defined by the following
|
||||||
|
// attributes.
|
||||||
|
//
|
||||||
|
// change them to the information which is associated with the assembly
|
||||||
|
// you compile.
|
||||||
|
|
||||||
|
[assembly: AssemblyTitle("TextTemplating.Tests")] |
||||||
|
[assembly: AssemblyDescription("Text Templating (T4) Addin Tests")] |
||||||
|
[assembly: AssemblyConfiguration("")] |
||||||
|
[assembly: AssemblyTrademark("")] |
||||||
|
[assembly: AssemblyCulture("")] |
@ -0,0 +1,20 @@ |
|||||||
|
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||||
|
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||||
|
|
||||||
|
using System; |
||||||
|
using ICSharpCode.TextTemplating; |
||||||
|
|
||||||
|
namespace TextTemplating.Tests.Helpers |
||||||
|
{ |
||||||
|
public class FakeTextTemplatingAppDomain : ITextTemplatingAppDomain |
||||||
|
{ |
||||||
|
public bool IsDisposeCalled; |
||||||
|
|
||||||
|
public AppDomain AppDomain { get; set; } |
||||||
|
|
||||||
|
public void Dispose() |
||||||
|
{ |
||||||
|
IsDisposeCalled = true; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,22 @@ |
|||||||
|
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||||
|
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||||
|
|
||||||
|
using System; |
||||||
|
using ICSharpCode.TextTemplating; |
||||||
|
|
||||||
|
namespace TextTemplating.Tests.Helpers |
||||||
|
{ |
||||||
|
public class FakeTextTemplatingAppDomainFactory : ITextTemplatingAppDomainFactory |
||||||
|
{ |
||||||
|
public FakeTextTemplatingAppDomain FakeTextTemplatingAppDomain = new FakeTextTemplatingAppDomain(); |
||||||
|
public int CreateTextTemplatingAppDomainCallCount; |
||||||
|
public string ApplicationBasePassedToCreateTextTemplatingAppDomain; |
||||||
|
|
||||||
|
public ITextTemplatingAppDomain CreateTextTemplatingAppDomain(string applicationBase) |
||||||
|
{ |
||||||
|
ApplicationBasePassedToCreateTextTemplatingAppDomain = applicationBase; |
||||||
|
CreateTextTemplatingAppDomainCallCount++; |
||||||
|
return FakeTextTemplatingAppDomain; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,24 @@ |
|||||||
|
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||||
|
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||||
|
|
||||||
|
using System; |
||||||
|
using ICSharpCode.SharpDevelop.Project; |
||||||
|
using ICSharpCode.TextTemplating; |
||||||
|
|
||||||
|
namespace TextTemplating.Tests.Helpers |
||||||
|
{ |
||||||
|
public class FakeTextTemplatingCustomToolContext : ITextTemplatingCustomToolContext |
||||||
|
{ |
||||||
|
public FileProjectItem BaseItemPassedToEnsureOutputFileIsInProject; |
||||||
|
public string OutputFileNamePassedToEnsureOutputFileIsInProject; |
||||||
|
public TestableFileProjectItem EnsureOutputFileIsInProjectReturnValue = new TestableFileProjectItem(@"d:\Projects\MyProject\template.tt"); |
||||||
|
|
||||||
|
public FileProjectItem EnsureOutputFileIsInProject(FileProjectItem baseItem, string outputFileName) |
||||||
|
{ |
||||||
|
BaseItemPassedToEnsureOutputFileIsInProject = baseItem; |
||||||
|
OutputFileNamePassedToEnsureOutputFileIsInProject = outputFileName; |
||||||
|
|
||||||
|
return EnsureOutputFileIsInProjectReturnValue; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,24 @@ |
|||||||
|
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||||
|
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||||
|
|
||||||
|
using System; |
||||||
|
using ICSharpCode.TextTemplating; |
||||||
|
|
||||||
|
namespace TextTemplating.Tests.Helpers |
||||||
|
{ |
||||||
|
public class FakeTextTemplatingFileGenerator : ITextTemplatingFileGenerator |
||||||
|
{ |
||||||
|
public bool IsProcessTemplateCalled; |
||||||
|
public bool IsDisposeCalledAfterTemplateProcessed; |
||||||
|
|
||||||
|
public void ProcessTemplate() |
||||||
|
{ |
||||||
|
IsProcessTemplateCalled = true; |
||||||
|
} |
||||||
|
|
||||||
|
public void Dispose() |
||||||
|
{ |
||||||
|
IsDisposeCalledAfterTemplateProcessed = IsProcessTemplateCalled; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,30 @@ |
|||||||
|
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||||
|
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||||
|
|
||||||
|
using System; |
||||||
|
using ICSharpCode.TextTemplating; |
||||||
|
|
||||||
|
namespace TextTemplating.Tests.Helpers |
||||||
|
{ |
||||||
|
public class FakeTextTemplatingHost : ITextTemplatingHost |
||||||
|
{ |
||||||
|
public string InputFilePassedToProcessTemplate; |
||||||
|
public string OutputFilePassedToProcessTemplate; |
||||||
|
public bool ProcessTemplateReturnValue = true; |
||||||
|
public bool IsDisposeCalled; |
||||||
|
|
||||||
|
public bool ProcessTemplate(string inputFile, string outputFile) |
||||||
|
{ |
||||||
|
InputFilePassedToProcessTemplate = inputFile; |
||||||
|
OutputFilePassedToProcessTemplate = outputFile; |
||||||
|
return ProcessTemplateReturnValue; |
||||||
|
} |
||||||
|
|
||||||
|
public void Dispose() |
||||||
|
{ |
||||||
|
IsDisposeCalled = true; |
||||||
|
} |
||||||
|
|
||||||
|
public string OutputFile { get; set; } |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,24 @@ |
|||||||
|
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||||
|
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||||
|
|
||||||
|
using System; |
||||||
|
using ICSharpCode.SharpDevelop.Project; |
||||||
|
|
||||||
|
namespace TextTemplating.Tests.Helpers |
||||||
|
{ |
||||||
|
public class TestableFileProjectItem : FileProjectItem |
||||||
|
{ |
||||||
|
string fileName; |
||||||
|
|
||||||
|
public TestableFileProjectItem(string fileName) |
||||||
|
: base(null, ItemType.None) |
||||||
|
{ |
||||||
|
this.fileName = fileName; |
||||||
|
} |
||||||
|
|
||||||
|
public override string FileName { |
||||||
|
get { return fileName; } |
||||||
|
set { fileName = value; } |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,26 @@ |
|||||||
|
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||||
|
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||||
|
|
||||||
|
using System; |
||||||
|
using ICSharpCode.SharpDevelop.Project; |
||||||
|
using ICSharpCode.TextTemplating; |
||||||
|
|
||||||
|
namespace TextTemplating.Tests.Helpers |
||||||
|
{ |
||||||
|
public class TestableTextTemplatingFileGeneratorCustomTool : TextTemplatingFileGeneratorCustomTool |
||||||
|
{ |
||||||
|
public FileProjectItem ProjectFilePassedToCreateTextTemplatingFileGenerator; |
||||||
|
public CustomToolContext ContextPassedToCreateTextTemplatingFileGenerator; |
||||||
|
public FakeTextTemplatingFileGenerator FakeTextTemplatingFileGenerator = new FakeTextTemplatingFileGenerator(); |
||||||
|
|
||||||
|
protected override ITextTemplatingFileGenerator CreateTextTemplatingFileGenerator( |
||||||
|
FileProjectItem projectFile, |
||||||
|
CustomToolContext context) |
||||||
|
{ |
||||||
|
ProjectFilePassedToCreateTextTemplatingFileGenerator = projectFile; |
||||||
|
ContextPassedToCreateTextTemplatingFileGenerator = context; |
||||||
|
|
||||||
|
return FakeTextTemplatingFileGenerator; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,73 @@ |
|||||||
|
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||||
|
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||||
|
|
||||||
|
using System; |
||||||
|
using ICSharpCode.SharpDevelop.Internal.Templates; |
||||||
|
using ICSharpCode.SharpDevelop.Project; |
||||||
|
using ICSharpCode.TextTemplating; |
||||||
|
using NUnit.Framework; |
||||||
|
using TextTemplating.Tests.Helpers; |
||||||
|
|
||||||
|
namespace TextTemplating.Tests |
||||||
|
{ |
||||||
|
[TestFixture] |
||||||
|
public class TextTemplatingFileGeneratorCustomToolTests |
||||||
|
{ |
||||||
|
TestableTextTemplatingFileGeneratorCustomTool customTool; |
||||||
|
|
||||||
|
void CreateCustomTool() |
||||||
|
{ |
||||||
|
customTool = new TestableTextTemplatingFileGeneratorCustomTool(); |
||||||
|
} |
||||||
|
|
||||||
|
IProject CreateProject() |
||||||
|
{ |
||||||
|
return new MSBuildFileProject(@"d:\projects\test.csproj", "test"); |
||||||
|
} |
||||||
|
|
||||||
|
FileProjectItem GenerateCodeWithProjectFile() |
||||||
|
{ |
||||||
|
var file = new TestableFileProjectItem("test.tt"); |
||||||
|
customTool.GenerateCode(file, null); |
||||||
|
return file; |
||||||
|
} |
||||||
|
|
||||||
|
[Test] |
||||||
|
public void GenerateCode_ProjectFilePassed_ProjectFileUsedToCreateTextTemplatingFileGenerator() |
||||||
|
{ |
||||||
|
CreateCustomTool(); |
||||||
|
var file = GenerateCodeWithProjectFile(); |
||||||
|
|
||||||
|
Assert.AreEqual(file, customTool.ProjectFilePassedToCreateTextTemplatingFileGenerator); |
||||||
|
} |
||||||
|
|
||||||
|
[Test] |
||||||
|
public void GenerateCode_CustomToolContextPassed_CustomToolContextUsedToCreateTextTemplatingFileGenerator() |
||||||
|
{ |
||||||
|
CreateCustomTool(); |
||||||
|
IProject project = CreateProject(); |
||||||
|
var context = new CustomToolContext(project); |
||||||
|
customTool.GenerateCode(null, context); |
||||||
|
|
||||||
|
Assert.AreEqual(context, customTool.ContextPassedToCreateTextTemplatingFileGenerator); |
||||||
|
} |
||||||
|
|
||||||
|
[Test] |
||||||
|
public void GenerateCode_ProjectFilePassed_TemplateIsProcessed() |
||||||
|
{ |
||||||
|
CreateCustomTool(); |
||||||
|
GenerateCodeWithProjectFile(); |
||||||
|
|
||||||
|
Assert.IsTrue(customTool.FakeTextTemplatingFileGenerator.IsProcessTemplateCalled); |
||||||
|
} |
||||||
|
|
||||||
|
[Test] |
||||||
|
public void GenerateCode_ProjectFilePassed_TextTemplatingFileGeneratorIsDisposedAfterTemplateIsProcessed() |
||||||
|
{ |
||||||
|
CreateCustomTool(); |
||||||
|
GenerateCodeWithProjectFile(); |
||||||
|
|
||||||
|
Assert.IsTrue(customTool.FakeTextTemplatingFileGenerator.IsDisposeCalledAfterTemplateProcessed); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,83 @@ |
|||||||
|
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||||
|
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||||
|
|
||||||
|
using System; |
||||||
|
using ICSharpCode.SharpDevelop.Project; |
||||||
|
using ICSharpCode.TextTemplating; |
||||||
|
using NUnit.Framework; |
||||||
|
using TextTemplating.Tests.Helpers; |
||||||
|
|
||||||
|
namespace TextTemplating.Tests |
||||||
|
{ |
||||||
|
[TestFixture] |
||||||
|
public class TextTemplatingFileGeneratorTests |
||||||
|
{ |
||||||
|
TextTemplatingFileGenerator generator; |
||||||
|
FakeTextTemplatingHost templatingHost; |
||||||
|
FakeTextTemplatingCustomToolContext customToolContext; |
||||||
|
|
||||||
|
FileProjectItem ProcessTemplate(string fileName) |
||||||
|
{ |
||||||
|
var projectFile = CreateGenerator(fileName); |
||||||
|
generator.ProcessTemplate(); |
||||||
|
|
||||||
|
return projectFile; |
||||||
|
} |
||||||
|
|
||||||
|
FileProjectItem CreateGenerator(string fileName) |
||||||
|
{ |
||||||
|
templatingHost = new FakeTextTemplatingHost(); |
||||||
|
var projectFile = new TestableFileProjectItem(fileName); |
||||||
|
customToolContext = new FakeTextTemplatingCustomToolContext(); |
||||||
|
|
||||||
|
generator = new TextTemplatingFileGenerator(templatingHost, projectFile, customToolContext); |
||||||
|
|
||||||
|
return projectFile; |
||||||
|
} |
||||||
|
|
||||||
|
[Test] |
||||||
|
public void ProcessTemplate_TemplateFileInProjectPassed_TemplatingHostProcessesFile() |
||||||
|
{ |
||||||
|
string fileName = @"d:\projects\MyProject\template.tt"; |
||||||
|
ProcessTemplate(fileName); |
||||||
|
|
||||||
|
Assert.AreEqual(fileName, templatingHost.InputFilePassedToProcessTemplate); |
||||||
|
} |
||||||
|
|
||||||
|
[Test] |
||||||
|
public void ProcessTemplate_TemplateFileInProjectPassed_OutputFileNamePassedIsInputFileWithFileExtensionChangedToCSharpFileExtension() |
||||||
|
{ |
||||||
|
ProcessTemplate(@"d:\projects\MyProject\template.tt"); |
||||||
|
|
||||||
|
string expectedOutputFileName = @"d:\projects\MyProject\template.cs"; |
||||||
|
Assert.AreEqual(expectedOutputFileName, templatingHost.OutputFilePassedToProcessTemplate); |
||||||
|
} |
||||||
|
|
||||||
|
[Test] |
||||||
|
public void Dispose_TemplateHostUsedToCreateFileGenerator_TemplateHostIsDisposed() |
||||||
|
{ |
||||||
|
CreateGenerator(@"d:\template.tt"); |
||||||
|
generator.Dispose(); |
||||||
|
|
||||||
|
Assert.IsTrue(templatingHost.IsDisposeCalled); |
||||||
|
} |
||||||
|
|
||||||
|
[Test] |
||||||
|
public void ProcessTemplate_TemplateFileInProjectPassed_TemplateFileInProjectUsedWhenCheckingIfOutputFileExistsInProject() |
||||||
|
{ |
||||||
|
var file = ProcessTemplate(@"d:\template.tt"); |
||||||
|
|
||||||
|
Assert.AreEqual(file, customToolContext.BaseItemPassedToEnsureOutputFileIsInProject); |
||||||
|
} |
||||||
|
|
||||||
|
[Test] |
||||||
|
public void ProcessTemplate_OutputFileNameChangedWhenTemplateProcessed_NewOutputFileNameIsUsedWhenCheckingIfOutputFileExistsInProject() |
||||||
|
{ |
||||||
|
CreateGenerator(@"d:\template.tt"); |
||||||
|
templatingHost.OutputFile = @"d:\changed-output.test"; |
||||||
|
generator.ProcessTemplate(); |
||||||
|
|
||||||
|
Assert.AreEqual(@"d:\changed-output.test", customToolContext.OutputFileNamePassedToEnsureOutputFileIsInProject); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,94 @@ |
|||||||
|
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||||
|
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||||
|
|
||||||
|
using System; |
||||||
|
using System.IO; |
||||||
|
using ICSharpCode.TextTemplating; |
||||||
|
using NUnit.Framework; |
||||||
|
using TextTemplating.Tests.Helpers; |
||||||
|
|
||||||
|
namespace TextTemplating.Tests |
||||||
|
{ |
||||||
|
[TestFixture] |
||||||
|
public class TextTemplatingHostTests |
||||||
|
{ |
||||||
|
TextTemplatingHost host; |
||||||
|
FakeTextTemplatingAppDomainFactory textTemplatingAppDomainFactory; |
||||||
|
FakeTextTemplatingAppDomain textTemplatingAppDomain; |
||||||
|
|
||||||
|
void CreateHost() |
||||||
|
{ |
||||||
|
CreateHost(String.Empty); |
||||||
|
} |
||||||
|
|
||||||
|
void CreateHost(string applicationBase) |
||||||
|
{ |
||||||
|
textTemplatingAppDomainFactory = new FakeTextTemplatingAppDomainFactory(); |
||||||
|
textTemplatingAppDomain = textTemplatingAppDomainFactory.FakeTextTemplatingAppDomain; |
||||||
|
host = new TextTemplatingHost(textTemplatingAppDomainFactory, applicationBase); |
||||||
|
} |
||||||
|
|
||||||
|
[Test] |
||||||
|
public void ProvideTemplatingAppDomain_PassedContentName_ReturnsDomainFromTextTemplatingAppDomainFactory() |
||||||
|
{ |
||||||
|
CreateHost(); |
||||||
|
AppDomain expectedAppDomain = AppDomain.CreateDomain("TextTemplatingHostTests"); |
||||||
|
textTemplatingAppDomain.AppDomain = expectedAppDomain; |
||||||
|
|
||||||
|
AppDomain actualAppDomain = host.ProvideTemplatingAppDomain("test"); |
||||||
|
|
||||||
|
Assert.AreEqual(expectedAppDomain, actualAppDomain); |
||||||
|
} |
||||||
|
|
||||||
|
[Test] |
||||||
|
public void Dispose_DisposingHostAfterProvideTemplatingAppDomainCalled_DisposesTemplatingAppDomain() |
||||||
|
{ |
||||||
|
CreateHost(); |
||||||
|
host.ProvideTemplatingAppDomain("test"); |
||||||
|
host.Dispose(); |
||||||
|
|
||||||
|
Assert.IsTrue(textTemplatingAppDomain.IsDisposeCalled); |
||||||
|
} |
||||||
|
|
||||||
|
[Test] |
||||||
|
public void Dispose_DisposingHostWhenProvideTemplatingAppDomainIsNotCalled_DoesNotThrowNullReferenceException() |
||||||
|
{ |
||||||
|
CreateHost(); |
||||||
|
Assert.DoesNotThrow(() => host.Dispose()); |
||||||
|
} |
||||||
|
|
||||||
|
[Test] |
||||||
|
public void ProvideTemplatingAppDomain_MethodCalledTwice_AppDomainCreatedOnce() |
||||||
|
{ |
||||||
|
CreateHost(); |
||||||
|
host.ProvideTemplatingAppDomain("test"); |
||||||
|
host.ProvideTemplatingAppDomain("test"); |
||||||
|
|
||||||
|
Assert.AreEqual(1, textTemplatingAppDomainFactory.CreateTextTemplatingAppDomainCallCount); |
||||||
|
} |
||||||
|
|
||||||
|
[Test] |
||||||
|
public void Dispose_DisposeCalledTwiceHostAfterProvideTemplatingAppDomainCalled_DisposesTemplatingAppDomainOnce() |
||||||
|
{ |
||||||
|
CreateHost(); |
||||||
|
host.ProvideTemplatingAppDomain("test"); |
||||||
|
host.Dispose(); |
||||||
|
|
||||||
|
textTemplatingAppDomain.IsDisposeCalled = false; |
||||||
|
host.Dispose(); |
||||||
|
|
||||||
|
Assert.IsFalse(textTemplatingAppDomain.IsDisposeCalled); |
||||||
|
} |
||||||
|
|
||||||
|
[Test] |
||||||
|
public void ProvideTemplatingAppDomain_PassedContentName_HostApplicationBaseIsUsedAsAppDomainSetupApplicationBase() |
||||||
|
{ |
||||||
|
string applicationBase = @"d:\sharpdevelop\addins\texttemplating"; |
||||||
|
CreateHost(applicationBase); |
||||||
|
host.ProvideTemplatingAppDomain("test"); |
||||||
|
|
||||||
|
string actualApplicationBase = textTemplatingAppDomainFactory.ApplicationBasePassedToCreateTextTemplatingAppDomain; |
||||||
|
Assert.AreEqual(applicationBase, actualApplicationBase); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,89 @@ |
|||||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||||
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build"> |
||||||
|
<PropertyGroup> |
||||||
|
<ProjectGuid>{5186325C-DD7F-4246-9BE7-3F384EFBF5A6}</ProjectGuid> |
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> |
||||||
|
<Platform Condition=" '$(Platform)' == '' ">x86</Platform> |
||||||
|
<OutputType>Library</OutputType> |
||||||
|
<RootNamespace>TextTemplating.Tests</RootNamespace> |
||||||
|
<AssemblyName>TextTemplating.Tests</AssemblyName> |
||||||
|
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion> |
||||||
|
<AppDesignerFolder>Properties</AppDesignerFolder> |
||||||
|
<AllowUnsafeBlocks>False</AllowUnsafeBlocks> |
||||||
|
<NoStdLib>False</NoStdLib> |
||||||
|
<WarningLevel>4</WarningLevel> |
||||||
|
<TreatWarningsAsErrors>false</TreatWarningsAsErrors> |
||||||
|
<OutputPath>..\..\..\..\..\..\bin\UnitTests\</OutputPath> |
||||||
|
</PropertyGroup> |
||||||
|
<PropertyGroup Condition=" '$(Platform)' == 'x86' "> |
||||||
|
<PlatformTarget>x86</PlatformTarget> |
||||||
|
<RegisterForComInterop>False</RegisterForComInterop> |
||||||
|
<GenerateSerializationAssemblies>Auto</GenerateSerializationAssemblies> |
||||||
|
<BaseAddress>4194304</BaseAddress> |
||||||
|
<FileAlignment>4096</FileAlignment> |
||||||
|
</PropertyGroup> |
||||||
|
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' "> |
||||||
|
<DebugSymbols>true</DebugSymbols> |
||||||
|
<DebugType>Full</DebugType> |
||||||
|
<Optimize>False</Optimize> |
||||||
|
<CheckForOverflowUnderflow>True</CheckForOverflowUnderflow> |
||||||
|
<DefineConstants>DEBUG;TRACE</DefineConstants> |
||||||
|
<StartAction>Project</StartAction> |
||||||
|
</PropertyGroup> |
||||||
|
<PropertyGroup Condition=" '$(Configuration)' == 'Release' "> |
||||||
|
<DebugSymbols>false</DebugSymbols> |
||||||
|
<DebugType>None</DebugType> |
||||||
|
<Optimize>True</Optimize> |
||||||
|
<CheckForOverflowUnderflow>False</CheckForOverflowUnderflow> |
||||||
|
<DefineConstants>TRACE</DefineConstants> |
||||||
|
</PropertyGroup> |
||||||
|
<ItemGroup> |
||||||
|
<Reference Include="Mono.TextTemplating"> |
||||||
|
<HintPath>..\Project\lib\Mono.TextTemplating.dll</HintPath> |
||||||
|
</Reference> |
||||||
|
<Reference Include="nunit.framework"> |
||||||
|
<HintPath>..\..\..\..\Tools\NUnit\nunit.framework.dll</HintPath> |
||||||
|
</Reference> |
||||||
|
<Reference Include="System" /> |
||||||
|
<Reference Include="System.Core"> |
||||||
|
<RequiredTargetFramework>3.5</RequiredTargetFramework> |
||||||
|
</Reference> |
||||||
|
<Reference Include="System.Xml" /> |
||||||
|
</ItemGroup> |
||||||
|
<ItemGroup> |
||||||
|
<Compile Include="..\..\..\..\Main\GlobalAssemblyInfo.cs"> |
||||||
|
<Link>Configuration\GlobalAssemblyInfo.cs</Link> |
||||||
|
</Compile> |
||||||
|
<Compile Include="Configuration\AssemblyInfo.cs" /> |
||||||
|
<Compile Include="Helpers\FakeTextTemplatingAppDomain.cs" /> |
||||||
|
<Compile Include="Helpers\FakeTextTemplatingAppDomainFactory.cs" /> |
||||||
|
<Compile Include="Helpers\FakeTextTemplatingCustomToolContext.cs" /> |
||||||
|
<Compile Include="Helpers\FakeTextTemplatingHost.cs" /> |
||||||
|
<Compile Include="Helpers\FakeTextTemplatingFileGenerator.cs" /> |
||||||
|
<Compile Include="Helpers\TestableFileProjectItem.cs" /> |
||||||
|
<Compile Include="Helpers\TestableTextTemplatingFileGeneratorCustomTool.cs" /> |
||||||
|
<Compile Include="Src\TextTemplatingFileGeneratorCustomToolTests.cs" /> |
||||||
|
<Compile Include="Src\TextTemplatingFileGeneratorTests.cs" /> |
||||||
|
<Compile Include="Src\TextTemplatingHostTests.cs" /> |
||||||
|
</ItemGroup> |
||||||
|
<ItemGroup> |
||||||
|
<Folder Include="Configuration" /> |
||||||
|
<Folder Include="Src" /> |
||||||
|
<Folder Include="Helpers" /> |
||||||
|
</ItemGroup> |
||||||
|
<ItemGroup> |
||||||
|
<ProjectReference Include="..\..\..\..\Main\Base\Project\ICSharpCode.SharpDevelop.csproj"> |
||||||
|
<Project>{2748AD25-9C63-4E12-877B-4DCE96FBED54}</Project> |
||||||
|
<Name>ICSharpCode.SharpDevelop</Name> |
||||||
|
</ProjectReference> |
||||||
|
<ProjectReference Include="..\..\..\..\Main\Core\Project\ICSharpCode.Core.csproj"> |
||||||
|
<Project>{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}</Project> |
||||||
|
<Name>ICSharpCode.Core</Name> |
||||||
|
</ProjectReference> |
||||||
|
<ProjectReference Include="..\Project\TextTemplating.csproj"> |
||||||
|
<Project>{B5D8C3E6-42EC-4D4B-AD05-3644B32563EF}</Project> |
||||||
|
<Name>TextTemplating</Name> |
||||||
|
</ProjectReference> |
||||||
|
</ItemGroup> |
||||||
|
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" /> |
||||||
|
</Project> |
@ -0,0 +1,110 @@ |
|||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 11.00 |
||||||
|
# Visual Studio 2010 |
||||||
|
# SharpDevelop 4.1.0.7318-alpha |
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TextTemplating", "Project\TextTemplating.csproj", "{B5D8C3E6-42EC-4D4B-AD05-3644B32563EF}" |
||||||
|
EndProject |
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AvalonDock", "..\..\..\Libraries\AvalonDock\AvalonDock\AvalonDock.csproj", "{87E61430-4243-45F2-B74E-0A4C096CEBF3}" |
||||||
|
EndProject |
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.AvalonEdit", "..\..\..\Libraries\AvalonEdit\ICSharpCode.AvalonEdit\ICSharpCode.AvalonEdit.csproj", "{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}" |
||||||
|
EndProject |
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Core.Presentation", "..\..\..\Main\ICSharpCode.Core.Presentation\ICSharpCode.Core.Presentation.csproj", "{7E4A7172-7FF5-48D0-B719-7CD959DD1AC9}" |
||||||
|
EndProject |
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Core.WinForms", "..\..\..\Main\ICSharpCode.Core.WinForms\ICSharpCode.Core.WinForms.csproj", "{857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}" |
||||||
|
EndProject |
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.Dom", "..\..\..\Main\ICSharpCode.SharpDevelop.Dom\Project\ICSharpCode.SharpDevelop.Dom.csproj", "{924EE450-603D-49C1-A8E5-4AFAA31CE6F3}" |
||||||
|
EndProject |
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.Widgets", "..\..\..\Main\ICSharpCode.SharpDevelop.Widgets\Project\ICSharpCode.SharpDevelop.Widgets.csproj", "{8035765F-D51F-4A0C-A746-2FD100E19419}" |
||||||
|
EndProject |
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TextTemplating.Tests", "Test\TextTemplating.Tests.csproj", "{5186325C-DD7F-4246-9BE7-3F384EFBF5A6}" |
||||||
|
EndProject |
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop", "..\..\..\Main\Base\Project\ICSharpCode.SharpDevelop.csproj", "{2748AD25-9C63-4E12-877B-4DCE96FBED54}" |
||||||
|
EndProject |
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Core", "..\..\..\Main\Core\Project\ICSharpCode.Core.csproj", "{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}" |
||||||
|
EndProject |
||||||
|
Global |
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution |
||||||
|
Debug|x86 = Debug|x86 |
||||||
|
Release|x86 = Release|x86 |
||||||
|
Debug|Any CPU = Debug|Any CPU |
||||||
|
Release|Any CPU = Release|Any CPU |
||||||
|
EndGlobalSection |
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution |
||||||
|
{B5D8C3E6-42EC-4D4B-AD05-3644B32563EF}.Debug|x86.Build.0 = Debug|x86 |
||||||
|
{B5D8C3E6-42EC-4D4B-AD05-3644B32563EF}.Debug|x86.ActiveCfg = Debug|x86 |
||||||
|
{B5D8C3E6-42EC-4D4B-AD05-3644B32563EF}.Release|x86.Build.0 = Release|x86 |
||||||
|
{B5D8C3E6-42EC-4D4B-AD05-3644B32563EF}.Release|x86.ActiveCfg = Release|x86 |
||||||
|
{87E61430-4243-45F2-B74E-0A4C096CEBF3}.Debug|x86.Build.0 = Debug|Any CPU |
||||||
|
{87E61430-4243-45F2-B74E-0A4C096CEBF3}.Debug|x86.ActiveCfg = Debug|Any CPU |
||||||
|
{87E61430-4243-45F2-B74E-0A4C096CEBF3}.Debug|Any CPU.Build.0 = Debug|Any CPU |
||||||
|
{87E61430-4243-45F2-B74E-0A4C096CEBF3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
||||||
|
{87E61430-4243-45F2-B74E-0A4C096CEBF3}.Release|x86.Build.0 = Release|Any CPU |
||||||
|
{87E61430-4243-45F2-B74E-0A4C096CEBF3}.Release|x86.ActiveCfg = Release|Any CPU |
||||||
|
{87E61430-4243-45F2-B74E-0A4C096CEBF3}.Release|Any CPU.Build.0 = Release|Any CPU |
||||||
|
{87E61430-4243-45F2-B74E-0A4C096CEBF3}.Release|Any CPU.ActiveCfg = Release|Any CPU |
||||||
|
{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|x86.Build.0 = Debug|Any CPU |
||||||
|
{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|x86.ActiveCfg = Debug|Any CPU |
||||||
|
{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|Any CPU.Build.0 = Debug|Any CPU |
||||||
|
{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
||||||
|
{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Release|x86.Build.0 = Release|Any CPU |
||||||
|
{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Release|x86.ActiveCfg = Release|Any CPU |
||||||
|
{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Release|Any CPU.Build.0 = Release|Any CPU |
||||||
|
{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Release|Any CPU.ActiveCfg = Release|Any CPU |
||||||
|
{7E4A7172-7FF5-48D0-B719-7CD959DD1AC9}.Debug|x86.Build.0 = Debug|Any CPU |
||||||
|
{7E4A7172-7FF5-48D0-B719-7CD959DD1AC9}.Debug|x86.ActiveCfg = Debug|Any CPU |
||||||
|
{7E4A7172-7FF5-48D0-B719-7CD959DD1AC9}.Debug|Any CPU.Build.0 = Debug|Any CPU |
||||||
|
{7E4A7172-7FF5-48D0-B719-7CD959DD1AC9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
||||||
|
{7E4A7172-7FF5-48D0-B719-7CD959DD1AC9}.Release|x86.Build.0 = Release|Any CPU |
||||||
|
{7E4A7172-7FF5-48D0-B719-7CD959DD1AC9}.Release|x86.ActiveCfg = Release|Any CPU |
||||||
|
{7E4A7172-7FF5-48D0-B719-7CD959DD1AC9}.Release|Any CPU.Build.0 = Release|Any CPU |
||||||
|
{7E4A7172-7FF5-48D0-B719-7CD959DD1AC9}.Release|Any CPU.ActiveCfg = Release|Any CPU |
||||||
|
{857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}.Debug|x86.Build.0 = Debug|Any CPU |
||||||
|
{857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}.Debug|x86.ActiveCfg = Debug|Any CPU |
||||||
|
{857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}.Debug|Any CPU.Build.0 = Debug|Any CPU |
||||||
|
{857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
||||||
|
{857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}.Release|x86.Build.0 = Release|Any CPU |
||||||
|
{857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}.Release|x86.ActiveCfg = Release|Any CPU |
||||||
|
{857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}.Release|Any CPU.Build.0 = Release|Any CPU |
||||||
|
{857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}.Release|Any CPU.ActiveCfg = Release|Any CPU |
||||||
|
{924EE450-603D-49C1-A8E5-4AFAA31CE6F3}.Debug|x86.Build.0 = Debug|Any CPU |
||||||
|
{924EE450-603D-49C1-A8E5-4AFAA31CE6F3}.Debug|x86.ActiveCfg = Debug|Any CPU |
||||||
|
{924EE450-603D-49C1-A8E5-4AFAA31CE6F3}.Debug|Any CPU.Build.0 = Debug|Any CPU |
||||||
|
{924EE450-603D-49C1-A8E5-4AFAA31CE6F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
||||||
|
{924EE450-603D-49C1-A8E5-4AFAA31CE6F3}.Release|x86.Build.0 = Release|Any CPU |
||||||
|
{924EE450-603D-49C1-A8E5-4AFAA31CE6F3}.Release|x86.ActiveCfg = Release|Any CPU |
||||||
|
{924EE450-603D-49C1-A8E5-4AFAA31CE6F3}.Release|Any CPU.Build.0 = Release|Any CPU |
||||||
|
{924EE450-603D-49C1-A8E5-4AFAA31CE6F3}.Release|Any CPU.ActiveCfg = Release|Any CPU |
||||||
|
{8035765F-D51F-4A0C-A746-2FD100E19419}.Debug|x86.Build.0 = Debug|Any CPU |
||||||
|
{8035765F-D51F-4A0C-A746-2FD100E19419}.Debug|x86.ActiveCfg = Debug|Any CPU |
||||||
|
{8035765F-D51F-4A0C-A746-2FD100E19419}.Debug|Any CPU.Build.0 = Debug|Any CPU |
||||||
|
{8035765F-D51F-4A0C-A746-2FD100E19419}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
||||||
|
{8035765F-D51F-4A0C-A746-2FD100E19419}.Release|x86.Build.0 = Release|Any CPU |
||||||
|
{8035765F-D51F-4A0C-A746-2FD100E19419}.Release|x86.ActiveCfg = Release|Any CPU |
||||||
|
{8035765F-D51F-4A0C-A746-2FD100E19419}.Release|Any CPU.Build.0 = Release|Any CPU |
||||||
|
{8035765F-D51F-4A0C-A746-2FD100E19419}.Release|Any CPU.ActiveCfg = Release|Any CPU |
||||||
|
{5186325C-DD7F-4246-9BE7-3F384EFBF5A6}.Debug|x86.Build.0 = Debug|x86 |
||||||
|
{5186325C-DD7F-4246-9BE7-3F384EFBF5A6}.Debug|x86.ActiveCfg = Debug|x86 |
||||||
|
{5186325C-DD7F-4246-9BE7-3F384EFBF5A6}.Debug|Any CPU.Build.0 = Debug|x86 |
||||||
|
{5186325C-DD7F-4246-9BE7-3F384EFBF5A6}.Debug|Any CPU.ActiveCfg = Debug|x86 |
||||||
|
{5186325C-DD7F-4246-9BE7-3F384EFBF5A6}.Release|x86.Build.0 = Release|x86 |
||||||
|
{5186325C-DD7F-4246-9BE7-3F384EFBF5A6}.Release|x86.ActiveCfg = Release|x86 |
||||||
|
{5186325C-DD7F-4246-9BE7-3F384EFBF5A6}.Release|Any CPU.Build.0 = Release|x86 |
||||||
|
{5186325C-DD7F-4246-9BE7-3F384EFBF5A6}.Release|Any CPU.ActiveCfg = Release|x86 |
||||||
|
{2748AD25-9C63-4E12-877B-4DCE96FBED54}.Debug|x86.Build.0 = Debug|Any CPU |
||||||
|
{2748AD25-9C63-4E12-877B-4DCE96FBED54}.Debug|x86.ActiveCfg = Debug|Any CPU |
||||||
|
{2748AD25-9C63-4E12-877B-4DCE96FBED54}.Debug|Any CPU.Build.0 = Debug|Any CPU |
||||||
|
{2748AD25-9C63-4E12-877B-4DCE96FBED54}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
||||||
|
{2748AD25-9C63-4E12-877B-4DCE96FBED54}.Release|x86.Build.0 = Release|Any CPU |
||||||
|
{2748AD25-9C63-4E12-877B-4DCE96FBED54}.Release|x86.ActiveCfg = Release|Any CPU |
||||||
|
{2748AD25-9C63-4E12-877B-4DCE96FBED54}.Release|Any CPU.Build.0 = Release|Any CPU |
||||||
|
{2748AD25-9C63-4E12-877B-4DCE96FBED54}.Release|Any CPU.ActiveCfg = Release|Any CPU |
||||||
|
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}.Debug|x86.Build.0 = Debug|Any CPU |
||||||
|
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}.Debug|x86.ActiveCfg = Debug|Any CPU |
||||||
|
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}.Debug|Any CPU.Build.0 = Debug|Any CPU |
||||||
|
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
||||||
|
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}.Release|x86.Build.0 = Release|Any CPU |
||||||
|
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}.Release|x86.ActiveCfg = Release|Any CPU |
||||||
|
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}.Release|Any CPU.Build.0 = Release|Any CPU |
||||||
|
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}.Release|Any CPU.ActiveCfg = Release|Any CPU |
||||||
|
EndGlobalSection |
||||||
|
EndGlobal |
Loading…
Reference in new issue