Browse Source

Fixed SD2-509: Form Designer duplicates first line of code

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@680 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 21 years ago
parent
commit
bf408d7f26
  1. 7
      src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/Designer/BooDesignerGenerator.cs
  2. 10
      src/AddIns/DisplayBindings/FormDesigner/Project/Src/FormDesigner/DesignerGenerator/AbstractDesignerGenerator.cs
  3. 19
      src/AddIns/DisplayBindings/FormDesigner/Project/Src/FormDesigner/DesignerGenerator/CSharpDesignerGenerator.cs
  4. 7
      src/AddIns/DisplayBindings/FormDesigner/Project/Src/FormDesigner/DesignerGenerator/VBNetDesignerGenerator.cs
  5. 4
      src/Main/Base/Project/Src/Dom/NRefactoryResolver/NRefactoryResolver.cs
  6. 2
      src/Tools/SVNChangeLogToXml/Main.cs
  7. 2
      src/prepareRelease.bat

7
src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/Designer/BooDesignerGenerator.cs

@ -9,6 +9,7 @@ using System;
using System.ComponentModel; using System.ComponentModel;
using System.Reflection; using System.Reflection;
using ICSharpCode.Core; using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.FormDesigner; using ICSharpCode.FormDesigner;
namespace Grunwald.BooBinding.Designer namespace Grunwald.BooBinding.Designer
@ -34,6 +35,12 @@ namespace Grunwald.BooBinding.Designer
"\n"; "\n";
} }
protected override DomRegion GetReplaceRegion(ICSharpCode.TextEditor.Document.IDocument document, IMethod method)
{
DomRegion r = method.BodyRegion;
return new DomRegion(r.BeginLine + 1, 1, r.EndLine + 1, 1);
}
protected static string GenerateParams(EventDescriptor edesc) protected static string GenerateParams(EventDescriptor edesc)
{ {
Type type = edesc.EventType; Type type = edesc.EventType;

10
src/AddIns/DisplayBindings/FormDesigner/Project/Src/FormDesigner/DesignerGenerator/AbstractDesignerGenerator.cs

@ -104,6 +104,8 @@ namespace ICSharpCode.FormDesigner
protected abstract System.CodeDom.Compiler.CodeDomProvider CreateCodeProvider(); protected abstract System.CodeDom.Compiler.CodeDomProvider CreateCodeProvider();
protected abstract DomRegion GetReplaceRegion(ICSharpCode.TextEditor.Document.IDocument document, IMethod method);
public void MergeFormChanges() public void MergeFormChanges()
{ {
if (tabs == null) Reparse(viewContent.Document.TextContent); if (tabs == null) Reparse(viewContent.Document.TextContent);
@ -115,8 +117,12 @@ namespace ICSharpCode.FormDesigner
Reparse(viewContent.Document.TextContent); Reparse(viewContent.Document.TextContent);
int startOffset = viewContent.Document.PositionToOffset(new Point(0, initializeComponents.BodyRegion.BeginLine + 1)); // initializeComponents.BodyRegion.BeginLine + 1
int endOffset = viewContent.Document.PositionToOffset(new Point(0, initializeComponents.BodyRegion.EndLine - 1)); DomRegion bodyRegion = GetReplaceRegion(viewContent.Document, initializeComponents);
if (bodyRegion.BeginColumn <= 0 || bodyRegion.EndColumn <= 0)
throw new InvalidOperationException("Column must be > 0");
int startOffset = viewContent.Document.PositionToOffset(new Point(bodyRegion.BeginColumn - 1, bodyRegion.BeginLine - 1));
int endOffset = viewContent.Document.PositionToOffset(new Point(bodyRegion.EndColumn - 1, bodyRegion.EndLine - 1));
viewContent.Document.Replace(startOffset, endOffset - startOffset, statements); viewContent.Document.Replace(startOffset, endOffset - startOffset, statements);
} }

19
src/AddIns/DisplayBindings/FormDesigner/Project/Src/FormDesigner/DesignerGenerator/CSharpDesignerGenerator.cs

@ -7,8 +7,10 @@
using System; using System;
using System.ComponentModel; using System.ComponentModel;
using System.Drawing;
using System.Reflection; using System.Reflection;
using ICSharpCode.Core; using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Dom;
namespace ICSharpCode.FormDesigner namespace ICSharpCode.FormDesigner
{ {
@ -19,6 +21,23 @@ namespace ICSharpCode.FormDesigner
return "private " + fieldType + " " + name + ";"; return "private " + fieldType + " " + name + ";";
} }
protected override DomRegion GetReplaceRegion(ICSharpCode.TextEditor.Document.IDocument document, IMethod method)
{
DomRegion r = method.BodyRegion;
int offset = document.PositionToOffset(new Point(r.BeginColumn - 1, r.BeginLine - 1));
string tmp = document.GetText(offset, 10);
while (offset < document.TextLength) {
char c = document.GetCharAt(offset++);
if (c == '{') {
return new DomRegion(r.BeginLine + 1, 1, r.EndLine, 1);
}
if (c != ' ') {
break;
}
}
return new DomRegion(r.BeginLine + 2, 1, r.EndLine, 1);
}
protected override System.CodeDom.Compiler.CodeDomProvider CreateCodeProvider() protected override System.CodeDom.Compiler.CodeDomProvider CreateCodeProvider()
{ {
return new Microsoft.CSharp.CSharpCodeProvider(); return new Microsoft.CSharp.CSharpCodeProvider();

7
src/AddIns/DisplayBindings/FormDesigner/Project/Src/FormDesigner/DesignerGenerator/VBNetDesignerGenerator.cs

@ -9,6 +9,7 @@ using System;
using System.ComponentModel; using System.ComponentModel;
using System.Reflection; using System.Reflection;
using ICSharpCode.Core; using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Dom;
namespace ICSharpCode.FormDesigner namespace ICSharpCode.FormDesigner
{ {
@ -24,6 +25,12 @@ namespace ICSharpCode.FormDesigner
return new Microsoft.VisualBasic.VBCodeProvider(); return new Microsoft.VisualBasic.VBCodeProvider();
} }
protected override DomRegion GetReplaceRegion(ICSharpCode.TextEditor.Document.IDocument document, IMethod method)
{
DomRegion r = method.BodyRegion;
return new DomRegion(r.BeginLine + 1, 1, r.EndLine, 1);
}
protected override string CreateEventHandler(EventDescriptor edesc, string eventMethodName, string body) protected override string CreateEventHandler(EventDescriptor edesc, string eventMethodName, string body)
{ {
string param = GenerateParams(edesc); string param = GenerateParams(edesc);

4
src/Main/Base/Project/Src/Dom/NRefactoryResolver/NRefactoryResolver.cs

@ -331,7 +331,9 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
type.TypeArguments.CopyTo(typeParameters, 0); type.TypeArguments.CopyTo(typeParameters, 0);
} }
ResolveResult rr = CreateMemberResolveResult(typeVisitor.FindOverload(constructors, typeParameters, ((ObjectCreateExpression)expr).Parameters, null)); ResolveResult rr = CreateMemberResolveResult(typeVisitor.FindOverload(constructors, typeParameters, ((ObjectCreateExpression)expr).Parameters, null));
rr.ResolvedType = type; if (rr != null) {
rr.ResolvedType = type;
}
return rr; return rr;
} }
return new ResolveResult(callingClass, callingMember, type); return new ResolveResult(callingClass, callingMember, type);

2
src/Tools/SVNChangeLogToXml/Main.cs

@ -48,7 +48,7 @@ class MainClass
int rev = new Client().SingleStatus(".").Entry.Revision; int rev = new Client().SingleStatus(".").Entry.Revision;
Console.WriteLine(rev); Console.WriteLine(rev);
using (StreamWriter writer = new StreamWriter("../REVISION")) { using (StreamWriter writer = new StreamWriter("../REVISION")) {
writer.WriteLine(rev); writer.Write(rev.ToString());
} }
} }

2
src/prepareRelease.bat

@ -7,6 +7,6 @@ pushd Tools
@echo. @echo.
@echo. @echo.
@echo PrepareRelease.bat completed successfully. @echo PrepareRelease.bat completed successfully.
@echo The change log has been updated and a VERSION file containing the current revision number has been created. @echo The change log has been updated and a REVISION file containing the current revision number has been created.
@echo. @echo.
@pause @pause
Loading…
Cancel
Save