diff options
Diffstat (limited to 'main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/CodeGenerator.cs')
-rw-r--r-- | main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/CodeGenerator.cs | 70 |
1 files changed, 39 insertions, 31 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/CodeGenerator.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/CodeGenerator.cs index 1b1d6e1310..760496caed 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/CodeGenerator.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/CodeGenerator.cs @@ -29,12 +29,12 @@ using System.Collections.Generic; using System.Linq; using Mono.Addins; using ICSharpCode.NRefactory.TypeSystem; -using Mono.TextEditor; using MonoDevelop.Core.AddIns; using MonoDevelop.Ide.TypeSystem; using ICSharpCode.NRefactory; using MonoDevelop.Projects.Policies; using MonoDevelop.Ide.Extensions; +using MonoDevelop.Ide.Editor; namespace MonoDevelop.Ide.TypeSystem { @@ -67,36 +67,39 @@ namespace MonoDevelop.Ide.TypeSystem set; } - public ICompilation Compilation { - get; - set; - } - - public static CodeGenerator CreateGenerator (Ide.Gui.Document doc) + public static CodeGenerator CreateGenerator (TextEditor editor, DocumentContext documentContext) { MimeTypeExtensionNode node; - if (!generators.TryGetValue (doc.Editor.MimeType, out node)) + if (!generators.TryGetValue (editor.MimeType, out node)) return null; var result = (CodeGenerator)node.CreateInstance (); - result.UseSpaceIndent = doc.Editor.TabsToSpaces; - result.EolMarker = doc.Editor.EolMarker; - result.TabSize = doc.Editor.Options.TabSize; - result.Compilation = doc.Compilation; + + result.UseSpaceIndent = editor.Options.TabsToSpaces; + result.EolMarker = editor.EolMarker; + result.TabSize = editor.Options.TabSize; + return result; } - - public static CodeGenerator CreateGenerator (TextEditorData editor, ICompilation compilation) + + public static CodeGenerator CreateGenerator (Ide.Gui.Document doc) + { + return CreateGenerator (doc.Editor, doc); + } + + public static CodeGenerator CreateGenerator (ITextDocument editor, ICompilation compilation) { MimeTypeExtensionNode node; if (!generators.TryGetValue (editor.MimeType, out node)) return null; var result = (CodeGenerator)node.CreateInstance (); - result.UseSpaceIndent = editor.TabsToSpaces; - result.EolMarker = editor.EolMarker; - result.TabSize = editor.Options.TabSize; - result.Compilation = compilation; + + //result.UseSpaceIndent = editor.Options.TabsToSpaces; + result.EolMarker = editor.GetEolMarker (); + //result.TabSize = editor.Options.TabSize; + //result.Compilation = compilation; + return result; } @@ -154,12 +157,6 @@ namespace MonoDevelop.Ide.TypeSystem generators.Remove (node.MimeType); } - protected void SetIndentTo (IUnresolvedTypeDefinition implementingType) - { - if (IndentLevel < 0) - IndentLevel = AutoIndent ? CodeGenerationService.CalculateBodyIndentLevel (implementingType) : 0; - } - static bool CompareMethods (IMethod interfaceMethod, IMethod typeMethod) { if (typeMethod.IsExplicitInterfaceImplementation) @@ -168,15 +165,26 @@ namespace MonoDevelop.Ide.TypeSystem } public abstract string WrapInRegions (string regionName, string text); - public abstract CodeGeneratorMemberResult CreateMemberImplementation (ITypeDefinition implementingType, IUnresolvedTypeDefinition part, IUnresolvedMember member, bool explicitDeclaration); - public abstract CodeGeneratorMemberResult CreateMemberImplementation (ITypeDefinition implementingType, IUnresolvedTypeDefinition part, IMember member, bool explicitDeclaration); - public abstract string CreateFieldEncapsulation (IUnresolvedTypeDefinition implementingType, IField field, string propertyName, Accessibility modifiers, bool readOnly); + public abstract void AddGlobalNamespaceImport (TextEditor editor, DocumentContext context, string nsName); + public abstract void AddLocalNamespaceImport (TextEditor editor, DocumentContext context, string nsName, TextLocation caretLocation); + + public void AddGlobalNamespaceImport (MonoDevelop.Ide.Gui.Document doc, string nsName) + { + if (doc == null) + throw new ArgumentNullException ("doc"); + AddGlobalNamespaceImport (doc.Editor, doc, nsName); + } + + public void AddLocalNamespaceImport (MonoDevelop.Ide.Gui.Document doc, string nsName, TextLocation caretLocation) + { + if (doc == null) + throw new ArgumentNullException ("doc"); + AddLocalNamespaceImport (doc.Editor, doc, nsName, caretLocation); + } - public abstract void AddGlobalNamespaceImport (MonoDevelop.Ide.Gui.Document doc, string nsName); - public abstract void AddLocalNamespaceImport (MonoDevelop.Ide.Gui.Document doc, string nsName, TextLocation caretLocation); - public abstract string GetShortTypeString (MonoDevelop.Ide.Gui.Document doc, IType type); + //public abstract string GetShortTypeString (TextEditor editor, DocumentContext context, IType type); public abstract void CompleteStatement (MonoDevelop.Ide.Gui.Document doc); } @@ -230,4 +238,4 @@ namespace MonoDevelop.Ide.TypeSystem } } } -}
\ No newline at end of file +} |