Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
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.cs70
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
+}