Added Support for Visual Studio 2013 and Generating the class as Internal (C#) or Friend (VB)
This commit is contained in:
@@ -3,6 +3,7 @@ using System.CodeDom;
|
||||
using System.CodeDom.Compiler;
|
||||
using System.Globalization;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
using Microsoft.CSharp;
|
||||
|
||||
@@ -11,12 +12,12 @@ namespace ChristianHelle.DeveloperTools.CodeGenerators.Resw.VSPackage.CustomTool
|
||||
public class CodeDomCodeGenerator : CodeGenerator, IDisposable
|
||||
{
|
||||
private readonly string className;
|
||||
private readonly MemberAttributes? classAccessibility;
|
||||
private readonly TypeAttributes? classAccessibility;
|
||||
private readonly CodeNamespace codeNamespace;
|
||||
private readonly CodeCompileUnit compileUnit;
|
||||
private readonly CodeDomProvider provider;
|
||||
|
||||
public CodeDomCodeGenerator(IResourceParser resourceParser, string className, string defaultNamespace, CodeDomProvider codeDomProvider = null, MemberAttributes? classAccessibility = null)
|
||||
public CodeDomCodeGenerator(IResourceParser resourceParser, string className, string defaultNamespace, CodeDomProvider codeDomProvider = null, TypeAttributes? classAccessibility = null)
|
||||
: base(resourceParser, defaultNamespace)
|
||||
{
|
||||
this.className = className;
|
||||
@@ -47,7 +48,7 @@ namespace ChristianHelle.DeveloperTools.CodeGenerators.Resw.VSPackage.CustomTool
|
||||
{
|
||||
IsClass = true,
|
||||
IsPartial = true,
|
||||
Attributes = (classAccessibility.HasValue ? classAccessibility.Value : MemberAttributes.Public) | MemberAttributes.Static
|
||||
TypeAttributes = classAccessibility.HasValue ? classAccessibility.Value : TypeAttributes.Public
|
||||
};
|
||||
|
||||
const string resourceLoaderType = "ResourceLoader";
|
||||
@@ -159,7 +160,7 @@ namespace ChristianHelle.DeveloperTools.CodeGenerators.Resw.VSPackage.CustomTool
|
||||
}
|
||||
|
||||
#region IDisposable
|
||||
|
||||
|
||||
private bool disposed;
|
||||
|
||||
~CodeDomCodeGenerator()
|
||||
@@ -180,7 +181,7 @@ namespace ChristianHelle.DeveloperTools.CodeGenerators.Resw.VSPackage.CustomTool
|
||||
|
||||
if (dispose)
|
||||
provider.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
using System.CodeDom;
|
||||
using System.CodeDom.Compiler;
|
||||
using System.Reflection;
|
||||
|
||||
namespace ChristianHelle.DeveloperTools.CodeGenerators.Resw.VSPackage.CustomTool
|
||||
{
|
||||
public class CodeGeneratorFactory
|
||||
{
|
||||
public ICodeGenerator Create(string className, string defaultNamespace, string inputFileContents, CodeDomProvider codeDomProvider = null, MemberAttributes? classAccessibility = null)
|
||||
public ICodeGenerator Create(string className, string defaultNamespace, string inputFileContents, CodeDomProvider codeDomProvider = null, TypeAttributes? classAccessibility = null)
|
||||
{
|
||||
return new CodeDomCodeGenerator(new ResourceParser(inputFileContents), className, defaultNamespace, codeDomProvider, classAccessibility);
|
||||
}
|
||||
|
||||
+2
-1
@@ -1,4 +1,5 @@
|
||||
using System.CodeDom;
|
||||
using System.Reflection;
|
||||
using System.Runtime.InteropServices;
|
||||
using Microsoft.CSharp;
|
||||
|
||||
@@ -9,7 +10,7 @@ namespace ChristianHelle.DeveloperTools.CodeGenerators.Resw.VSPackage.CustomTool
|
||||
public class ReswFileCSharpCodeGeneratorInternal : ReswFileCodeGenerator
|
||||
{
|
||||
public ReswFileCSharpCodeGeneratorInternal()
|
||||
: base(new CSharpCodeProvider(), MemberAttributes.Assembly)
|
||||
: base(new CSharpCodeProvider(), TypeAttributes.NestedAssembly)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
using System;
|
||||
using System.CodeDom;
|
||||
using System.CodeDom.Compiler;
|
||||
using System.Reflection;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
@@ -12,9 +13,9 @@ namespace ChristianHelle.DeveloperTools.CodeGenerators.Resw.VSPackage.CustomTool
|
||||
public abstract class ReswFileCodeGenerator : IVsSingleFileGenerator
|
||||
{
|
||||
private readonly CodeDomProvider codeDomProvider;
|
||||
private readonly MemberAttributes? classAccessibility;
|
||||
private readonly TypeAttributes? classAccessibility;
|
||||
|
||||
protected ReswFileCodeGenerator(CodeDomProvider codeDomProvider, MemberAttributes? classAccessibility = null)
|
||||
protected ReswFileCodeGenerator(CodeDomProvider codeDomProvider, TypeAttributes? classAccessibility = null)
|
||||
{
|
||||
this.codeDomProvider = codeDomProvider;
|
||||
this.classAccessibility = classAccessibility;
|
||||
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
using System.CodeDom;
|
||||
using System.Reflection;
|
||||
using System.Runtime.InteropServices;
|
||||
using Microsoft.VisualBasic;
|
||||
|
||||
@@ -9,7 +9,7 @@ namespace ChristianHelle.DeveloperTools.CodeGenerators.Resw.VSPackage.CustomTool
|
||||
public class ReswFileVisualBasicCodeGeneratorInternal : ReswFileCodeGenerator
|
||||
{
|
||||
public ReswFileVisualBasicCodeGeneratorInternal()
|
||||
: base(new VBCodeProvider(), MemberAttributes.Assembly)
|
||||
: base(new VBCodeProvider(), TypeAttributes.NestedAssembly)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@@ -27,12 +27,14 @@ namespace ChristianHelle.DeveloperTools.CodeGenerators.Resw.VSPackage
|
||||
[DefaultRegistryRoot("Software\\Microsoft\\VisualStudio\\11.0")]
|
||||
[ProvideObject(typeof(ReswFileCSharpCodeGenerator))]
|
||||
[ProvideObject(typeof(ReswFileVisualBasicCodeGenerator))]
|
||||
[ProvideObject(typeof(ReswFileCSharpCodeGeneratorInternal))]
|
||||
[ProvideObject(typeof(ReswFileVisualBasicCodeGeneratorInternal))]
|
||||
[ProvideGeneratorAttribute(typeof(ReswFileCSharpCodeGenerator), "ReswFileCodeGenerator", "ResW File Code Generator for C#", "{FAE04EC1-301F-11D3-BF4B-00C04F79EFBC}", true)] // csharp
|
||||
[ProvideGeneratorAttribute(typeof(ReswFileVisualBasicCodeGenerator), "ReswFileCodeGenerator", "ResW File Code Generator for VB", "{164B10B9-B200-11D0-8C61-00A0C91E29D5}", true)] // visual basic
|
||||
[ProvideGeneratorAttribute(typeof(ReswFileCSharpCodeGenerator), "PublicReswFileCodeGenerator", "ResW File Code Generator for C#", "{FAE04EC1-301F-11D3-BF4B-00C04F79EFBC}", true)] // csharp
|
||||
[ProvideGeneratorAttribute(typeof(ReswFileVisualBasicCodeGenerator), "PublicReswFileCodeGenerator", "ResW File Code Generator for VB", "{164B10B9-B200-11D0-8C61-00A0C91E29D5}", true)] // visual basic
|
||||
[ProvideGeneratorAttribute(typeof(ReswFileCSharpCodeGeneratorInternal), "InternalReswFileCodeGenerator", "ResW File Code Generator for C#", "{151F74CA-404D-4188-B994-D7683C32ACF4}", true)] // csharp
|
||||
[ProvideGeneratorAttribute(typeof(ReswFileVisualBasicCodeGeneratorInternal), "InternalReswFileCodeGenerator", "ResW File Code Generator for VB", "{6C6AC14F-9B11-47C1-BC90-DFBFB89B1CB8}", true)] // visual basic
|
||||
[ProvideGeneratorAttribute(typeof(ReswFileCSharpCodeGeneratorInternal), "InternalReswFileCodeGenerator", "ResW File Code Generator for C#", "{FAE04EC1-301F-11D3-BF4B-00C04F79EFBC}", true)] // csharp
|
||||
[ProvideGeneratorAttribute(typeof(ReswFileVisualBasicCodeGeneratorInternal), "InternalReswFileCodeGenerator", "ResW File Code Generator for VB", "{164B10B9-B200-11D0-8C61-00A0C91E29D5}", true)] // visual basic
|
||||
public sealed class VisualStudio2012Package : Package
|
||||
{
|
||||
/// <summary>
|
||||
|
||||
@@ -27,12 +27,14 @@ namespace ChristianHelle.DeveloperTools.CodeGenerators.Resw.VSPackage
|
||||
[DefaultRegistryRoot("Software\\Microsoft\\VisualStudio\\12.0")]
|
||||
[ProvideObject(typeof(ReswFileCSharpCodeGenerator))]
|
||||
[ProvideObject(typeof(ReswFileVisualBasicCodeGenerator))]
|
||||
[ProvideObject(typeof(ReswFileCSharpCodeGeneratorInternal))]
|
||||
[ProvideObject(typeof(ReswFileVisualBasicCodeGeneratorInternal))]
|
||||
[ProvideGeneratorAttribute(typeof(ReswFileCSharpCodeGenerator), "ReswFileCodeGenerator", "ResW File Code Generator for C#", "{FAE04EC1-301F-11D3-BF4B-00C04F79EFBC}", true)] // csharp
|
||||
[ProvideGeneratorAttribute(typeof(ReswFileVisualBasicCodeGenerator), "ReswFileCodeGenerator", "ResW File Code Generator for VB", "{164B10B9-B200-11D0-8C61-00A0C91E29D5}", true)] // visual basic
|
||||
[ProvideGeneratorAttribute(typeof(ReswFileCSharpCodeGenerator), "PublicReswFileCodeGenerator", "ResW File Code Generator for C#", "{FAE04EC1-301F-11D3-BF4B-00C04F79EFBC}", true)] // csharp
|
||||
[ProvideGeneratorAttribute(typeof(ReswFileVisualBasicCodeGenerator), "PublicReswFileCodeGenerator", "ResW File Code Generator for VB", "{164B10B9-B200-11D0-8C61-00A0C91E29D5}", true)] // visual basic
|
||||
[ProvideGeneratorAttribute(typeof(ReswFileCSharpCodeGeneratorInternal), "InternalReswFileCodeGenerator", "ResW File Code Generator for C#", "{151F74CA-404D-4188-B994-D7683C32ACF4}", true)] // csharp
|
||||
[ProvideGeneratorAttribute(typeof(ReswFileVisualBasicCodeGeneratorInternal), "InternalReswFileCodeGenerator", "ResW File Code Generator for VB", "{6C6AC14F-9B11-47C1-BC90-DFBFB89B1CB8}", true)] // visual basic
|
||||
[ProvideGeneratorAttribute(typeof(ReswFileCSharpCodeGeneratorInternal), "InternalReswFileCodeGenerator", "ResW File Code Generator for C#", "{FAE04EC1-301F-11D3-BF4B-00C04F79EFBC}", true)] // csharp
|
||||
[ProvideGeneratorAttribute(typeof(ReswFileVisualBasicCodeGeneratorInternal), "InternalReswFileCodeGenerator", "ResW File Code Generator for VB", "{164B10B9-B200-11D0-8C61-00A0C91E29D5}", true)] // visual basic
|
||||
public sealed class VisualStudio2013Package : Package
|
||||
{
|
||||
/// <summary>
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
Language="en-US"
|
||||
Publisher="Christian Resma Helle" />
|
||||
<DisplayName>ResW File Code Generator</DisplayName>
|
||||
<Description>Information about my packageA Visual Studio 2012 Custom Tool for generating a strongly typed helper class for accessing localized resources from a .ResW file.</Description>
|
||||
<Description xml:space="preserve">A Visual Studio Custom Tool for generating a strongly typed helper class for accessing localized resources from a .ResW file.</Description>
|
||||
<MoreInfo>http://visualstudiogallery.msdn.microsoft.com/3ab88efd-1afb-4ff5-9faf-8825a282596a</MoreInfo>
|
||||
<License>License.txt</License>
|
||||
</Metadata>
|
||||
|
||||
Reference in New Issue
Block a user