diff --git a/src/AddIns/BackendBindings/Boo/BooBinding/Project/BooBinding.csproj b/src/AddIns/BackendBindings/Boo/BooBinding/Project/BooBinding.csproj index 72d60c7a3e..83267217fd 100644 --- a/src/AddIns/BackendBindings/Boo/BooBinding/Project/BooBinding.csproj +++ b/src/AddIns/BackendBindings/Boo/BooBinding/Project/BooBinding.csproj @@ -82,6 +82,7 @@ + diff --git a/src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/BooCodeGenerator.cs b/src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/BooCodeGenerator.cs new file mode 100644 index 0000000000..66541d8cfd --- /dev/null +++ b/src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/BooCodeGenerator.cs @@ -0,0 +1,68 @@ +/* + * Created by SharpDevelop. + * User: Daniel Grunwald + * Date: 22.10.2005 + * Time: 15:07 + */ + +using System; +using System.IO; +using System.Text; +using ICSharpCode.Core; +using ICSharpCode.SharpDevelop.Refactoring; +using ICSharpCode.NRefactory.Parser.AST; +using NRefactoryToBooConverter; +using Boo.Lang.Compiler; +using Boo.Lang.Compiler.Ast; +using Boo.Lang.Compiler.Ast.Visitors; + +namespace Grunwald.BooBinding +{ + /// + /// Description of BooCodeGenerator. + /// + public class BooCodeGenerator : CodeGenerator + { + public override string GenerateCode(AbstractNode node, string indentation) + { + StringBuilder errorBuilder = new StringBuilder(); + ConverterSettings settings = new ConverterSettings("codegeneration.cs"); + string output = null; + + Node booNode = (Node)node.AcceptVisitor(new ConvertVisitor(settings), null); + + if (settings.Errors.Count > 0) { + foreach (CompilerError error in settings.Errors) { + errorBuilder.AppendLine(error.ToString()); + } + } else { + if (settings.Warnings.Count > 0) { + foreach (CompilerWarning warning in settings.Warnings) { + errorBuilder.AppendLine(warning.ToString()); + } + } + using (StringWriter w = new StringWriter()) { + BooPrinterVisitor printer = new BooPrinterVisitor(w); + int indentCount = 0; + foreach (char c in indentation) { + if (c == '\t') + indentCount += 4; + else + indentCount += 1; + } + indentCount /= 4; + while (indentCount-- > 0) + printer.Indent(); + booNode.Accept(printer); + output = w.ToString(); + } + } + if (errorBuilder.Length > 0) { + MessageService.ShowMessage(errorBuilder.ToString()); + } + return output; + } + + public static readonly BooCodeGenerator Instance = new BooCodeGenerator(); + } +} diff --git a/src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/BooLanguageProperties.cs b/src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/BooLanguageProperties.cs index 504e7c7426..7cdc4873ec 100644 --- a/src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/BooLanguageProperties.cs +++ b/src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/BooLanguageProperties.cs @@ -14,7 +14,7 @@ namespace Grunwald.BooBinding { public readonly static BooLanguageProperties Instance = new BooLanguageProperties(); - public BooLanguageProperties() : base(StringComparer.InvariantCulture) {} + public BooLanguageProperties() : base(StringComparer.InvariantCulture, BooCodeGenerator.Instance) {} public override bool ImportNamespaces { get { diff --git a/src/AddIns/BackendBindings/Boo/NRefactoryToBooConverter/Project/ConvertVisitor.cs b/src/AddIns/BackendBindings/Boo/NRefactoryToBooConverter/Project/ConvertVisitor.cs index 8813e6838c..6d3828e97c 100644 --- a/src/AddIns/BackendBindings/Boo/NRefactoryToBooConverter/Project/ConvertVisitor.cs +++ b/src/AddIns/BackendBindings/Boo/NRefactoryToBooConverter/Project/ConvertVisitor.cs @@ -158,7 +158,7 @@ namespace NRefactoryToBooConverter } else { AddError(node, "Default modifier is not supported on this member."); } - if (name != null) { + if (name != null && currentType != null) { currentType.Attributes.Add(MakeAttribute("System.Reflection.DefaultMember", new B.StringLiteralExpression(name))); } } diff --git a/src/AddIns/BackendBindings/Boo/NRefactoryToBooConverter/Project/ConvertVisitorTypeMembers.cs b/src/AddIns/BackendBindings/Boo/NRefactoryToBooConverter/Project/ConvertVisitorTypeMembers.cs index 390e1206e8..6c5fc72454 100644 --- a/src/AddIns/BackendBindings/Boo/NRefactoryToBooConverter/Project/ConvertVisitorTypeMembers.cs +++ b/src/AddIns/BackendBindings/Boo/NRefactoryToBooConverter/Project/ConvertVisitorTypeMembers.cs @@ -49,7 +49,7 @@ namespace NRefactoryToBooConverter } m.Name = variable.Name; ConvertAttributes(fieldDeclaration.Attributes, m.Attributes); - currentType.Members.Add(m); + if (currentType != null) currentType.Members.Add(m); } B.Block ConvertMethodBlock(BlockStatement block) @@ -67,7 +67,7 @@ namespace NRefactoryToBooConverter m.Name = methodDeclaration.Name; m.Modifiers = ConvertModifier(methodDeclaration, B.TypeMemberModifiers.Private); ConvertAttributes(methodDeclaration.Attributes, m.Attributes); - currentType.Members.Add(m); + if (currentType != null) currentType.Members.Add(m); if (methodDeclaration.HandlesClause.Count > 0) { // TODO: Convert handles clauses to [Handles] attribute AddError(methodDeclaration, "Handles-clause is not supported."); @@ -96,7 +96,7 @@ namespace NRefactoryToBooConverter B.Constructor m = new B.Constructor(GetLexicalInfo(constructorDeclaration)); m.Modifiers = ConvertModifier(constructorDeclaration, B.TypeMemberModifiers.Private); ConvertAttributes(constructorDeclaration.Attributes, m.Attributes); - currentType.Members.Add(m); + if (currentType != null) currentType.Members.Add(m); ConvertParameters(constructorDeclaration.Parameters, m.Parameters); m.EndSourceLocation = GetEndLocation((INode)constructorDeclaration.Body ?? constructorDeclaration); m.Body = ConvertMethodBlock(constructorDeclaration.Body); @@ -118,7 +118,7 @@ namespace NRefactoryToBooConverter { B.Destructor m = new B.Destructor(GetLexicalInfo(destructorDeclaration)); ConvertAttributes(destructorDeclaration.Attributes, m.Attributes); - currentType.Members.Add(m); + if (currentType != null) currentType.Members.Add(m); m.EndSourceLocation = GetLocation(destructorDeclaration.EndLocation); m.Body = ConvertMethodBlock(destructorDeclaration.Body); return m; @@ -164,7 +164,7 @@ namespace NRefactoryToBooConverter m.Name = propertyDeclaration.Name; m.Modifiers = ConvertModifier(propertyDeclaration, B.TypeMemberModifiers.Private); ConvertAttributes(propertyDeclaration.Attributes, m.Attributes); - currentType.Members.Add(m); + if (currentType != null) currentType.Members.Add(m); ConvertParameters(propertyDeclaration.Parameters, m.Parameters); m.EndSourceLocation = GetLocation(propertyDeclaration.EndLocation); m.Type = ConvertTypeReference(propertyDeclaration.TypeReference); @@ -201,7 +201,7 @@ namespace NRefactoryToBooConverter m.Name = DefaultIndexerName; m.Modifiers = ConvertModifier(indexerDeclaration, B.TypeMemberModifiers.Private); ConvertAttributes(indexerDeclaration.Attributes, m.Attributes); - currentType.Members.Add(m); + if (currentType != null) currentType.Members.Add(m); ConvertParameters(indexerDeclaration.Parameters, m.Parameters); m.EndSourceLocation = GetLocation(indexerDeclaration.EndLocation); m.Type = ConvertTypeReference(indexerDeclaration.TypeReference); @@ -245,7 +245,7 @@ namespace NRefactoryToBooConverter } m.Modifiers = ConvertModifier(eventDeclaration, B.TypeMemberModifiers.Private); ConvertAttributes(eventDeclaration.Attributes, m.Attributes); - currentType.Members.Add(m); + if (currentType != null) currentType.Members.Add(m); m.EndSourceLocation = GetLocation(eventDeclaration.EndLocation); m.Type = ConvertTypeReference(eventDeclaration.TypeReference); if (eventDeclaration.ImplementsClause.Count > 0) { diff --git a/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj b/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj index fed8fc3592..f108c3f256 100644 --- a/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj +++ b/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj @@ -708,6 +708,8 @@ + + diff --git a/src/Main/Base/Project/Src/Dom/LanguageProperties.cs b/src/Main/Base/Project/Src/Dom/LanguageProperties.cs index 7d6c276054..447625d714 100644 --- a/src/Main/Base/Project/Src/Dom/LanguageProperties.cs +++ b/src/Main/Base/Project/Src/Dom/LanguageProperties.cs @@ -6,19 +6,21 @@ // using System; +using ICSharpCode.SharpDevelop.Refactoring; namespace ICSharpCode.SharpDevelop.Dom { public class LanguageProperties { - public readonly static LanguageProperties CSharp = new LanguageProperties(StringComparer.InvariantCulture); + public readonly static LanguageProperties CSharp = new LanguageProperties(StringComparer.InvariantCulture, CSharpCodeGenerator.Instance); public readonly static LanguageProperties VBNet = new VBNetProperties(); StringComparer nameComparer; - public LanguageProperties(StringComparer nameComparer) + public LanguageProperties(StringComparer nameComparer, CodeGenerator codeGenerator) { this.nameComparer = nameComparer; + this.codeGenerator = codeGenerator; } public StringComparer NameComparer { @@ -27,6 +29,14 @@ namespace ICSharpCode.SharpDevelop.Dom } } + CodeGenerator codeGenerator; + + public CodeGenerator CodeGenerator { + get { + return codeGenerator; + } + } + /// /// Gets if namespaces can be imported (i.e. Imports System, Dim a As Collections.ArrayList) /// @@ -87,7 +97,7 @@ namespace ICSharpCode.SharpDevelop.Dom private class VBNetProperties : LanguageProperties { - public VBNetProperties() : base(StringComparer.InvariantCultureIgnoreCase) {} + public VBNetProperties() : base(StringComparer.InvariantCultureIgnoreCase, VBNetCodeGenerator.Instance) {} public override bool ShowMember(IMember member, bool showStatic) { diff --git a/src/Main/Base/Project/Src/Services/RefactoringService/CodeGenerator.cs b/src/Main/Base/Project/Src/Services/RefactoringService/CodeGenerator.cs new file mode 100644 index 0000000000..dd94adadc2 --- /dev/null +++ b/src/Main/Base/Project/Src/Services/RefactoringService/CodeGenerator.cs @@ -0,0 +1,101 @@ +/* + * Created by SharpDevelop. + * User: Daniel Grunwald + * Date: 22.10.2005 + * Time: 14:41 + */ + +using System; +using System.IO; +using ICSharpCode.SharpDevelop.Dom; +using ICSharpCode.TextEditor.Document; +using ICSharpCode.NRefactory.Parser.AST; + +namespace ICSharpCode.SharpDevelop.Refactoring +{ + /// + /// Provides code generation facilities. + /// + public abstract class CodeGenerator + { + protected TypeReference ConvertType(IReturnType returnType) + { + if (returnType == null) return TypeReference.Null; + if (returnType is NullReturnType) return TypeReference.Null; + + TypeReference typeRef = new TypeReference(returnType.FullyQualifiedName); + while (returnType is ArrayReturnType) { + ArrayReturnType art = (ArrayReturnType)returnType; + int[] rank = typeRef.RankSpecifier ?? new int[0]; + Array.Resize(ref rank, rank.Length + 1); + rank[rank.Length - 1] = art.ArrayDimensions; + typeRef.RankSpecifier = rank; + returnType = art.ElementType; + } + if (returnType is ConstructedReturnType) { + ConstructedReturnType rt = (ConstructedReturnType)returnType; + foreach (IReturnType typeArgument in rt.TypeArguments) { + typeRef.GenericTypes.Add(ConvertType(typeArgument)); + } + } + return typeRef; + } + + protected Modifier ConvertModifier(ModifierEnum m) + { + return (Modifier)m; + } + + public virtual string GetPropertyName(string fieldName) + { + if (fieldName.StartsWith("_") && fieldName.Length > 1) + return Char.ToUpper(fieldName[1]) + fieldName.Substring(2); + else if (fieldName.StartsWith("m_") && fieldName.Length > 2) + return Char.ToUpper(fieldName[2]) + fieldName.Substring(3); + else + return Char.ToUpper(fieldName[0]) + fieldName.Substring(1); + } + + public virtual void CreateProperty(IField field, IDocument document, bool createGetter, bool createSetter) + { + string name = GetPropertyName(field.Name); + PropertyDeclaration property = new PropertyDeclaration(name, + ConvertType(field.ReturnType), + ConvertModifier(field.Modifiers), null); + if (createGetter) { + BlockStatement block = new BlockStatement(); + block.AddChild(new ReturnStatement(new IdentifierExpression(field.Name))); + property.GetRegion = new PropertyGetRegion(block, null); + } + if (createSetter) { + BlockStatement block = new BlockStatement(); + Expression left = new IdentifierExpression(field.Name); + Expression right = new IdentifierExpression("value"); + block.AddChild(new StatementExpression(new AssignmentExpression(left, AssignmentOperatorType.Assign, right))); + property.SetRegion = new PropertySetRegion(block, null); + } + + InsertCodeAfter(field, document, property); + } + + /// + /// Generates code for and inserts it into + /// after . + /// + public virtual void InsertCodeAfter(IMember position, IDocument document, AbstractNode node) + { + int insertLine = position.Region.EndLine; + LineSegment lineSegment = document.GetLineSegment(insertLine - 1); + string lineText = document.GetText(lineSegment.Offset, lineSegment.Length); + string indentation = lineText.Substring(0, lineText.Length - lineText.TrimStart().Length); + // insert one line below field (text editor uses different coordinates) + lineSegment = document.GetLineSegment(insertLine); + document.Insert(lineSegment.Offset, GenerateCode(node, indentation)); + } + + /// + /// Generates code for the NRefactory node. + /// + public abstract string GenerateCode(AbstractNode node, string indentation); + } +} diff --git a/src/Main/Base/Project/Src/Services/RefactoringService/NRefactoryCodeGenerator.cs b/src/Main/Base/Project/Src/Services/RefactoringService/NRefactoryCodeGenerator.cs new file mode 100644 index 0000000000..45326a5abd --- /dev/null +++ b/src/Main/Base/Project/Src/Services/RefactoringService/NRefactoryCodeGenerator.cs @@ -0,0 +1,48 @@ +/* + * Created by SharpDevelop. + * User: Daniel Grunwald + * Date: 22.10.2005 + * Time: 14:41 + */ + +using System; +using System.IO; +using ICSharpCode.SharpDevelop.Dom; +using ICSharpCode.NRefactory.Parser.AST; +using ICSharpCode.NRefactory.PrettyPrinter; + +namespace ICSharpCode.SharpDevelop.Refactoring +{ + public abstract class NRefactoryCodeGenerator : CodeGenerator + { + public abstract IOutputASTVisitor CreateOutputVisitor(); + + public override string GenerateCode(AbstractNode node, string indentation) + { + IOutputASTVisitor visitor = CreateOutputVisitor(); + + node.AcceptVisitor(visitor, null); + return visitor.Text; + } + } + + public class CSharpCodeGenerator : NRefactoryCodeGenerator + { + public static readonly CSharpCodeGenerator Instance = new CSharpCodeGenerator(); + + public override IOutputASTVisitor CreateOutputVisitor() + { + return new CSharpOutputVisitor(); + } + } + + public class VBNetCodeGenerator : NRefactoryCodeGenerator + { + public static readonly VBNetCodeGenerator Instance = new VBNetCodeGenerator(); + + public override IOutputASTVisitor CreateOutputVisitor() + { + return new VBNetOutputVisitor(); + } + } +} diff --git a/src/Main/Base/Project/Src/TextEditor/Commands/ClassMemberMenuBuilder.cs b/src/Main/Base/Project/Src/TextEditor/Commands/ClassMemberMenuBuilder.cs index 4ba49643a9..f9fef6e9ca 100644 --- a/src/Main/Base/Project/Src/TextEditor/Commands/ClassMemberMenuBuilder.cs +++ b/src/Main/Base/Project/Src/TextEditor/Commands/ClassMemberMenuBuilder.cs @@ -86,8 +86,9 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Commands IProperty FindProperty(IField field) { - string propertyName = AbstractPropertyCodeGenerator.GetPropertyName(field.Name); LanguageProperties language = field.DeclaringType.ProjectContent.Language; + if (language.CodeGenerator == null) return null; + string propertyName = language.CodeGenerator.GetPropertyName(field.Name); IProperty foundProperty = null; foreach (IProperty prop in field.DeclaringType.Properties) { if (language.NameComparer.Equals(propertyName, prop.Name)) { @@ -111,23 +112,11 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Commands void CreateProperty(object sender, EventArgs e, bool includeSetter) { MenuCommand item = (MenuCommand)sender; - IMember member = (IMember)item.Tag; + IField member = (IField)item.Tag; TextEditorControl textEditor = FindReferencesAndRenameHelper.JumpBehindDefinition(member); - AbstractPropertyCodeGenerator generator; - if (includeSetter) - generator = new GetterAndSetterCodeGenerator(member.DeclaringType); - else - generator = new GetterCodeGenerator(member.DeclaringType); - List list = new List(); - foreach (AbstractFieldCodeGenerator.FieldWrapper fw in generator.Content) { - if (fw.Field == member) { - list.Add(fw); - } - } - - generator.BeginWithNewLine = true; - generator.GenerateCode(textEditor.ActiveTextAreaControl.TextArea, list); + member.DeclaringType.ProjectContent.Language.CodeGenerator.CreateProperty(member, textEditor.Document, true, includeSetter); + textEditor.Refresh(); } void GotoTagMember(object sender, EventArgs e) diff --git a/src/Main/Base/Project/Src/TextEditor/Commands/CodeGenerators/AbstractFieldCodeGenerator.cs b/src/Main/Base/Project/Src/TextEditor/Commands/CodeGenerators/AbstractFieldCodeGenerator.cs index a0f0ff6be5..beeffb9455 100644 --- a/src/Main/Base/Project/Src/TextEditor/Commands/CodeGenerators/AbstractFieldCodeGenerator.cs +++ b/src/Main/Base/Project/Src/TextEditor/Commands/CodeGenerators/AbstractFieldCodeGenerator.cs @@ -11,7 +11,7 @@ using ICSharpCode.Core; namespace ICSharpCode.SharpDevelop.DefaultEditor.Commands { - public abstract class AbstractFieldCodeGenerator : CodeGenerator + public abstract class AbstractFieldCodeGenerator : OldCodeGeneratorBase { public AbstractFieldCodeGenerator(IClass currentClass) : base(currentClass) { diff --git a/src/Main/Base/Project/Src/TextEditor/Commands/CodeGenerators/CodeGenerator.cs b/src/Main/Base/Project/Src/TextEditor/Commands/CodeGenerators/CodeGenerator.cs index 4de0303bc0..008d38e77f 100644 --- a/src/Main/Base/Project/Src/TextEditor/Commands/CodeGenerators/CodeGenerator.cs +++ b/src/Main/Base/Project/Src/TextEditor/Commands/CodeGenerators/CodeGenerator.cs @@ -19,7 +19,7 @@ using ICSharpCode.Core; namespace ICSharpCode.SharpDevelop.DefaultEditor.Commands { - public abstract class CodeGenerator + public abstract class OldCodeGeneratorBase { ArrayList content = new ArrayList(); protected int numOps = 0; @@ -28,7 +28,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Commands protected IClass currentClass = null; protected TextArea editActionHandler; - public CodeGenerator(IClass currentClass) + public OldCodeGeneratorBase(IClass currentClass) { this.currentClass = currentClass; try { diff --git a/src/Main/Base/Project/Src/TextEditor/Commands/CodeGenerators/EqualsCodeGenerator.cs b/src/Main/Base/Project/Src/TextEditor/Commands/CodeGenerators/EqualsCodeGenerator.cs index 42da46eada..d908785a64 100644 --- a/src/Main/Base/Project/Src/TextEditor/Commands/CodeGenerators/EqualsCodeGenerator.cs +++ b/src/Main/Base/Project/Src/TextEditor/Commands/CodeGenerators/EqualsCodeGenerator.cs @@ -17,7 +17,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Commands /// /// Description of EqualsCodeGenerator. /// - public class EqualsCodeGenerator : CodeGenerator + public class EqualsCodeGenerator : OldCodeGeneratorBase { public override string CategoryName { get { diff --git a/src/Main/Base/Project/Src/TextEditor/Commands/CodeGenerators/InterfaceImplementorCodeGenerator.cs b/src/Main/Base/Project/Src/TextEditor/Commands/CodeGenerators/InterfaceImplementorCodeGenerator.cs index 2e91e87dea..6ed88530cd 100644 --- a/src/Main/Base/Project/Src/TextEditor/Commands/CodeGenerators/InterfaceImplementorCodeGenerator.cs +++ b/src/Main/Base/Project/Src/TextEditor/Commands/CodeGenerators/InterfaceImplementorCodeGenerator.cs @@ -14,7 +14,7 @@ using ICSharpCode.Core; namespace ICSharpCode.SharpDevelop.DefaultEditor.Commands { - public abstract class InterfaceOrAbstractClassCodeGenerator : CodeGenerator + public abstract class InterfaceOrAbstractClassCodeGenerator : OldCodeGeneratorBase { public override int ImageIndex { get { diff --git a/src/Main/Base/Project/Src/TextEditor/Commands/CodeGenerators/OnXXXMethodsCodeGenerator.cs b/src/Main/Base/Project/Src/TextEditor/Commands/CodeGenerators/OnXXXMethodsCodeGenerator.cs index 0357d909c8..dcaa73fd63 100644 --- a/src/Main/Base/Project/Src/TextEditor/Commands/CodeGenerators/OnXXXMethodsCodeGenerator.cs +++ b/src/Main/Base/Project/Src/TextEditor/Commands/CodeGenerators/OnXXXMethodsCodeGenerator.cs @@ -14,7 +14,7 @@ using ICSharpCode.Core; namespace ICSharpCode.SharpDevelop.DefaultEditor.Commands { - public class OnXXXMethodsCodeGenerator : CodeGenerator + public class OnXXXMethodsCodeGenerator : OldCodeGeneratorBase { public override string CategoryName { get { diff --git a/src/Main/Base/Project/Src/TextEditor/Commands/CodeGenerators/OverrideMethodsCodeGenerator.cs b/src/Main/Base/Project/Src/TextEditor/Commands/CodeGenerators/OverrideMethodsCodeGenerator.cs index 0866d046bb..38ad276440 100644 --- a/src/Main/Base/Project/Src/TextEditor/Commands/CodeGenerators/OverrideMethodsCodeGenerator.cs +++ b/src/Main/Base/Project/Src/TextEditor/Commands/CodeGenerators/OverrideMethodsCodeGenerator.cs @@ -14,7 +14,7 @@ using ICSharpCode.Core; namespace ICSharpCode.SharpDevelop.DefaultEditor.Commands { - public class OverrideMethodsCodeGenerator : CodeGenerator + public class OverrideMethodsCodeGenerator : OldCodeGeneratorBase { public override string CategoryName { get { diff --git a/src/Main/Base/Project/Src/TextEditor/Commands/GenerateCodeCommand.cs b/src/Main/Base/Project/Src/TextEditor/Commands/GenerateCodeCommand.cs index f76f7ca05f..d3261982ef 100644 --- a/src/Main/Base/Project/Src/TextEditor/Commands/GenerateCodeCommand.cs +++ b/src/Main/Base/Project/Src/TextEditor/Commands/GenerateCodeCommand.cs @@ -57,7 +57,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Commands if (currentClass != null) { ArrayList categories = new ArrayList(); - using (FormVersion1 form = new FormVersion1(textEditorControl, new CodeGenerator[] { + using (FormVersion1 form = new FormVersion1(textEditorControl, new OldCodeGeneratorBase[] { new ConstructorCodeGenerator(currentClass), new GetterCodeGenerator(currentClass), new SetterCodeGenerator(currentClass), @@ -122,16 +122,16 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Commands TextEditorControl textEditorControl; - CodeGenerator SelectedCodeGenerator { + OldCodeGeneratorBase SelectedCodeGenerator { get { if (categoryListView.SelectedItems.Count <= 0) { return null; } - return (CodeGenerator)categoryListView.SelectedItems[0].Tag; + return (OldCodeGeneratorBase)categoryListView.SelectedItems[0].Tag; } } - public FormVersion1(TextEditorControl textEditorControl, CodeGenerator[] codeGenerators) + public FormVersion1(TextEditorControl textEditorControl, OldCodeGeneratorBase[] codeGenerators) { this.textEditorControl = textEditorControl; @@ -160,7 +160,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Commands categoryListView.SmallImageList = categoryListView.LargeImageList = ClassBrowserIconService.ImageList; - foreach (CodeGenerator codeGenerator in codeGenerators) { + foreach (OldCodeGeneratorBase codeGenerator in codeGenerators) { if (codeGenerator.IsActive) { ListViewItem newItem = new ListViewItem(codeGenerator.CategoryName); newItem.ImageIndex = codeGenerator.ImageIndex; @@ -210,7 +210,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Commands void CategoryListViewItemChanged(object sender, EventArgs e) { - CodeGenerator codeGenerator = SelectedCodeGenerator; + OldCodeGeneratorBase codeGenerator = SelectedCodeGenerator; if (codeGenerator == null) { return; }