diff options
Diffstat (limited to 'main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderService.cs')
-rw-r--r-- | main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderService.cs | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderService.cs b/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderService.cs index f7f544a6ff..c248010c56 100644 --- a/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderService.cs +++ b/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderService.cs @@ -43,6 +43,7 @@ using MonoDevelop.Ide; using MonoDevelop.Ide.Gui.Content; using MonoDevelop.Ide.TypeSystem; using System.Threading.Tasks; +using MonoDevelop.Ide.Editor; namespace MonoDevelop.GtkCore.GuiBuilder @@ -324,7 +325,6 @@ namespace MonoDevelop.GtkCore.GuiBuilder component = item.Component; CodeCompileUnit cu = new CodeCompileUnit (); - if (project.UsePartialTypes) { CodeNamespace cns = new CodeNamespace (ns); cu.Namespaces.Add (cns); @@ -334,6 +334,11 @@ namespace MonoDevelop.GtkCore.GuiBuilder type.Attributes = MemberAttributes.Public; type.TypeAttributes = System.Reflection.TypeAttributes.Public; cns.Types.Add (type); + type.Members.Add ( + new CodeMemberMethod () { + Name = "Build" + } + ); foreach (Stetic.ObjectBindInfo binfo in component.GetObjectBindInfo ()) { // When a component is being renamed, we have to generate the @@ -370,10 +375,9 @@ namespace MonoDevelop.GtkCore.GuiBuilder text = fileStream.ToString (); text = FormatGeneratedFile (fileName, text, project, provider); } - if (saveToFile) File.WriteAllText (fileName, text); - TypeSystemService.ParseFile (project, fileName); + TypeSystemService.NotifyFileChange (fileName, text); // // if (ProjectDomService.HasDom (project)) { // // Only update the parser database if the project is actually loaded in the IDE. @@ -587,7 +591,7 @@ namespace MonoDevelop.GtkCore.GuiBuilder static string StripHeaderAndBlankLines (string text, CodeDomProvider provider) { - Mono.TextEditor.TextDocument doc = new Mono.TextEditor.TextDocument (); + var doc = TextEditorFactory.CreateNewDocument (); doc.Text = text; int realStartLine = 0; for (int i = 1; i <= doc.LineCount; i++) { @@ -605,11 +609,11 @@ namespace MonoDevelop.GtkCore.GuiBuilder if (provider is Microsoft.CSharp.CSharpCodeProvider) { bool previousWasBlank = false; for (int i = 1; i <= doc.LineCount; i++) { - Mono.TextEditor.DocumentLine line = doc.GetLine (i); + var line = doc.GetLine (i); bool isBlank, isBracket; CheckLine (doc, line, out isBlank, out isBracket); if (isBlank && previousWasBlank && line.LengthIncludingDelimiter > 0) { - doc.Remove (line.Offset, line.LengthIncludingDelimiter); + doc.RemoveText (line.Offset, line.LengthIncludingDelimiter); i--; } previousWasBlank = isBlank || isBracket; @@ -617,10 +621,10 @@ namespace MonoDevelop.GtkCore.GuiBuilder } int offset = doc.GetLine (realStartLine).Offset; - return doc.GetTextAt (offset, doc.TextLength - offset); + return doc.GetTextAt (offset, doc.Length - offset); } - static void CheckLine (Mono.TextEditor.TextDocument doc, Mono.TextEditor.DocumentLine line, out bool isBlank, out bool isBracket) + static void CheckLine (IReadonlyTextDocument doc, IDocumentLine line, out bool isBlank, out bool isBracket) { isBlank = true; isBracket = false; |