diff --git a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/FormattingStrategy/CSharpFormattingStrategy.cs b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/FormattingStrategy/CSharpFormattingStrategy.cs
index 191443c810..3a3f53c977 100644
--- a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/FormattingStrategy/CSharpFormattingStrategy.cs
+++ b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/FormattingStrategy/CSharpFormattingStrategy.cs
@@ -60,7 +60,7 @@ namespace CSharpBinding.FormattingStrategy
if (oldIndentLength != newIndentLength && lineNr == textArea.Caret.Position.Y) {
// fix cursor position if indentation was changed
int newX = textArea.Caret.Position.X - oldIndentLength + newIndentLength;
- textArea.Caret.Position = new Point(Math.Max(newX, 0), lineNr);
+ textArea.Caret.Position = new TextLocation(Math.Max(newX, 0), lineNr);
}
return newIndentLength;
}
@@ -92,7 +92,7 @@ namespace CSharpBinding.FormattingStrategy
if (oldIndentLength != newIndentLength) {
// fix cursor position if indentation was changed
int newX = textArea.Caret.Position.X - oldIndentLength + newIndentLength;
- textArea.Caret.Position = new Point(Math.Max(newX, 0), cursorPos);
+ textArea.Caret.Position = new TextLocation(Math.Max(newX, 0), cursorPos);
}
}
}
diff --git a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Project/CSharpMyNamespaceBuilder.cs b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Project/CSharpMyNamespaceBuilder.cs
index c521ebaf86..6700334d03 100644
--- a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Project/CSharpMyNamespaceBuilder.cs
+++ b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Project/CSharpMyNamespaceBuilder.cs
@@ -70,7 +70,7 @@ namespace CSharpBinding
if (myFormsClass != null) {
string indentation = line.Substring(0, line.Length - trimmedLine.Length);
foreach (IProperty p in myFormsClass.Properties) {
- string typeName = p.ReturnType.FullyQualifiedName;
+ string typeName = "global::" + p.ReturnType.FullyQualifiedName;
output.AppendLine(indentation + typeName + " " + p.Name + "_instance;");
output.AppendLine(indentation + "bool " + p.Name + "_isCreating;");
output.AppendLine(indentation + "public " + typeName + " " + p.Name + " {");
diff --git a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Project/VBNetToCSharpConvertVisitorWithMyFormsSupport.cs b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Project/VBNetToCSharpConvertVisitorWithMyFormsSupport.cs
index b43cb4f49d..43a9c0996b 100644
--- a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Project/VBNetToCSharpConvertVisitorWithMyFormsSupport.cs
+++ b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Project/VBNetToCSharpConvertVisitorWithMyFormsSupport.cs
@@ -37,11 +37,8 @@ namespace CSharpBinding
{
base.VisitAssignmentExpression(assignmentExpression, data);
- if (resolver.CompilationUnit == null)
- return null;
-
if (vbMyFormsClass != null) {
- TypeResolveResult trr = resolver.ResolveInternal(assignmentExpression.Right, ExpressionContext.Default) as TypeResolveResult;
+ TypeResolveResult trr = Resolve(assignmentExpression.Right) as TypeResolveResult;
if (trr != null && trr.ResolvedClass != null) {
foreach (IProperty p in vbMyFormsClass.Properties) {
if (p.ReturnType.FullyQualifiedName == trr.ResolvedClass.FullyQualifiedName) {
@@ -54,5 +51,23 @@ namespace CSharpBinding
return null;
}
+
+ public override object VisitFieldReferenceExpression(FieldReferenceExpression fieldReferenceExpression, object data)
+ {
+ ResolveResult fieldRR = base.VisitFieldReferenceExpression(fieldReferenceExpression, data) as ResolveResult;
+
+ if (vbMyFormsClass != null && IsReferenceToInstanceMember(fieldRR)) {
+ TypeResolveResult trr = Resolve(fieldReferenceExpression.TargetObject) as TypeResolveResult;
+ if (trr != null && trr.ResolvedClass != null) {
+ foreach (IProperty p in vbMyFormsClass.Properties) {
+ if (p.ReturnType.FullyQualifiedName == trr.ResolvedClass.FullyQualifiedName) {
+ fieldReferenceExpression.TargetObject = MakeFieldReferenceExpression("My.MyProject.Forms." + p.Name);
+ }
+ }
+ }
+ }
+
+ return null;
+ }
}
}
diff --git a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Project/VBNetToCSharpConverter.cs b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Project/VBNetToCSharpConverter.cs
index 07f2f9cbe6..1a75617f07 100644
--- a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Project/VBNetToCSharpConverter.cs
+++ b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Project/VBNetToCSharpConverter.cs
@@ -52,7 +52,14 @@ namespace CSharpBinding
protected override void CopyProperties(IProject sourceProject, IProject targetProject)
{
base.CopyProperties(sourceProject, targetProject);
- FixProperty((CSharpProject)targetProject, "DefineConstants",
+
+ CSharpProject project = (CSharpProject)targetProject;
+ // 1591 = missing XML comment - the VB compiler does not have this warning
+ // we disable it by default because many VB projects have XML documentation turned on
+ // even though only few members are commented
+ project.SetProperty("NoWarn", "1591");
+
+ FixProperty(project, "DefineConstants",
delegate(string v) { return v.Replace(',', ';'); });
}
diff --git a/src/AddIns/BackendBindings/VBNetBinding/Project/Src/FormattingStrategy/VBNetFormattingStrategy.cs b/src/AddIns/BackendBindings/VBNetBinding/Project/Src/FormattingStrategy/VBNetFormattingStrategy.cs
index 7b1db1d7fe..888f72b57f 100644
--- a/src/AddIns/BackendBindings/VBNetBinding/Project/Src/FormattingStrategy/VBNetFormattingStrategy.cs
+++ b/src/AddIns/BackendBindings/VBNetBinding/Project/Src/FormattingStrategy/VBNetFormattingStrategy.cs
@@ -215,7 +215,7 @@ namespace VBNetBinding.FormattingStrategy
if (oldIndentLength != newIndentLength && lineNr == textArea.Caret.Position.Y) {
// fix cursor position if indentation was changed
int newX = textArea.Caret.Position.X - oldIndentLength + newIndentLength;
- textArea.Caret.Position = new Point(Math.Max(newX, 0), lineNr);
+ textArea.Caret.Position = new TextLocation(Math.Max(newX, 0), lineNr);
}
}
return indentLength;
diff --git a/src/AddIns/BackendBindings/WixBinding/Project/Src/Gui/WixDocumentEditor.cs b/src/AddIns/BackendBindings/WixBinding/Project/Src/Gui/WixDocumentEditor.cs
index 417ca4fd82..e31d137ec9 100644
--- a/src/AddIns/BackendBindings/WixBinding/Project/Src/Gui/WixDocumentEditor.cs
+++ b/src/AddIns/BackendBindings/WixBinding/Project/Src/Gui/WixDocumentEditor.cs
@@ -80,8 +80,8 @@ namespace ICSharpCode.WixBinding
static void SelectText(SelectionManager selectionManager, IDocument document, int startOffset, int length)
{
selectionManager.ClearSelection();
- Point selectionStart = document.OffsetToPosition(startOffset);
- Point selectionEnd = document.OffsetToPosition(startOffset + length);
+ TextLocation selectionStart = document.OffsetToPosition(startOffset);
+ TextLocation selectionEnd = document.OffsetToPosition(startOffset + length);
selectionManager.SetSelection(selectionStart, selectionEnd);
}
diff --git a/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerGenerator/AbstractDesignerGenerator.cs b/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerGenerator/AbstractDesignerGenerator.cs
index d0d7f83851..772bb1a180 100644
--- a/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerGenerator/AbstractDesignerGenerator.cs
+++ b/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerGenerator/AbstractDesignerGenerator.cs
@@ -20,6 +20,7 @@ using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Gui;
+using ICSharpCode.TextEditor;
using ICSharpCode.TextEditor.Document;
using ReflectionLayer = ICSharpCode.SharpDevelop.Dom.ReflectionLayer;
@@ -74,8 +75,8 @@ namespace ICSharpCode.FormsDesigner
Reparse();
IField field = GetField(formClass, fieldName);
if (field != null) {
- int startOffset = document.PositionToOffset(new Point(0, field.Region.BeginLine - 1));
- int endOffset = document.PositionToOffset(new Point(0, field.Region.EndLine));
+ int startOffset = document.PositionToOffset(new TextLocation(0, field.Region.BeginLine - 1));
+ int endOffset = document.PositionToOffset(new TextLocation(0, field.Region.EndLine));
document.Remove(startOffset, endOffset - startOffset);
} else if ((field = GetField(completeClass, fieldName)) != null) {
// TODO: Remove the field in the part where it is declared
@@ -112,15 +113,15 @@ namespace ICSharpCode.FormsDesigner
Reparse();
IField oldField = GetField(formClass, newField.Name);
if (oldField != null) {
- int startOffset = document.PositionToOffset(new Point(0, oldField.Region.BeginLine - 1));
- int endOffset = document.PositionToOffset(new Point(0, oldField.Region.EndLine));
+ int startOffset = document.PositionToOffset(new TextLocation(0, oldField.Region.BeginLine - 1));
+ int endOffset = document.PositionToOffset(new TextLocation(0, oldField.Region.EndLine));
document.Replace(startOffset, endOffset - startOffset, tabs + GenerateFieldDeclaration(domGenerator, newField) + Environment.NewLine);
} else {
if ((oldField = GetField(completeClass, newField.Name)) != null) {
// TODO: Replace the field in the part where it is declared
LoggingService.Warn("Field declaration replacement in non-designer part currently not supported");
} else {
- int endOffset = document.PositionToOffset(new Point(0, initializeComponents.BodyRegion.EndLine));
+ int endOffset = document.PositionToOffset(new TextLocation(0, initializeComponents.BodyRegion.EndLine));
document.Insert(endOffset, tabs + GenerateFieldDeclaration(domGenerator, newField) + Environment.NewLine);
}
}
@@ -184,8 +185,8 @@ namespace ICSharpCode.FormsDesigner
DomRegion bodyRegion = GetReplaceRegion(document, initializeComponents);
if (bodyRegion.BeginColumn <= 0 || bodyRegion.EndColumn <= 0)
throw new InvalidOperationException("Column must be > 0");
- int startOffset = document.PositionToOffset(new Point(bodyRegion.BeginColumn - 1, bodyRegion.BeginLine - 1));
- int endOffset = document.PositionToOffset(new Point(bodyRegion.EndColumn - 1, bodyRegion.EndLine - 1));
+ int startOffset = document.PositionToOffset(new TextLocation(bodyRegion.BeginColumn - 1, bodyRegion.BeginLine - 1));
+ int endOffset = document.PositionToOffset(new TextLocation(bodyRegion.EndColumn - 1, bodyRegion.EndLine - 1));
document.Replace(startOffset, endOffset - startOffset, statements);
SaveDocument();
diff --git a/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerGenerator/CSharpDesignerGenerator.cs b/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerGenerator/CSharpDesignerGenerator.cs
index 71cca630ff..82c8162b58 100644
--- a/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerGenerator/CSharpDesignerGenerator.cs
+++ b/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerGenerator/CSharpDesignerGenerator.cs
@@ -13,6 +13,7 @@ using System.Text;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Dom;
+using ICSharpCode.TextEditor;
using ICSharpCode.NRefactory.Ast;
using ICSharpCode.NRefactory.PrettyPrinter;
@@ -56,7 +57,7 @@ namespace ICSharpCode.FormsDesigner
protected override int GetCursorLine(ICSharpCode.TextEditor.Document.IDocument document, IMethod method)
{
DomRegion r = method.BodyRegion;
- int offset = document.PositionToOffset(new Point(r.BeginColumn - 1, r.BeginLine - 1));
+ int offset = document.PositionToOffset(new TextLocation(r.BeginColumn - 1, r.BeginLine - 1));
string tmp = document.GetText(offset, 10);
while (offset < document.TextLength) {
char c = document.GetCharAt(offset++);
diff --git a/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerViewContent.cs b/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerViewContent.cs
index 4dc10425ae..ad0c830734 100644
--- a/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerViewContent.cs
+++ b/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerViewContent.cs
@@ -234,6 +234,7 @@ namespace ICSharpCode.FormsDesigner
} catch (Exception e) {
failedDesignerInitialize = true;
TextBox errorText = new TextBox();
+ errorText.ScrollBars = ScrollBars.Both;
errorText.Multiline = true;
if (e.InnerException is FormsDesignerLoadException) {
errorText.Text = e.InnerException.Message;
diff --git a/src/AddIns/DisplayBindings/WorkflowDesigner/Project/Src/Services/EventBindingService/CSharpWorkflowDesignerEventBindingService.cs b/src/AddIns/DisplayBindings/WorkflowDesigner/Project/Src/Services/EventBindingService/CSharpWorkflowDesignerEventBindingService.cs
index e11eec73a0..f4ee77c886 100644
--- a/src/AddIns/DisplayBindings/WorkflowDesigner/Project/Src/Services/EventBindingService/CSharpWorkflowDesignerEventBindingService.cs
+++ b/src/AddIns/DisplayBindings/WorkflowDesigner/Project/Src/Services/EventBindingService/CSharpWorkflowDesignerEventBindingService.cs
@@ -10,6 +10,7 @@ using System.Drawing;
using System.Text;
using System.ComponentModel;
using ICSharpCode.SharpDevelop.Dom;
+using ICSharpCode.TextEditor;
using ICSharpCode.TextEditor.Document;
using ICSharpCode.NRefactory.PrettyPrinter;
using ICSharpCode.NRefactory.Ast;
@@ -34,7 +35,7 @@ namespace WorkflowDesigner
protected override int GetCursorLine(IDocument document, IMethod method)
{
DomRegion r = method.BodyRegion;
- int offset = document.PositionToOffset(new Point(r.BeginColumn - 1, r.BeginLine - 1));
+ int offset = document.PositionToOffset(new TextLocation(r.BeginColumn - 1, r.BeginLine - 1));
while (offset < document.TextLength) {
char c = document.GetCharAt(offset++);
if (c == '{') {
diff --git a/src/AddIns/DisplayBindings/XmlEditor/Project/Src/XPathQueryControl.cs b/src/AddIns/DisplayBindings/XmlEditor/Project/Src/XPathQueryControl.cs
index 1606653d14..b17d8cb385 100644
--- a/src/AddIns/DisplayBindings/XmlEditor/Project/Src/XPathQueryControl.cs
+++ b/src/AddIns/DisplayBindings/XmlEditor/Project/Src/XPathQueryControl.cs
@@ -596,8 +596,8 @@ namespace ICSharpCode.XmlEditor
if (length > 0 && line < textAreaControl.Document.TotalNumberOfLines) {
SelectionManager selectionManager = textAreaControl.SelectionManager;
selectionManager.ClearSelection();
- Point startPos = new Point(column, line);
- Point endPos = new Point(column + length, line);
+ TextLocation startPos = new TextLocation(column, line);
+ TextLocation endPos = new TextLocation(column + length, line);
selectionManager.SetSelection(startPos, endPos);
}
line = Math.Min(line, textAreaControl.Document.TotalNumberOfLines - 1);
diff --git a/src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/DynamicHelpPad.cs b/src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/DynamicHelpPad.cs
index 320754e048..0f0f784835 100644
--- a/src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/DynamicHelpPad.cs
+++ b/src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/DynamicHelpPad.cs
@@ -39,7 +39,7 @@ namespace HtmlHelp2
{
HtmlHelp2DynamicHelpBrowserControl dynamicHelpBrowser;
private StringCollection dynamicHelpTerms = new StringCollection();
- private Point lastPoint = Point.Empty;
+ private TextLocation lastPoint = TextLocation.Empty;
private string debugPreElement = String.Empty;
private bool enableDebugInfo = HtmlHelp2Environment.Config.DynamicHelpDebugInfos;
diff --git a/src/AddIns/Misc/ResourceToolkit/Project/Src/Refactoring/ResourceRefactoringService.cs b/src/AddIns/Misc/ResourceToolkit/Project/Src/Refactoring/ResourceRefactoringService.cs
index adc0c87749..6460f57f5c 100644
--- a/src/AddIns/Misc/ResourceToolkit/Project/Src/Refactoring/ResourceRefactoringService.cs
+++ b/src/AddIns/Misc/ResourceToolkit/Project/Src/Refactoring/ResourceRefactoringService.cs
@@ -18,6 +18,7 @@ using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Project;
using ICSharpCode.SharpDevelop.Refactoring;
+using ICSharpCode.TextEditor;
using ICSharpCode.TextEditor.Document;
using SearchAndReplace;
@@ -103,7 +104,7 @@ namespace Hornung.ResourceToolkit.Refactoring
int pos = -1;
while ((pos = finder.GetNextPossibleOffset(fileName, fileContent, pos)) >= 0) {
- Point docPos = doc.OffsetToPosition(pos);
+ TextLocation docPos = doc.OffsetToPosition(pos);
ResourceResolveResult rrr = ResourceResolverService.Resolve(fileName, doc, docPos.Y, docPos.X, null);
if (rrr != null && rrr.ResourceFileContent != null && rrr.Key != null) {
diff --git a/src/AddIns/Misc/ResourceToolkit/Project/Src/Resolver/AbstractResourceResolver.cs b/src/AddIns/Misc/ResourceToolkit/Project/Src/Resolver/AbstractResourceResolver.cs
index ea62be1994..3a1a612b05 100644
--- a/src/AddIns/Misc/ResourceToolkit/Project/Src/Resolver/AbstractResourceResolver.cs
+++ b/src/AddIns/Misc/ResourceToolkit/Project/Src/Resolver/AbstractResourceResolver.cs
@@ -41,7 +41,7 @@ namespace Hornung.ResourceToolkit.Resolver
LoggingService.Debug("ResourceToolkit: "+this.GetType().ToString()+".Resolve called with invalid position arguments");
return null;
}
- return this.Resolve(fileName, document, caretLine, caretColumn, document.PositionToOffset(new Point(caretColumn, caretLine)), charTyped);
+ return this.Resolve(fileName, document, caretLine, caretColumn, document.PositionToOffset(new TextLocation(caretColumn, caretLine)), charTyped);
}
///
diff --git a/src/AddIns/Misc/ResourceToolkit/Project/Src/ToolTips/ResourceToolTipProvider.cs b/src/AddIns/Misc/ResourceToolkit/Project/Src/ToolTips/ResourceToolTipProvider.cs
index fa60693fa1..1f1e3a60db 100644
--- a/src/AddIns/Misc/ResourceToolkit/Project/Src/ToolTips/ResourceToolTipProvider.cs
+++ b/src/AddIns/Misc/ResourceToolkit/Project/Src/ToolTips/ResourceToolTipProvider.cs
@@ -22,7 +22,7 @@ namespace Hornung.ResourceToolkit.ToolTips
public ToolTipInfo GetToolTipInfo(TextArea textArea, ToolTipRequestEventArgs e)
{
- Point logicPos = e.LogicalPosition;
+ TextLocation logicPos = e.LogicalPosition;
IDocument doc = textArea.Document;
if (logicPos.X > doc.GetLineSegment(logicPos.Y).Length - 1) {
return null;
diff --git a/src/AddIns/Misc/SearchAndReplace/Test/MockDocument.cs b/src/AddIns/Misc/SearchAndReplace/Test/MockDocument.cs
index f430554c24..3b06be8d84 100644
--- a/src/AddIns/Misc/SearchAndReplace/Test/MockDocument.cs
+++ b/src/AddIns/Misc/SearchAndReplace/Test/MockDocument.cs
@@ -202,12 +202,12 @@ namespace ICSharpCode.SharpDevelop.Tests.Utils
throw new NotImplementedException();
}
- public System.Drawing.Point OffsetToPosition(int offset)
+ public ICSharpCode.TextEditor.TextLocation OffsetToPosition(int offset)
{
throw new NotImplementedException();
}
- public int PositionToOffset(System.Drawing.Point p)
+ public int PositionToOffset(ICSharpCode.TextEditor.TextLocation p)
{
throw new NotImplementedException();
}
diff --git a/src/Libraries/ICSharpCode.TextEditor/Project/ICSharpCode.TextEditor.csproj b/src/Libraries/ICSharpCode.TextEditor/Project/ICSharpCode.TextEditor.csproj
index b9c3317b5e..2c081df7a8 100644
--- a/src/Libraries/ICSharpCode.TextEditor/Project/ICSharpCode.TextEditor.csproj
+++ b/src/Libraries/ICSharpCode.TextEditor/Project/ICSharpCode.TextEditor.csproj
@@ -1,4 +1,4 @@
-
+
Debug
AnyCPU
@@ -20,6 +20,7 @@
98041856
AnyCPU
4096
+ v2.0
False
@@ -59,6 +60,7 @@
+
diff --git a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Actions/CaretActions.cs b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Actions/CaretActions.cs
index a447dd069a..c505c19d7e 100644
--- a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Actions/CaretActions.cs
+++ b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Actions/CaretActions.cs
@@ -11,13 +11,13 @@ using System.Drawing;
using ICSharpCode.TextEditor.Document;
-namespace ICSharpCode.TextEditor.Actions
+namespace ICSharpCode.TextEditor.Actions
{
public class CaretLeft : AbstractEditAction
{
public override void Execute(TextArea textArea)
{
- Point position = textArea.Caret.Position;
+ TextLocation position = textArea.Caret.Position;
List foldings = textArea.Document.FoldingManager.GetFoldedFoldingsWithEnd(position.Y);
FoldMarker justBeforeCaret = null;
foreach (FoldMarker fm in foldings) {
@@ -35,7 +35,7 @@ namespace ICSharpCode.TextEditor.Actions
--position.X;
} else if (position.Y > 0) {
LineSegment lineAbove = textArea.Document.GetLineSegment(position.Y - 1);
- position = new Point(lineAbove.Length, position.Y - 1);
+ position = new TextLocation(lineAbove.Length, position.Y - 1);
}
}
@@ -49,7 +49,7 @@ namespace ICSharpCode.TextEditor.Actions
public override void Execute(TextArea textArea)
{
LineSegment curLine = textArea.Document.GetLineSegment(textArea.Caret.Line);
- Point position = textArea.Caret.Position;
+ TextLocation position = textArea.Caret.Position;
List foldings = textArea.Document.FoldingManager.GetFoldedFoldingsWithStart(position.Y);
FoldMarker justBehindCaret = null;
foreach (FoldMarker fm in foldings) {
@@ -78,13 +78,13 @@ namespace ICSharpCode.TextEditor.Actions
{
public override void Execute(TextArea textArea)
{
- Point position = textArea.Caret.Position;
+ TextLocation position = textArea.Caret.Position;
int lineNr = position.Y;
int visualLine = textArea.Document.GetVisibleLine(lineNr);
if (visualLine > 0) {
int xpos = textArea.TextView.GetDrawingXPos(lineNr, position.X);
- Point pos = new Point(xpos,
- textArea.TextView.DrawingPosition.Y + (visualLine - 1) * textArea.TextView.FontHeight - textArea.TextView.TextArea.VirtualTop.Y);
+ TextLocation pos = new TextLocation(xpos,
+ textArea.TextView.DrawingPosition.Y + (visualLine - 1) * textArea.TextView.FontHeight - textArea.TextView.TextArea.VirtualTop.Y);
textArea.Caret.Position = textArea.TextView.GetLogicalPosition(pos.X, pos.Y);
textArea.SetCaretToDesiredColumn();
}
@@ -98,13 +98,13 @@ namespace ICSharpCode.TextEditor.Actions
{
public override void Execute(TextArea textArea)
{
- Point position = textArea.Caret.Position;
+ TextLocation position = textArea.Caret.Position;
int lineNr = position.Y;
int visualLine = textArea.Document.GetVisibleLine(lineNr);
if (visualLine < textArea.Document.GetVisibleLine(textArea.Document.TotalNumberOfLines)) {
int xpos = textArea.TextView.GetDrawingXPos(lineNr, position.X);
- Point pos = new Point(xpos,
- textArea.TextView.DrawingPosition.Y + (visualLine + 1) * textArea.TextView.FontHeight - textArea.TextView.TextArea.VirtualTop.Y);
+ TextLocation pos = new TextLocation(xpos,
+ textArea.TextView.DrawingPosition.Y + (visualLine + 1) * textArea.TextView.FontHeight - textArea.TextView.TextArea.VirtualTop.Y);
textArea.Caret.Position = textArea.TextView.GetLogicalPosition(pos.X, pos.Y);
textArea.SetCaretToDesiredColumn();
}
@@ -119,10 +119,10 @@ namespace ICSharpCode.TextEditor.Actions
public override void Execute(TextArea textArea)
{
LineSegment line = textArea.Document.GetLineSegment(textArea.Caret.Position.Y);
- Point oldPos = textArea.Caret.Position;
- Point newPos;
+ TextLocation oldPos = textArea.Caret.Position;
+ TextLocation newPos;
if (textArea.Caret.Column >= line.Length) {
- newPos = new Point(0, textArea.Caret.Line + 1);
+ newPos = new TextLocation(0, textArea.Caret.Line + 1);
} else {
int nextWordStart = TextUtilities.FindNextWordStart(textArea.Document, textArea.Caret.Offset);
newPos = textArea.Document.OffsetToPosition(nextWordStart);
@@ -133,9 +133,9 @@ namespace ICSharpCode.TextEditor.Actions
foreach (FoldMarker marker in foldings) {
if (marker.IsFolded) {
if (oldPos.X == marker.StartColumn && oldPos.Y == marker.StartLine) {
- newPos = new Point(marker.EndColumn, marker.EndLine);
+ newPos = new TextLocation(marker.EndColumn, marker.EndLine);
} else {
- newPos = new Point(marker.StartColumn, marker.StartLine);
+ newPos = new TextLocation(marker.StartColumn, marker.StartLine);
}
break;
}
@@ -150,7 +150,7 @@ namespace ICSharpCode.TextEditor.Actions
{
public override void Execute(TextArea textArea)
{
- Point oldPos = textArea.Caret.Position;
+ TextLocation oldPos = textArea.Caret.Position;
if (textArea.Caret.Column == 0) {
base.Execute(textArea);
} else {
@@ -158,16 +158,16 @@ namespace ICSharpCode.TextEditor.Actions
int prevWordStart = TextUtilities.FindPrevWordStart(textArea.Document, textArea.Caret.Offset);
- Point newPos = textArea.Document.OffsetToPosition(prevWordStart);
+ TextLocation newPos = textArea.Document.OffsetToPosition(prevWordStart);
// handle fold markers
List foldings = textArea.Document.FoldingManager.GetFoldingsFromPosition(newPos.Y, newPos.X);
foreach (FoldMarker marker in foldings) {
if (marker.IsFolded) {
if (oldPos.X == marker.EndColumn && oldPos.Y == marker.EndLine) {
- newPos = new Point(marker.StartColumn, marker.StartLine);
+ newPos = new TextLocation(marker.StartColumn, marker.StartLine);
} else {
- newPos = new Point(marker.EndColumn, marker.EndLine);
+ newPos = new TextLocation(marker.EndColumn, marker.EndLine);
}
break;
}
diff --git a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Actions/HomeEndActions.cs b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Actions/HomeEndActions.cs
index 18a0b3544b..c200fc32b7 100644
--- a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Actions/HomeEndActions.cs
+++ b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Actions/HomeEndActions.cs
@@ -11,18 +11,18 @@ using System.Drawing;
using ICSharpCode.TextEditor.Document;
-namespace ICSharpCode.TextEditor.Actions
+namespace ICSharpCode.TextEditor.Actions
{
public class Home : AbstractEditAction
{
public override void Execute(TextArea textArea)
{
LineSegment curLine;
- Point newPos = textArea.Caret.Position;
+ TextLocation newPos = textArea.Caret.Position;
bool jumpedIntoFolding = false;
do {
curLine = textArea.Document.GetLineSegment(newPos.Y);
-
+
if (TextUtilities.IsEmptyLine(textArea.Document, newPos.Y)) {
if (newPos.X != 0) {
newPos.X = 0;
@@ -43,7 +43,7 @@ namespace ICSharpCode.TextEditor.Actions
jumpedIntoFolding = false;
foreach (FoldMarker foldMarker in foldings) {
if (foldMarker.IsFolded) {
- newPos = new Point(foldMarker.StartColumn, foldMarker.StartLine);
+ newPos = new TextLocation(foldMarker.StartColumn, foldMarker.StartLine);
jumpedIntoFolding = true;
break;
}
@@ -63,8 +63,8 @@ namespace ICSharpCode.TextEditor.Actions
public override void Execute(TextArea textArea)
{
LineSegment curLine;
- Point newPos = textArea.Caret.Position;
- bool jumpedIntoFolding = false;
+ TextLocation newPos = textArea.Caret.Position;
+ bool jumpedIntoFolding = false;
do {
curLine = textArea.Document.GetLineSegment(newPos.Y);
newPos.X = curLine.Length;
@@ -73,7 +73,7 @@ namespace ICSharpCode.TextEditor.Actions
jumpedIntoFolding = false;
foreach (FoldMarker foldMarker in foldings) {
if (foldMarker.IsFolded) {
- newPos = new Point(foldMarker.EndColumn, foldMarker.EndLine);
+ newPos = new TextLocation(foldMarker.EndColumn, foldMarker.EndLine);
jumpedIntoFolding = true;
break;
}
@@ -93,7 +93,7 @@ namespace ICSharpCode.TextEditor.Actions
public override void Execute(TextArea textArea)
{
if (textArea.Caret.Line != 0 || textArea.Caret.Column != 0) {
- textArea.Caret.Position = new Point(0, 0);
+ textArea.Caret.Position = new TextLocation(0, 0);
textArea.SetDesiredColumn();
}
}
@@ -104,7 +104,7 @@ namespace ICSharpCode.TextEditor.Actions
{
public override void Execute(TextArea textArea)
{
- Point endPos = textArea.Document.OffsetToPosition(textArea.Document.TextLength);
+ TextLocation endPos = textArea.Document.OffsetToPosition(textArea.Document.TextLength);
if (textArea.Caret.Position != endPos) {
textArea.Caret.Position = endPos;
textArea.SetDesiredColumn();
diff --git a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Actions/MiscActions.cs b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Actions/MiscActions.cs
index d24a0bd9f3..995be73536 100644
--- a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Actions/MiscActions.cs
+++ b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Actions/MiscActions.cs
@@ -595,15 +595,15 @@ namespace ICSharpCode.TextEditor.Actions
int lineEndOffset = line.Offset + line.Length;
int lineLength = line.Length;
textArea.Document.Remove(lineEndOffset, curLineOffset - lineEndOffset);
- textArea.Caret.Position = new Point(lineLength, curLineNr - 1);
- textArea.Document.RequestUpdate(new TextAreaUpdate(TextAreaUpdateType.PositionToEnd, new Point(0, curLineNr - 1)));
+ textArea.Caret.Position = new TextLocation(lineLength, curLineNr - 1);
+ textArea.Document.RequestUpdate(new TextAreaUpdate(TextAreaUpdateType.PositionToEnd, new TextLocation(0, curLineNr - 1)));
textArea.EndUpdate();
} else {
int caretOffset = textArea.Caret.Offset - 1;
textArea.Caret.Position = textArea.Document.OffsetToPosition(caretOffset);
textArea.Document.Remove(caretOffset, 1);
- textArea.Document.RequestUpdate(new TextAreaUpdate(TextAreaUpdateType.PositionToLineEnd, new Point(textArea.Caret.Offset - textArea.Document.GetLineSegment(curLineNr).Offset, curLineNr)));
+ textArea.Document.RequestUpdate(new TextAreaUpdate(TextAreaUpdateType.PositionToLineEnd, new TextLocation(textArea.Caret.Offset - textArea.Document.GetLineSegment(curLineNr).Offset, curLineNr)));
textArea.EndUpdate();
}
}
@@ -640,11 +640,11 @@ namespace ICSharpCode.TextEditor.Actions
LineSegment nextLine = textArea.Document.GetLineSegment(curLineNr + 1);
textArea.Document.Remove(textArea.Caret.Offset, nextLine.Offset - textArea.Caret.Offset);
- textArea.Document.RequestUpdate(new TextAreaUpdate(TextAreaUpdateType.PositionToEnd, new Point(0, curLineNr)));
+ textArea.Document.RequestUpdate(new TextAreaUpdate(TextAreaUpdateType.PositionToEnd, new TextLocation(0, curLineNr)));
}
} else {
textArea.Document.Remove(textArea.Caret.Offset, 1);
-// textArea.Document.RequestUpdate(new TextAreaUpdate(TextAreaUpdateType.PositionToLineEnd, new Point(textArea.Caret.Offset - textArea.Document.GetLineSegment(curLineNr).Offset, curLineNr)));
+// textArea.Document.RequestUpdate(new TextAreaUpdate(TextAreaUpdateType.PositionToLineEnd, new TextLocation(textArea.Caret.Offset - textArea.Document.GetLineSegment(curLineNr).Offset, curLineNr)));
}
textArea.UpdateMatchingBracket();
textArea.EndUpdate();
@@ -665,7 +665,7 @@ namespace ICSharpCode.TextEditor.Actions
int requestedLineNumber = Math.Min(textArea.Document.GetNextVisibleLineAbove(curLineNr, textArea.TextView.VisibleLineCount), textArea.Document.TotalNumberOfLines - 1);
if (curLineNr != requestedLineNumber) {
- textArea.Caret.Position = new Point(textArea.Caret.DesiredColumn, requestedLineNumber);
+ textArea.Caret.Position = new TextLocation(textArea.Caret.DesiredColumn, requestedLineNumber);
}
}
}
@@ -682,7 +682,7 @@ namespace ICSharpCode.TextEditor.Actions
int requestedLineNumber = Math.Max(textArea.Document.GetNextVisibleLineBelow(curLineNr, textArea.TextView.VisibleLineCount), 0);
if (curLineNr != requestedLineNumber) {
- textArea.Caret.Position = new Point(textArea.Caret.DesiredColumn, requestedLineNumber);
+ textArea.Caret.Position = new TextLocation(textArea.Caret.DesiredColumn, requestedLineNumber);
}
}
}
@@ -710,7 +710,7 @@ namespace ICSharpCode.TextEditor.Actions
textArea.SetDesiredColumn();
textArea.Document.UpdateQueue.Clear();
- textArea.Document.RequestUpdate(new TextAreaUpdate(TextAreaUpdateType.PositionToEnd, new Point(0, curLineNr - 1)));
+ textArea.Document.RequestUpdate(new TextAreaUpdate(TextAreaUpdateType.PositionToEnd, new TextLocation(0, curLineNr - 1)));
} finally {
textArea.Document.UndoStack.EndUndoGroup();
textArea.EndUpdate();
@@ -815,7 +815,7 @@ namespace ICSharpCode.TextEditor.Actions
textArea.SetDesiredColumn();
textArea.EndUpdate();
// if there are now less lines, we need this or there are redraw problems
- textArea.Document.RequestUpdate(new TextAreaUpdate(TextAreaUpdateType.PositionToEnd, new Point(0, textArea.Document.GetLineNumberForOffset(textArea.Caret.Offset))));
+ textArea.Document.RequestUpdate(new TextAreaUpdate(TextAreaUpdateType.PositionToEnd, new TextLocation(0, textArea.Document.GetLineNumberForOffset(textArea.Caret.Offset))));
textArea.Document.CommitUpdate();
}
}
@@ -858,7 +858,7 @@ namespace ICSharpCode.TextEditor.Actions
textArea.UpdateMatchingBracket();
textArea.EndUpdate();
// if there are now less lines, we need this or there are redraw problems
- textArea.Document.RequestUpdate(new TextAreaUpdate(TextAreaUpdateType.PositionToEnd, new Point(0, textArea.Document.GetLineNumberForOffset(textArea.Caret.Offset))));
+ textArea.Document.RequestUpdate(new TextAreaUpdate(TextAreaUpdateType.PositionToEnd, new TextLocation(0, textArea.Document.GetLineNumberForOffset(textArea.Caret.Offset))));
textArea.Document.CommitUpdate();
}
}
@@ -872,7 +872,7 @@ namespace ICSharpCode.TextEditor.Actions
textArea.Document.Remove(line.Offset, line.TotalLength);
textArea.Caret.Position = textArea.Document.OffsetToPosition(line.Offset);
- textArea.Document.RequestUpdate(new TextAreaUpdate(TextAreaUpdateType.PositionToEnd, new Point(0, lineNr)));
+ textArea.Document.RequestUpdate(new TextAreaUpdate(TextAreaUpdateType.PositionToEnd, new TextLocation(0, lineNr)));
textArea.UpdateMatchingBracket();
textArea.Document.CommitUpdate();
}
@@ -888,7 +888,7 @@ namespace ICSharpCode.TextEditor.Actions
int numRemove = (line.Offset + line.Length) - textArea.Caret.Offset;
if (numRemove > 0) {
textArea.Document.Remove(textArea.Caret.Offset, numRemove);
- textArea.Document.RequestUpdate(new TextAreaUpdate(TextAreaUpdateType.SingleLine, new Point(0, lineNr)));
+ textArea.Document.RequestUpdate(new TextAreaUpdate(TextAreaUpdateType.SingleLine, new TextLocation(0, lineNr)));
textArea.Document.CommitUpdate();
}
}
@@ -900,19 +900,19 @@ namespace ICSharpCode.TextEditor.Actions
{
Highlight highlight = textArea.FindMatchingBracketHighlight();
if (highlight != null) {
- Point p1 = new Point(highlight.CloseBrace.X + 1, highlight.CloseBrace.Y);
- Point p2 = new Point(highlight.OpenBrace.X + 1, highlight.OpenBrace.Y);
+ TextLocation p1 = new TextLocation(highlight.CloseBrace.X + 1, highlight.CloseBrace.Y);
+ TextLocation p2 = new TextLocation(highlight.OpenBrace.X + 1, highlight.OpenBrace.Y);
if (p1 == textArea.Caret.Position) {
if (textArea.Document.TextEditorProperties.BracketMatchingStyle == BracketMatchingStyle.After) {
textArea.Caret.Position = p2;
} else {
- textArea.Caret.Position = new Point(p2.X - 1, p2.Y);
+ textArea.Caret.Position = new TextLocation(p2.X - 1, p2.Y);
}
} else {
if (textArea.Document.TextEditorProperties.BracketMatchingStyle == BracketMatchingStyle.After) {
textArea.Caret.Position = p1;
} else {
- textArea.Caret.Position = new Point(p1.X - 1, p1.Y);
+ textArea.Caret.Position = new TextLocation(p1.X - 1, p1.Y);
}
}
textArea.SetDesiredColumn();
diff --git a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Actions/SelectionActions.cs b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Actions/SelectionActions.cs
index 17f73929c8..5b2e719a48 100644
--- a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Actions/SelectionActions.cs
+++ b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Actions/SelectionActions.cs
@@ -15,7 +15,7 @@ namespace ICSharpCode.TextEditor.Actions
{
public override void Execute(TextArea textArea)
{
- Point oldCaretPos = textArea.Caret.Position;
+ TextLocation oldCaretPos = textArea.Caret.Position;
base.Execute(textArea);
textArea.AutoClearSelection = false;
textArea.SelectionManager.ExtendSelection(oldCaretPos, textArea.Caret.Position);
@@ -26,7 +26,7 @@ namespace ICSharpCode.TextEditor.Actions
{
public override void Execute(TextArea textArea)
{
- Point oldCaretPos = textArea.Caret.Position;
+ TextLocation oldCaretPos = textArea.Caret.Position;
base.Execute(textArea);
textArea.AutoClearSelection = false;
textArea.SelectionManager.ExtendSelection(oldCaretPos, textArea.Caret.Position);
@@ -37,7 +37,7 @@ namespace ICSharpCode.TextEditor.Actions
{
public override void Execute(TextArea textArea)
{
- Point oldCaretPos = textArea.Caret.Position;
+ TextLocation oldCaretPos = textArea.Caret.Position;
base.Execute(textArea);
textArea.AutoClearSelection = false;
textArea.SelectionManager.ExtendSelection(oldCaretPos, textArea.Caret.Position);
@@ -48,7 +48,7 @@ namespace ICSharpCode.TextEditor.Actions
{
public override void Execute(TextArea textArea)
{
- Point oldCaretPos = textArea.Caret.Position;
+ TextLocation oldCaretPos = textArea.Caret.Position;
base.Execute(textArea);
textArea.AutoClearSelection = false;
textArea.SelectionManager.ExtendSelection(oldCaretPos, textArea.Caret.Position);
@@ -59,7 +59,7 @@ namespace ICSharpCode.TextEditor.Actions
{
public override void Execute(TextArea textArea)
{
- Point oldCaretPos = textArea.Caret.Position;
+ TextLocation oldCaretPos = textArea.Caret.Position;
base.Execute(textArea);
textArea.AutoClearSelection = false;
textArea.SelectionManager.ExtendSelection(oldCaretPos, textArea.Caret.Position);
@@ -70,7 +70,7 @@ namespace ICSharpCode.TextEditor.Actions
{
public override void Execute(TextArea textArea)
{
- Point oldCaretPos = textArea.Caret.Position;
+ TextLocation oldCaretPos = textArea.Caret.Position;
base.Execute(textArea);
textArea.AutoClearSelection = false;
textArea.SelectionManager.ExtendSelection(oldCaretPos, textArea.Caret.Position);
@@ -81,7 +81,7 @@ namespace ICSharpCode.TextEditor.Actions
{
public override void Execute(TextArea textArea)
{
- Point oldCaretPos = textArea.Caret.Position;
+ TextLocation oldCaretPos = textArea.Caret.Position;
base.Execute(textArea);
textArea.AutoClearSelection = false;
textArea.SelectionManager.ExtendSelection(oldCaretPos, textArea.Caret.Position);
@@ -92,7 +92,7 @@ namespace ICSharpCode.TextEditor.Actions
{
public override void Execute(TextArea textArea)
{
- Point oldCaretPos = textArea.Caret.Position;
+ TextLocation oldCaretPos = textArea.Caret.Position;
base.Execute(textArea);
textArea.AutoClearSelection = false;
textArea.SelectionManager.ExtendSelection(oldCaretPos, textArea.Caret.Position);
@@ -103,7 +103,7 @@ namespace ICSharpCode.TextEditor.Actions
{
public override void Execute(TextArea textArea)
{
- Point oldCaretPos = textArea.Caret.Position;
+ TextLocation oldCaretPos = textArea.Caret.Position;
base.Execute(textArea);
textArea.AutoClearSelection = false;
textArea.SelectionManager.ExtendSelection(oldCaretPos, textArea.Caret.Position);
@@ -114,7 +114,7 @@ namespace ICSharpCode.TextEditor.Actions
{
public override void Execute(TextArea textArea)
{
- Point oldCaretPos = textArea.Caret.Position;
+ TextLocation oldCaretPos = textArea.Caret.Position;
base.Execute(textArea);
textArea.AutoClearSelection = false;
textArea.SelectionManager.ExtendSelection(oldCaretPos, textArea.Caret.Position);
@@ -125,7 +125,7 @@ namespace ICSharpCode.TextEditor.Actions
{
public override void Execute(TextArea textArea)
{
- Point oldCaretPos = textArea.Caret.Position;
+ TextLocation oldCaretPos = textArea.Caret.Position;
base.Execute(textArea);
textArea.AutoClearSelection = false;
textArea.SelectionManager.ExtendSelection(oldCaretPos, textArea.Caret.Position);
@@ -136,7 +136,7 @@ namespace ICSharpCode.TextEditor.Actions
{
public override void Execute(TextArea textArea)
{
- Point oldCaretPos = textArea.Caret.Position;
+ TextLocation oldCaretPos = textArea.Caret.Position;
base.Execute(textArea);
textArea.AutoClearSelection = false;
textArea.SelectionManager.ExtendSelection(oldCaretPos, textArea.Caret.Position);
@@ -148,8 +148,8 @@ namespace ICSharpCode.TextEditor.Actions
public override void Execute(TextArea textArea)
{
textArea.AutoClearSelection = false;
- Point startPoint = new Point(0, 0);
- Point endPoint = textArea.Document.OffsetToPosition(textArea.Document.TextLength);
+ TextLocation startPoint = new TextLocation(0, 0);
+ TextLocation endPoint = textArea.Document.OffsetToPosition(textArea.Document.TextLength);
if (textArea.SelectionManager.HasSomethingSelected) {
if (textArea.SelectionManager.SelectionCollection[0].StartPosition == startPoint &&
textArea.SelectionManager.SelectionCollection[0].EndPosition == endPoint) {
diff --git a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/DefaultDocument.cs b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/DefaultDocument.cs
index 1e16bf6632..54ccd0ec9c 100644
--- a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/DefaultDocument.cs
+++ b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/DefaultDocument.cs
@@ -341,14 +341,14 @@ namespace ICSharpCode.TextEditor.Document
return lineTrackingStrategy.GetNextVisibleLineBelow(lineNumber, lineCount);
}
- public Point OffsetToPosition(int offset)
+ public TextLocation OffsetToPosition(int offset)
{
int lineNr = GetLineNumberForOffset(offset);
LineSegment line = GetLineSegment(lineNr);
- return new Point(offset - line.Offset, lineNr);
+ return new TextLocation(offset - line.Offset, lineNr);
}
- public int PositionToOffset(Point p)
+ public int PositionToOffset(TextLocation p)
{
if (p.Y >= this.TotalNumberOfLines) {
return 0;
diff --git a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/IDocument.cs b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/IDocument.cs
index 8fddcfcb0e..93b4f3c095 100644
--- a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/IDocument.cs
+++ b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/IDocument.cs
@@ -90,7 +90,7 @@ namespace ICSharpCode.TextEditor.Document
// get;
// }
-#region ILineManager interface
+ #region ILineManager interface
///
/// A collection of all line segments
///
@@ -104,7 +104,7 @@ namespace ICSharpCode.TextEditor.Document
}
///
- /// The total number of lines, this may be != ArrayList.Count
+ /// The total number of lines, this may be != ArrayList.Count
/// if the last line ends with a delimiter.
///
int TotalNumberOfLines {
@@ -189,9 +189,9 @@ namespace ICSharpCode.TextEditor.Document
/// Get the next visible line below lineNumber
///
int GetNextVisibleLineBelow(int lineNumber, int lineCount);
-#endregion
+ #endregion
-#region ITextBufferStrategy interface
+ #region ITextBufferStrategy interface
///
/// Get the whole text as string.
/// When setting the text using the TextContent property, the undo stack is cleared.
@@ -264,20 +264,20 @@ namespace ICSharpCode.TextEditor.Document
/// number of characters to copy.
///
string GetText(int offset, int length);
-#endregion
+ #endregion
string GetText(ISegment segment);
-#region ITextModel interface
+ #region ITextModel interface
///
/// returns the logical line/column position from an offset
///
- Point OffsetToPosition(int offset);
+ TextLocation OffsetToPosition(int offset);
///
/// returns the offset from a logical line/column position
///
- int PositionToOffset(Point p);
-#endregion
+ int PositionToOffset(TextLocation p);
+ #endregion
///
/// A container where all TextAreaUpdate objects get stored
///
diff --git a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/MarkerStrategy/MarkerStrategy.cs b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/MarkerStrategy/MarkerStrategy.cs
index bb6264a68b..9196c30df3 100644
--- a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/MarkerStrategy/MarkerStrategy.cs
+++ b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/MarkerStrategy/MarkerStrategy.cs
@@ -100,7 +100,7 @@ namespace ICSharpCode.TextEditor.Document
return markers;
}
- public List GetMarkers(Point position)
+ public List GetMarkers(TextLocation position)
{
if (position.Y >= document.TotalNumberOfLines || position.Y < 0) {
return new List();
diff --git a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/Selection/DefaultSelection.cs b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/Selection/DefaultSelection.cs
index de818b7822..f766a30eb2 100644
--- a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/Selection/DefaultSelection.cs
+++ b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/Selection/DefaultSelection.cs
@@ -17,10 +17,10 @@ namespace ICSharpCode.TextEditor.Document
{
IDocument document;
bool isRectangularSelection;
- Point startPosition;
- Point endPosition;
+ TextLocation startPosition;
+ TextLocation endPosition;
- public Point StartPosition {
+ public TextLocation StartPosition {
get {
return startPosition;
}
@@ -29,7 +29,7 @@ namespace ICSharpCode.TextEditor.Document
}
}
- public Point EndPosition {
+ public TextLocation EndPosition {
get {
return endPosition;
}
@@ -96,7 +96,7 @@ namespace ICSharpCode.TextEditor.Document
///
/// Creates a new instance of
///
- public DefaultSelection(IDocument document, Point startPosition, Point endPosition)
+ public DefaultSelection(IDocument document, TextLocation startPosition, TextLocation endPosition)
{
this.document = document;
this.startPosition = startPosition;
@@ -110,7 +110,7 @@ namespace ICSharpCode.TextEditor.Document
{
return String.Format("[DefaultSelection : StartPosition={0}, EndPosition={1}]", startPosition, endPosition);
}
- public bool ContainsPosition(Point position)
+ public bool ContainsPosition(TextLocation position)
{
if (this.IsEmpty)
return false;
diff --git a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/Selection/ISelection.cs b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/Selection/ISelection.cs
index 7d1ab9d2f2..702fe5f9af 100644
--- a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/Selection/ISelection.cs
+++ b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/Selection/ISelection.cs
@@ -14,12 +14,12 @@ namespace ICSharpCode.TextEditor.Document
///
public interface ISelection
{
- Point StartPosition {
+ TextLocation StartPosition {
get;
set;
}
- Point EndPosition {
+ TextLocation EndPosition {
get;
set;
}
@@ -59,6 +59,6 @@ namespace ICSharpCode.TextEditor.Document
bool ContainsOffset(int offset);
- bool ContainsPosition(Point position);
+ bool ContainsPosition(TextLocation position);
}
}
diff --git a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/Selection/SelectionManager.cs b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/Selection/SelectionManager.cs
index 3ea265afb4..8c374e80dd 100644
--- a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/Selection/SelectionManager.cs
+++ b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/Selection/SelectionManager.cs
@@ -17,7 +17,7 @@ namespace ICSharpCode.TextEditor.Document
///
public class SelectionManager : IDisposable
{
- internal Point selectionStart;
+ internal TextLocation selectionStart;
IDocument document;
TextArea textArea;
internal SelectFrom selectFrom = new SelectFrom();
@@ -142,17 +142,17 @@ namespace ICSharpCode.TextEditor.Document
}
}
- public void SetSelection(Point startPosition, Point endPosition)
+ public void SetSelection(TextLocation startPosition, TextLocation endPosition)
{
SetSelection(new DefaultSelection(document, startPosition, endPosition));
}
- public bool GreaterEqPos(Point p1, Point p2)
+ public bool GreaterEqPos(TextLocation p1, TextLocation p2)
{
return p1.Y > p2.Y || p1.Y == p2.Y && p1.X >= p2.X;
}
- public void ExtendSelection(Point oldPosition, Point newPosition)
+ public void ExtendSelection(TextLocation oldPosition, TextLocation newPosition)
{
// where oldposition is where the cursor was,
// and newposition is where it has ended up from a click (both zero based)
@@ -162,8 +162,8 @@ namespace ICSharpCode.TextEditor.Document
return;
}
- Point min;
- Point max;
+ TextLocation min;
+ TextLocation max;
int oldnewX = newPosition.X;
bool oldIsGreater = GreaterEqPos(oldPosition, newPosition);
if (oldIsGreater) {
@@ -205,7 +205,7 @@ namespace ICSharpCode.TextEditor.Document
selection.StartPosition = selectionStart;
// this handles last line selection
if (selectFrom.where == WhereFrom.Gutter ) //&& newPosition.Y != oldPosition.Y)
- selection.EndPosition = new Point(textArea.Caret.Column, textArea.Caret.Line);
+ selection.EndPosition = new TextLocation(textArea.Caret.Column, textArea.Caret.Line);
else {
newPosition.X = oldnewX;
selection.EndPosition = newPosition;
@@ -230,12 +230,12 @@ namespace ICSharpCode.TextEditor.Document
// - checks that there are more lines available after the current one
// - if there are then the next line is returned
// - if there are NOT then the last position on the given line is returned
- public Point NextValidPosition(int line)
+ public TextLocation NextValidPosition(int line)
{
if (line < document.TotalNumberOfLines - 1)
- return new Point(0, line + 1);
+ return new TextLocation(0, line + 1);
else
- return new Point(document.GetLineSegment(document.TotalNumberOfLines - 1).Length + 1, line);
+ return new TextLocation(document.GetLineSegment(document.TotalNumberOfLines - 1).Length + 1, line);
}
void ClearWithoutUpdate()
diff --git a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/TextLocation.cs b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/TextLocation.cs
new file mode 100644
index 0000000000..7403ea9c9e
--- /dev/null
+++ b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/TextLocation.cs
@@ -0,0 +1,128 @@
+//
+//
+//
+//
+// $Revision: 2658$
+//
+
+using System;
+
+namespace ICSharpCode.TextEditor
+{
+ ///
+ /// A line/column position.
+ /// Text editor lines/columns are counting from zero.
+ ///
+ public struct TextLocation : IComparable, IEquatable
+ {
+ ///
+ /// Represents no text location (-1, -1).
+ ///
+ public static readonly TextLocation Empty = new TextLocation(-1, -1);
+
+ public TextLocation(int column, int line)
+ {
+ x = column;
+ y = line;
+ }
+
+ int x, y;
+
+ public int X {
+ get { return x; }
+ set { x = value; }
+ }
+
+ public int Y {
+ get { return y; }
+ set { y = value; }
+ }
+
+ public int Line {
+ get { return y; }
+ set { y = value; }
+ }
+
+ public int Column {
+ get { return x; }
+ set { x = value; }
+ }
+
+ public bool IsEmpty {
+ get {
+ return x <= 0 && y <= 0;
+ }
+ }
+
+ public override string ToString()
+ {
+ return string.Format("(Line {1}, Col {0})", this.x, this.y);
+ }
+
+ public override int GetHashCode()
+ {
+ return unchecked (87 * x.GetHashCode() ^ y.GetHashCode());
+ }
+
+ public override bool Equals(object obj)
+ {
+ if (!(obj is TextLocation)) return false;
+ return (TextLocation)obj == this;
+ }
+
+ public bool Equals(TextLocation other)
+ {
+ return this == other;
+ }
+
+ public static bool operator ==(TextLocation a, TextLocation b)
+ {
+ return a.x == b.x && a.y == b.y;
+ }
+
+ public static bool operator !=(TextLocation a, TextLocation b)
+ {
+ return a.x != b.x || a.y != b.y;
+ }
+
+ public static bool operator <(TextLocation a, TextLocation b)
+ {
+ if (a.y < b.y)
+ return true;
+ else if (a.y == b.y)
+ return a.x < b.x;
+ else
+ return false;
+ }
+
+ public static bool operator >(TextLocation a, TextLocation b)
+ {
+ if (a.y > b.y)
+ return true;
+ else if (a.y == b.y)
+ return a.x > b.x;
+ else
+ return false;
+ }
+
+ public static bool operator <=(TextLocation a, TextLocation b)
+ {
+ return !(a > b);
+ }
+
+ public static bool operator >=(TextLocation a, TextLocation b)
+ {
+ return !(a < b);
+ }
+
+ public int CompareTo(TextLocation other)
+ {
+ if (this == other)
+ return 0;
+ if (this < other)
+ return -1;
+ else
+ return 1;
+ }
+ }
+}
diff --git a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/BracketHighlighter.cs b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/BracketHighlighter.cs
index 852c3b7918..45d47744f5 100644
--- a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/BracketHighlighter.cs
+++ b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/BracketHighlighter.cs
@@ -13,30 +13,13 @@ namespace ICSharpCode.TextEditor
{
public class Highlight
{
- Point openBrace;
- Point closeBrace;
+ public TextLocation OpenBrace { get; set; }
+ public TextLocation CloseBrace { get; set; }
- public Point OpenBrace {
- get {
- return openBrace;
- }
- set {
- openBrace = value;
- }
- }
- public Point CloseBrace {
- get {
- return closeBrace;
- }
- set {
- closeBrace = value;
- }
- }
-
- public Highlight(Point openBrace, Point closeBrace)
+ public Highlight(TextLocation openBrace, TextLocation closeBrace)
{
- this.openBrace = openBrace;
- this.closeBrace = closeBrace;
+ this.OpenBrace = openBrace;
+ this.CloseBrace = closeBrace;
}
}
@@ -79,12 +62,12 @@ namespace ICSharpCode.TextEditor
}
char word = document.GetCharAt(Math.Max(0, Math.Min(document.TextLength - 1, searchOffset)));
- Point endP = document.OffsetToPosition(searchOffset);
+ TextLocation endP = document.OffsetToPosition(searchOffset);
if (word == opentag) {
if (searchOffset < document.TextLength) {
int bracketOffset = TextUtilities.SearchBracketForward(document, searchOffset + 1, opentag, closingtag);
if (bracketOffset >= 0) {
- Point p = document.OffsetToPosition(bracketOffset);
+ TextLocation p = document.OffsetToPosition(bracketOffset);
return new Highlight(p, endP);
}
}
@@ -92,7 +75,7 @@ namespace ICSharpCode.TextEditor
if (searchOffset > 0) {
int bracketOffset = TextUtilities.SearchBracketBackward(document, searchOffset - 1, opentag, closingtag);
if (bracketOffset >= 0) {
- Point p = document.OffsetToPosition(bracketOffset);
+ TextLocation p = document.OffsetToPosition(bracketOffset);
return new Highlight(p, endP);
}
}
diff --git a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/Caret.cs b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/Caret.cs
index 5ae4582eb4..c02e5fe2ac 100644
--- a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/Caret.cs
+++ b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/Caret.cs
@@ -95,9 +95,9 @@ namespace ICSharpCode.TextEditor
}
}
- public Point Position {
+ public TextLocation Position {
get {
- return new Point(column, line);
+ return new TextLocation(column, line);
}
set {
line = value.Y;
@@ -130,7 +130,7 @@ namespace ICSharpCode.TextEditor
// caretCreated = false;
}
- public Point ValidatePosition(Point pos)
+ public TextLocation ValidatePosition(TextLocation pos)
{
int line = Math.Max(0, Math.Min(textArea.Document.TotalNumberOfLines - 1, pos.Y));
int column = Math.Max(0, pos.X);
@@ -139,7 +139,7 @@ namespace ICSharpCode.TextEditor
LineSegment lineSegment = textArea.Document.GetLineSegment(line);
column = Math.Min(column, lineSegment.Length);
}
- return new Point(column, line);
+ return new TextLocation(column, line);
}
///
diff --git a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/CompletionWindow/AbstractCompletionWindow.cs b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/CompletionWindow/AbstractCompletionWindow.cs
index 6e07fb7905..955d41c828 100644
--- a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/CompletionWindow/AbstractCompletionWindow.cs
+++ b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/CompletionWindow/AbstractCompletionWindow.cs
@@ -39,7 +39,7 @@ namespace ICSharpCode.TextEditor.Gui.CompletionWindow
protected virtual void SetLocation()
{
TextArea textArea = control.ActiveTextAreaControl.TextArea;
- Point caretPos = textArea.Caret.Position;
+ TextLocation caretPos = textArea.Caret.Position;
int xpos = textArea.TextView.GetDrawingXPos(caretPos.Y, caretPos.X);
int rulerHeight = textArea.TextEditorProperties.ShowHorizontalRuler ? textArea.TextView.FontHeight : 0;
diff --git a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/GutterMargin.cs b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/GutterMargin.cs
index 8eea735f84..7a1466430c 100644
--- a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/GutterMargin.cs
+++ b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/GutterMargin.cs
@@ -92,7 +92,7 @@ namespace ICSharpCode.TextEditor
public override void HandleMouseDown(Point mousepos, MouseButtons mouseButtons)
{
- Point selectionStartPos;
+ TextLocation selectionStartPos;
textArea.SelectionManager.selectFrom.where = WhereFrom.Gutter;
int realline = textArea.TextView.GetLogicalLine(mousepos);
@@ -107,13 +107,13 @@ namespace ICSharpCode.TextEditor
// whole line selection - start of line to start of next line
if (realline < textArea.Document.TotalNumberOfLines - 1)
{
- textArea.SelectionManager.SetSelection(new DefaultSelection(textArea.Document, selectionStartPos, new Point(0, realline + 1)));
- textArea.Caret.Position = new Point(0, realline + 1);
+ textArea.SelectionManager.SetSelection(new DefaultSelection(textArea.Document, selectionStartPos, new TextLocation(0, realline + 1)));
+ textArea.Caret.Position = new TextLocation(0, realline + 1);
}
else
{
- textArea.SelectionManager.SetSelection(new DefaultSelection(textArea.Document, selectionStartPos, new Point(textArea.Document.GetLineSegment(realline).Length + 1, realline)));
- textArea.Caret.Position = new Point(textArea.Document.GetLineSegment(realline).Length + 1, realline);
+ textArea.SelectionManager.SetSelection(new DefaultSelection(textArea.Document, selectionStartPos, new TextLocation(textArea.Document.GetLineSegment(realline).Length + 1, realline)));
+ textArea.Caret.Position = new TextLocation(textArea.Document.GetLineSegment(realline).Length + 1, realline);
}
}
else
@@ -121,9 +121,9 @@ namespace ICSharpCode.TextEditor
// nothing is selected so make a new selection from cursor
selectionStartPos = textArea.Caret.Position;
// whole line selection - start of line to start of next line
- textArea.SelectionManager.SetSelection(new DefaultSelection(textArea.Document, selectionStartPos, new Point(selectionStartPos.X, selectionStartPos.Y)));
- textArea.SelectionManager.ExtendSelection(new Point(selectionStartPos.X, selectionStartPos.Y), new Point(0, realline));
- textArea.Caret.Position = new Point(0, realline);
+ textArea.SelectionManager.SetSelection(new DefaultSelection(textArea.Document, selectionStartPos, new TextLocation(selectionStartPos.X, selectionStartPos.Y)));
+ textArea.SelectionManager.ExtendSelection(new TextLocation(selectionStartPos.X, selectionStartPos.Y), new TextLocation(0, realline));
+ textArea.Caret.Position = new TextLocation(0, realline);
}
}
else
@@ -138,18 +138,18 @@ namespace ICSharpCode.TextEditor
// there is a selection)
textArea.mousepos = mousepos;
- selectionStartPos = new Point(0, realline);
+ selectionStartPos = new TextLocation(0, realline);
textArea.SelectionManager.ClearSelection();
// whole line selection - start of line to start of next line
if (realline < textArea.Document.TotalNumberOfLines - 1)
{
- textArea.SelectionManager.SetSelection(new DefaultSelection(textArea.Document, selectionStartPos, new Point(selectionStartPos.X, selectionStartPos.Y + 1)));
- textArea.Caret.Position = new Point(selectionStartPos.X, selectionStartPos.Y + 1);
+ textArea.SelectionManager.SetSelection(new DefaultSelection(textArea.Document, selectionStartPos, new TextLocation(selectionStartPos.X, selectionStartPos.Y + 1)));
+ textArea.Caret.Position = new TextLocation(selectionStartPos.X, selectionStartPos.Y + 1);
}
else
{
- textArea.SelectionManager.SetSelection(new DefaultSelection(textArea.Document, new Point(0, realline), new Point(textArea.Document.GetLineSegment(realline).Length + 1, selectionStartPos.Y)));
- textArea.Caret.Position = new Point(textArea.Document.GetLineSegment(realline).Length + 1, selectionStartPos.Y);
+ textArea.SelectionManager.SetSelection(new DefaultSelection(textArea.Document, new TextLocation(0, realline), new TextLocation(textArea.Document.GetLineSegment(realline).Length + 1, selectionStartPos.Y)));
+ textArea.Caret.Position = new TextLocation(textArea.Document.GetLineSegment(realline).Length + 1, selectionStartPos.Y);
}
}
}
diff --git a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/InsightWindow/InsightWindow.cs b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/InsightWindow/InsightWindow.cs
index 54d62e187e..1823cfc359 100644
--- a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/InsightWindow/InsightWindow.cs
+++ b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/InsightWindow/InsightWindow.cs
@@ -60,7 +60,7 @@ namespace ICSharpCode.TextEditor.Gui.InsightWindow
protected override void CaretOffsetChanged(object sender, EventArgs e)
{
// move the window under the caret (don't change the x position)
- Point caretPos = control.ActiveTextAreaControl.Caret.Position;
+ TextLocation caretPos = control.ActiveTextAreaControl.Caret.Position;
int y = (int)((1 + caretPos.Y) * control.ActiveTextAreaControl.TextArea.TextView.FontHeight) - control.ActiveTextAreaControl.TextArea.VirtualTop.Y - 1 + control.ActiveTextAreaControl.TextArea.TextView.DrawingPosition.Y;
int xpos = control.ActiveTextAreaControl.TextArea.TextView.GetDrawingXPos(caretPos.Y, caretPos.X);
diff --git a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/TextArea.cs b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/TextArea.cs
index 3e31d1c532..b619bcd897 100644
--- a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/TextArea.cs
+++ b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/TextArea.cs
@@ -221,7 +221,7 @@ namespace ICSharpCode.TextEditor
void TextContentChanged(object sender, EventArgs e)
{
- Caret.Position = new Point(0, 0);
+ Caret.Position = new TextLocation(0, 0);
SelectionManager.SelectionCollection.Clear();
}
void SearchMatchingBracket(object sender, EventArgs e)
@@ -409,8 +409,8 @@ namespace ICSharpCode.TextEditor
toolTipRectangle = new Rectangle(mousePos.X - 4, mousePos.Y - 4, 8, 8);
- Point logicPos = textView.GetLogicalPosition(mousePos.X - textView.DrawingPosition.Left,
- mousePos.Y - textView.DrawingPosition.Top);
+ TextLocation logicPos = textView.GetLogicalPosition(mousePos.X - textView.DrawingPosition.Left,
+ mousePos.Y - textView.DrawingPosition.Top);
bool inDocument = textView.DrawingPosition.Contains(mousePos)
&& logicPos.Y >= 0 && logicPos.Y < Document.TotalNumberOfLines;
ToolTipRequestEventArgs args = new ToolTipRequestEventArgs(mousePos, logicPos, inDocument);
@@ -456,7 +456,7 @@ namespace ICSharpCode.TextEditor
lastMouseInMargin = null;
}
if (textView.DrawingPosition.Contains(e.X, e.Y)) {
- Point realmousepos = TextView.GetLogicalPosition(e.X - TextView.DrawingPosition.X, e.Y - TextView.DrawingPosition.Y);
+ TextLocation realmousepos = TextView.GetLogicalPosition(e.X - TextView.DrawingPosition.X, e.Y - TextView.DrawingPosition.Y);
if(SelectionManager.IsSelected(Document.PositionToOffset(realmousepos)) && MouseButtons == MouseButtons.None) {
// mouse is hovering over a selection, so show default mouse
this.Cursor = Cursors.Default;
diff --git a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/TextAreaClipboardHandler.cs b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/TextAreaClipboardHandler.cs
index edb00ab408..1d4cd6ce7e 100644
--- a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/TextAreaClipboardHandler.cs
+++ b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/TextAreaClipboardHandler.cs
@@ -152,7 +152,7 @@ namespace ICSharpCode.TextEditor
textArea.BeginUpdate();
textArea.Caret.Position = textArea.Document.OffsetToPosition(lineWhereCaretIs.Offset);
textArea.SelectionManager.RemoveSelectedText();
- textArea.Document.RequestUpdate(new TextAreaUpdate(TextAreaUpdateType.PositionToEnd, new Point(0, curLineNr)));
+ textArea.Document.RequestUpdate(new TextAreaUpdate(TextAreaUpdateType.PositionToEnd, new TextLocation(0, curLineNr)));
textArea.EndUpdate();
}
}
diff --git a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/TextAreaControl.cs b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/TextAreaControl.cs
index 18624d42a8..1fcaac1ac5 100644
--- a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/TextAreaControl.cs
+++ b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/TextAreaControl.cs
@@ -417,7 +417,7 @@ namespace ICSharpCode.TextEditor
{
textArea.Focus();
textArea.SelectionManager.ClearSelection();
- textArea.Caret.Position = new Point(column, line);
+ textArea.Caret.Position = new TextLocation(column, line);
textArea.SetDesiredColumn();
ScrollToCaret();
}
diff --git a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/TextAreaDragDropHandler.cs b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/TextAreaDragDropHandler.cs
index 61d9b48460..b83daba3c7 100644
--- a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/TextAreaDragDropHandler.cs
+++ b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/TextAreaDragDropHandler.cs
@@ -112,11 +112,11 @@ namespace ICSharpCode.TextEditor
Point p = textArea.PointToClient(new Point(e.X, e.Y));
if (textArea.TextView.DrawingPosition.Contains(p.X, p.Y)) {
- Point realmousepos= textArea.TextView.GetLogicalPosition(p.X - textArea.TextView.DrawingPosition.X,
- p.Y - textArea.TextView.DrawingPosition.Y);
+ TextLocation realmousepos= textArea.TextView.GetLogicalPosition(p.X - textArea.TextView.DrawingPosition.X,
+ p.Y - textArea.TextView.DrawingPosition.Y);
int lineNr = Math.Min(textArea.Document.TotalNumberOfLines - 1, Math.Max(0, realmousepos.Y));
- textArea.Caret.Position = new Point(realmousepos.X, lineNr);
+ textArea.Caret.Position = new TextLocation(realmousepos.X, lineNr);
textArea.SetDesiredColumn();
if (e.Data.GetDataPresent(typeof(string))) {
e.Effect = GetDragDropEffect(e);
diff --git a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/TextAreaMouseHandler.cs b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/TextAreaMouseHandler.cs
index c63da52014..1df2d7edd4 100644
--- a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/TextAreaMouseHandler.cs
+++ b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/TextAreaMouseHandler.cs
@@ -134,8 +134,9 @@ namespace ICSharpCode.TextEditor
{
textArea.SelectionManager.ClearSelection();
- Point clickPosition = textArea.TextView.GetLogicalPosition(mousepos.X - textArea.TextView.DrawingPosition.X,
- mousepos.Y - textArea.TextView.DrawingPosition.Y);
+ TextLocation clickPosition = textArea.TextView.GetLogicalPosition(
+ mousepos.X - textArea.TextView.DrawingPosition.X,
+ mousepos.Y - textArea.TextView.DrawingPosition.Y);
textArea.Caret.Position = clickPosition;
textArea.SetDesiredColumn();
}
@@ -199,11 +200,12 @@ namespace ICSharpCode.TextEditor
{
Point mousepos;
mousepos = textArea.mousepos;
- Point realmousepos = textArea.TextView.GetLogicalPosition(Math.Max(0, mousepos.X - textArea.TextView.DrawingPosition.X),
- mousepos.Y - textArea.TextView.DrawingPosition.Y);
+ TextLocation realmousepos = textArea.TextView.GetLogicalPosition(
+ Math.Max(0, mousepos.X - textArea.TextView.DrawingPosition.X),
+ mousepos.Y - textArea.TextView.DrawingPosition.Y);
int y = realmousepos.Y;
realmousepos = textArea.Caret.ValidatePosition(realmousepos);
- Point oldPos = textArea.Caret.Position;
+ TextLocation oldPos = textArea.Caret.Position;
if (oldPos == realmousepos && textArea.SelectionManager.selectFrom.where != WhereFrom.Gutter)
{
return;
@@ -213,7 +215,7 @@ namespace ICSharpCode.TextEditor
if (textArea.SelectionManager.selectFrom.where == WhereFrom.Gutter) {
if(realmousepos.Y < textArea.SelectionManager.selectionStart.Y) {
// the selection has moved above the startpoint
- textArea.Caret.Position = new Point(0, realmousepos.Y);
+ textArea.Caret.Position = new TextLocation(0, realmousepos.Y);
} else {
// the selection has moved below the startpoint
textArea.Caret.Position = textArea.SelectionManager.NextValidPosition(realmousepos.Y);
@@ -223,11 +225,11 @@ namespace ICSharpCode.TextEditor
}
// moves selection across whole words for double-click initiated selection
- if (minSelection != nilPoint && textArea.SelectionManager.SelectionCollection.Count > 0 && textArea.SelectionManager.selectFrom.where == WhereFrom.TArea) {
+ if (!minSelection.IsEmpty && textArea.SelectionManager.SelectionCollection.Count > 0 && textArea.SelectionManager.selectFrom.where == WhereFrom.TArea) {
// Extend selection when selection was started with double-click
ISelection selection = textArea.SelectionManager.SelectionCollection[0];
- Point min = textArea.SelectionManager.GreaterEqPos(minSelection, maxSelection) ? maxSelection : minSelection;
- Point max = textArea.SelectionManager.GreaterEqPos(minSelection, maxSelection) ? minSelection : maxSelection;
+ TextLocation min = textArea.SelectionManager.GreaterEqPos(minSelection, maxSelection) ? maxSelection : minSelection;
+ TextLocation max = textArea.SelectionManager.GreaterEqPos(minSelection, maxSelection) ? minSelection : maxSelection;
if (textArea.SelectionManager.GreaterEqPos(max, realmousepos) && textArea.SelectionManager.GreaterEqPos(realmousepos, min)) {
textArea.SelectionManager.SetSelection(min, max);
} else if (textArea.SelectionManager.GreaterEqPos(max, realmousepos)) {
@@ -335,21 +337,21 @@ namespace ICSharpCode.TextEditor
lastTime = DateTime.Now;
lastmousedownpos = new Point(e.X, e.Y);
- if(textArea.SelectionManager.selectFrom.where == WhereFrom.Gutter) {
- if(minSelection != nilPoint && maxSelection != nilPoint && textArea.SelectionManager.SelectionCollection.Count > 0) {
+ if (textArea.SelectionManager.selectFrom.where == WhereFrom.Gutter) {
+ if (!minSelection.IsEmpty && !maxSelection.IsEmpty && textArea.SelectionManager.SelectionCollection.Count > 0) {
textArea.SelectionManager.SelectionCollection[0].StartPosition = minSelection;
textArea.SelectionManager.SelectionCollection[0].EndPosition = maxSelection;
textArea.SelectionManager.selectionStart = minSelection;
- minSelection = nilPoint;
- maxSelection = nilPoint;
+ minSelection = TextLocation.Empty;
+ maxSelection = TextLocation.Empty;
}
}
return;
}
}
- minSelection = nilPoint;
- maxSelection = nilPoint;
+ minSelection = TextLocation.Empty;
+ maxSelection = TextLocation.Empty;
lastTime = DateTime.Now;
lastmousedownpos = mousedownpos = new Point(e.X, e.Y);
@@ -362,7 +364,7 @@ namespace ICSharpCode.TextEditor
clickedOnSelectedText = true;
}
- textArea.SelectionManager.SetSelection(new DefaultSelection(textArea.TextView.Document, new Point(marker.StartColumn, marker.StartLine), new Point(marker.EndColumn, marker.EndLine)));
+ textArea.SelectionManager.SetSelection(new DefaultSelection(textArea.TextView.Document, new TextLocation(marker.StartColumn, marker.StartLine), new TextLocation(marker.EndColumn, marker.EndLine)));
textArea.Focus();
return;
}
@@ -370,7 +372,7 @@ namespace ICSharpCode.TextEditor
if ((Control.ModifierKeys & Keys.Shift) == Keys.Shift) {
ExtendSelectionToMouse();
} else {
- Point realmousepos = textArea.TextView.GetLogicalPosition(mousepos.X - textArea.TextView.DrawingPosition.X, mousepos.Y - textArea.TextView.DrawingPosition.Y);
+ TextLocation realmousepos = textArea.TextView.GetLogicalPosition(mousepos.X - textArea.TextView.DrawingPosition.X, mousepos.Y - textArea.TextView.DrawingPosition.Y);
clickedOnSelectedText = false;
int offset = textArea.Document.PositionToOffset(realmousepos);
@@ -381,7 +383,7 @@ namespace ICSharpCode.TextEditor
} else {
textArea.SelectionManager.ClearSelection();
if (mousepos.Y > 0 && mousepos.Y < textArea.TextView.DrawingPosition.Height) {
- Point pos = new Point();
+ TextLocation pos = new TextLocation();
pos.Y = Math.Min(textArea.Document.TotalNumberOfLines - 1, realmousepos.Y);
pos.X = realmousepos.X;
textArea.Caret.Position = pos;
@@ -392,14 +394,14 @@ namespace ICSharpCode.TextEditor
} else if (button == MouseButtons.Right) {
// Rightclick sets the cursor to the click position unless
// the previous selection was clicked
- Point realmousepos = textArea.TextView.GetLogicalPosition(mousepos.X - textArea.TextView.DrawingPosition.X, mousepos.Y - textArea.TextView.DrawingPosition.Y);
+ TextLocation realmousepos = textArea.TextView.GetLogicalPosition(mousepos.X - textArea.TextView.DrawingPosition.X, mousepos.Y - textArea.TextView.DrawingPosition.Y);
int offset = textArea.Document.PositionToOffset(realmousepos);
if (!textArea.SelectionManager.HasSomethingSelected ||
!textArea.SelectionManager.IsSelected(offset))
{
textArea.SelectionManager.ClearSelection();
if (mousepos.Y > 0 && mousepos.Y < textArea.TextView.DrawingPosition.Height) {
- Point pos = new Point();
+ TextLocation pos = new TextLocation();
pos.Y = Math.Min(textArea.Document.TotalNumberOfLines - 1, realmousepos.Y);
pos.X = realmousepos.X;
textArea.Caret.Position = pos;
@@ -469,8 +471,8 @@ namespace ICSharpCode.TextEditor
return offset;
}
- Point minSelection = nilPoint;
- Point maxSelection = nilPoint;
+ TextLocation minSelection = TextLocation.Empty;
+ TextLocation maxSelection = TextLocation.Empty;
void OnDoubleClick(object sender, System.EventArgs e)
{
diff --git a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/TextAreaUpdate.cs b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/TextAreaUpdate.cs
index f2011fc1ba..fd8919572f 100644
--- a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/TextAreaUpdate.cs
+++ b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/TextAreaUpdate.cs
@@ -27,7 +27,7 @@ namespace ICSharpCode.TextEditor
///
public class TextAreaUpdate
{
- Point position;
+ TextLocation position;
TextAreaUpdateType type;
public TextAreaUpdateType TextAreaUpdateType {
@@ -36,7 +36,7 @@ namespace ICSharpCode.TextEditor
}
}
- public Point Position {
+ public TextLocation Position {
get {
return position;
}
@@ -44,7 +44,7 @@ namespace ICSharpCode.TextEditor
///
/// Creates a new instance of
- ///
+ ///
public TextAreaUpdate(TextAreaUpdateType type)
{
this.type = type;
@@ -52,8 +52,8 @@ namespace ICSharpCode.TextEditor
///
/// Creates a new instance of
- ///
- public TextAreaUpdate(TextAreaUpdateType type, Point position)
+ ///
+ public TextAreaUpdate(TextAreaUpdateType type, TextLocation position)
{
this.type = type;
this.position = position;
@@ -61,20 +61,20 @@ namespace ICSharpCode.TextEditor
///
/// Creates a new instance of
- ///
+ ///
public TextAreaUpdate(TextAreaUpdateType type, int startLine, int endLine)
{
this.type = type;
- this.position = new Point(startLine, endLine);
+ this.position = new TextLocation(startLine, endLine);
}
///
/// Creates a new instance of
- ///
+ ///
public TextAreaUpdate(TextAreaUpdateType type, int singleLine)
{
this.type = type;
- this.position = new Point(0, singleLine);
+ this.position = new TextLocation(0, singleLine);
}
public override string ToString()
diff --git a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/TextView.cs b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/TextView.cs
index 28d3ea84b1..e5548039f9 100644
--- a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/TextView.cs
+++ b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/TextView.cs
@@ -726,12 +726,12 @@ namespace ICSharpCode.TextEditor
///
/// returns line/column for a visual point position
///
- public Point GetLogicalPosition(int xPos, int yPos)
+ public TextLocation GetLogicalPosition(int xPos, int yPos)
{
xPos += (int)(textArea.VirtualTop.X * WideSpaceWidth);
int clickedVisualLine = Math.Max(0, (yPos + this.textArea.VirtualTop.Y) / fontHeight);
int logicalLine = Document.GetFirstLogicalLine(clickedVisualLine);
- Point pos = GetLogicalColumn(logicalLine, xPos);
+ TextLocation pos = GetLogicalColumn(logicalLine, xPos);
return pos;
}
@@ -744,12 +744,12 @@ namespace ICSharpCode.TextEditor
return Document.GetFirstLogicalLine(clickedVisualLine);
}
- public Point GetLogicalColumn(int firstLogicalLine, int xPos)
+ public TextLocation GetLogicalColumn(int firstLogicalLine, int xPos)
{
float spaceWidth = WideSpaceWidth;
LineSegment line = firstLogicalLine < Document.TotalNumberOfLines ? Document.GetLineSegment(firstLogicalLine) : null;
if (line == null) {
- return new Point((int)(xPos / spaceWidth), firstLogicalLine);
+ return new TextLocation((int)(xPos / spaceWidth), firstLogicalLine);
}
int lineNumber = firstLogicalLine;
@@ -771,7 +771,7 @@ namespace ICSharpCode.TextEditor
paintPos += folding.FoldText.Length * spaceWidth;
// special case when xPos is inside the fold marker
if (xPos <= paintPos - (paintPos - oldPaintPos) / 2) {
- return new Point(logicalColumn, lineNumber);
+ return new TextLocation(logicalColumn, lineNumber);
}
logicalColumn = folding.EndColumn;
if (lineNumber != folding.EndLine) {
@@ -801,7 +801,7 @@ namespace ICSharpCode.TextEditor
// when the paint position is reached, give it back otherwise advance to the next char
if (xPos <= paintPos - (paintPos - oldPaintPos) / 2) {
- return new Point(logicalColumn, lineNumber);
+ return new TextLocation(logicalColumn, lineNumber);
}
++logicalColumn;
diff --git a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/ToolTipRequestEventArgs.cs b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/ToolTipRequestEventArgs.cs
index 3a5df4bcc9..dc2207b05b 100644
--- a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/ToolTipRequestEventArgs.cs
+++ b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/ToolTipRequestEventArgs.cs
@@ -15,7 +15,7 @@ namespace ICSharpCode.TextEditor
public class ToolTipRequestEventArgs
{
Point mousePosition;
- Point logicalPosition;
+ TextLocation logicalPosition;
bool inDocument;
public Point MousePosition {
@@ -24,7 +24,7 @@ namespace ICSharpCode.TextEditor
}
}
- public Point LogicalPosition {
+ public TextLocation LogicalPosition {
get {
return logicalPosition;
}
@@ -52,7 +52,7 @@ namespace ICSharpCode.TextEditor
toolTipText = text;
}
- public ToolTipRequestEventArgs(Point mousePosition, Point logicalPosition, bool inDocument)
+ public ToolTipRequestEventArgs(Point mousePosition, TextLocation logicalPosition, bool inDocument)
{
this.mousePosition = mousePosition;
this.logicalPosition = logicalPosition;
diff --git a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Undo/UndoStack.cs b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Undo/UndoStack.cs
index b58b12ee85..d6daf5bbec 100644
--- a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Undo/UndoStack.cs
+++ b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Undo/UndoStack.cs
@@ -194,10 +194,10 @@ namespace ICSharpCode.TextEditor.Undo
class UndoableSetCaretPosition : IUndoableOperation
{
UndoStack stack;
- Point pos;
- Point redoPos;
+ TextLocation pos;
+ TextLocation redoPos;
- public UndoableSetCaretPosition(UndoStack stack, Point pos)
+ public UndoableSetCaretPosition(UndoStack stack, TextLocation pos)
{
this.stack = stack;
this.pos = pos;
diff --git a/src/Libraries/NRefactory/Project/Src/Lexer/VBNet/Lexer.cs b/src/Libraries/NRefactory/Project/Src/Lexer/VBNet/Lexer.cs
index 770bc55f15..a4dce1f6e0 100644
--- a/src/Libraries/NRefactory/Project/Src/Lexer/VBNet/Lexer.cs
+++ b/src/Libraries/NRefactory/Project/Src/Lexer/VBNet/Lexer.cs
@@ -83,6 +83,7 @@ namespace ICSharpCode.NRefactory.Parser.VB
}
ch = (char)ReaderRead();
+ bool oldLineEnd = lineEnd;
lineEnd = false;
while (Char.IsWhiteSpace(ch)) {
if (HandleLineEnd(ch)) {
@@ -99,7 +100,7 @@ namespace ICSharpCode.NRefactory.Parser.VB
if (!lineEnd) {
errors.Error(Line, Col, String.Format("Return expected"));
}
- lineEnd = false;
+ lineEnd = oldLineEnd;
continue;
}
diff --git a/src/Libraries/NRefactory/Project/Src/Location.cs b/src/Libraries/NRefactory/Project/Src/Location.cs
index 2c23a51b21..4c4a5dc529 100644
--- a/src/Libraries/NRefactory/Project/Src/Location.cs
+++ b/src/Libraries/NRefactory/Project/Src/Location.cs
@@ -11,6 +11,7 @@ namespace ICSharpCode.NRefactory
{
///
/// A line/column position.
+ /// NRefactory lines/columns are counting from one.
///
public struct Location : IComparable, IEquatable
{
diff --git a/src/Libraries/NRefactory/Test/Lexer/VBNet/CustomLexerTests.cs b/src/Libraries/NRefactory/Test/Lexer/VBNet/CustomLexerTests.cs
new file mode 100644
index 0000000000..b1a14e5fdd
--- /dev/null
+++ b/src/Libraries/NRefactory/Test/Lexer/VBNet/CustomLexerTests.cs
@@ -0,0 +1,46 @@
+//
+//
+//
+//
+// $Revision: 2658$
+//
+
+using System;
+using System.IO;
+using NUnit.Framework;
+using NUnit.Framework.SyntaxHelpers;
+using ICSharpCode.NRefactory.Parser;
+using ICSharpCode.NRefactory.Parser.VB;
+namespace ICSharpCode.NRefactory.Tests.Lexer.VB
+{
+ [TestFixture]
+ public class CustomLexerTests
+ {
+ ILexer GenerateLexer(StringReader sr)
+ {
+ return ParserFactory.CreateLexer(SupportedLanguage.VBNet, sr);
+ }
+
+ [Test]
+ public void TestSingleEOLForMulitpleLines()
+ {
+ ILexer lexer = GenerateLexer(new StringReader("Stop\n\n\nEnd"));
+ Assert.That(lexer.NextToken().kind, Is.EqualTo(Tokens.Stop));
+ Assert.That(lexer.NextToken().kind, Is.EqualTo(Tokens.EOL));
+ Assert.That(lexer.NextToken().kind, Is.EqualTo(Tokens.End));
+ Assert.That(lexer.NextToken().kind, Is.EqualTo(Tokens.EOL));
+ Assert.That(lexer.NextToken().kind, Is.EqualTo(Tokens.EOF));
+ }
+
+ [Test]
+ public void TestSingleEOLForMulitpleLinesWithContinuation()
+ {
+ ILexer lexer = GenerateLexer(new StringReader("Stop\n _\n\nEnd"));
+ Assert.That(lexer.NextToken().kind, Is.EqualTo(Tokens.Stop));
+ Assert.That(lexer.NextToken().kind, Is.EqualTo(Tokens.EOL));
+ Assert.That(lexer.NextToken().kind, Is.EqualTo(Tokens.End));
+ Assert.That(lexer.NextToken().kind, Is.EqualTo(Tokens.EOL));
+ Assert.That(lexer.NextToken().kind, Is.EqualTo(Tokens.EOF));
+ }
+ }
+}
diff --git a/src/Libraries/NRefactory/Test/NRefactoryTests.csproj b/src/Libraries/NRefactory/Test/NRefactoryTests.csproj
index c77500988b..ea1bed0848 100644
--- a/src/Libraries/NRefactory/Test/NRefactoryTests.csproj
+++ b/src/Libraries/NRefactory/Test/NRefactoryTests.csproj
@@ -46,6 +46,7 @@
+
diff --git a/src/Main/Base/Project/Src/Gui/AbstractViewContentHandlingLoadErrors.cs b/src/Main/Base/Project/Src/Gui/AbstractViewContentHandlingLoadErrors.cs
index ca4a64d89c..1656d00729 100644
--- a/src/Main/Base/Project/Src/Gui/AbstractViewContentHandlingLoadErrors.cs
+++ b/src/Main/Base/Project/Src/Gui/AbstractViewContentHandlingLoadErrors.cs
@@ -91,6 +91,7 @@ namespace ICSharpCode.SharpDevelop.Gui
if (errorTextBox == null) {
errorTextBox = new TextBox();
errorTextBox.Multiline = true;
+ errorTextBox.ScrollBars = ScrollBars.Both;
errorTextBox.ReadOnly = true;
errorTextBox.BackColor = SystemColors.Window;
errorTextBox.Dock = DockStyle.Fill;
diff --git a/src/Main/Base/Project/Src/Gui/Pads/SearchResultPad/Nodes/SearchResultNode.cs b/src/Main/Base/Project/Src/Gui/Pads/SearchResultPad/Nodes/SearchResultNode.cs
index fa49613a55..bed9daa921 100644
--- a/src/Main/Base/Project/Src/Gui/Pads/SearchResultPad/Nodes/SearchResultNode.cs
+++ b/src/Main/Base/Project/Src/Gui/Pads/SearchResultPad/Nodes/SearchResultNode.cs
@@ -25,7 +25,7 @@ namespace SearchAndReplace
{
SearchResultMatch result;
- Point startPosition;
+ TextLocation startPosition;
string positionText;
string displayText;
string specialText;
@@ -58,7 +58,7 @@ namespace SearchAndReplace
drawDefault = false;
this.result = result;
startPosition = result.GetStartPosition(document);
- Point endPosition = result.GetEndPosition(document);
+ TextLocation endPosition = result.GetEndPosition(document);
positionText = "(" + (startPosition.Y + 1) + ", " + (startPosition.X + 1) + ") ";
LineSegment line = document.GetLineSegment(startPosition.Y);
diff --git a/src/Main/Base/Project/Src/Gui/Pads/SearchResultPad/SearchResultMatch.cs b/src/Main/Base/Project/Src/Gui/Pads/SearchResultPad/SearchResultMatch.cs
index 045c0c2cfb..44916f7872 100644
--- a/src/Main/Base/Project/Src/Gui/Pads/SearchResultPad/SearchResultMatch.cs
+++ b/src/Main/Base/Project/Src/Gui/Pads/SearchResultPad/SearchResultMatch.cs
@@ -7,6 +7,7 @@
using System;
using System.Drawing;
+using ICSharpCode.TextEditor;
using ICSharpCode.TextEditor.Document;
namespace SearchAndReplace
@@ -61,12 +62,12 @@ namespace SearchAndReplace
this.length = length;
}
- public virtual Point GetStartPosition(IDocument document)
+ public virtual TextLocation GetStartPosition(IDocument document)
{
return document.OffsetToPosition(Offset);
}
- public virtual Point GetEndPosition(IDocument document)
+ public virtual TextLocation GetEndPosition(IDocument document)
{
return document.OffsetToPosition(Offset + Length);
}
@@ -90,14 +91,14 @@ namespace SearchAndReplace
public class SimpleSearchResultMatch : SearchResultMatch
{
- Point position;
+ TextLocation position;
- public override Point GetStartPosition(IDocument doc)
+ public override TextLocation GetStartPosition(IDocument doc)
{
return position;
}
- public override Point GetEndPosition(IDocument doc)
+ public override TextLocation GetEndPosition(IDocument doc)
{
return position;
}
@@ -110,7 +111,7 @@ namespace SearchAndReplace
}
}
- public SimpleSearchResultMatch(string displayText, Point position) : base(0, 0)
+ public SimpleSearchResultMatch(string displayText, TextLocation position) : base(0, 0)
{
this.position = position;
this.displayText = displayText;
diff --git a/src/Main/Base/Project/Src/Project/Converter/LanguageConverter.cs b/src/Main/Base/Project/Src/Project/Converter/LanguageConverter.cs
index 45f04ec827..bea2f5ae6a 100644
--- a/src/Main/Base/Project/Src/Project/Converter/LanguageConverter.cs
+++ b/src/Main/Base/Project/Src/Project/Converter/LanguageConverter.cs
@@ -60,7 +60,7 @@ namespace ICSharpCode.SharpDevelop.Project.Converter
if (item.ItemType == ItemType.Compile) {
return 50;
} else if (ItemType.DefaultFileItems.Contains(item.ItemType)) {
- return 10;
+ return 4;
} else {
return 1;
}
@@ -137,7 +137,7 @@ namespace ICSharpCode.SharpDevelop.Project.Converter
totalWork += GetRequiredWork(item);
}
- monitor.BeginTask("Converting", sourceItems.Count, true);
+ monitor.BeginTask("Converting", totalWork, true);
int workDone = 0;
foreach (ProjectItem item in sourceItems) {
FileProjectItem fileItem = item as FileProjectItem;
@@ -273,5 +273,16 @@ namespace ICSharpCode.SharpDevelop.Project.Converter
base.ConvertFile(sourceItem, targetItem);
}
}
+
+ protected override void CopyProperties(IProject sourceProject, IProject targetProject)
+ {
+ base.CopyProperties(sourceProject, targetProject);
+
+ // WarningsAsErrors/NoWarn refers to warning numbers that are completely different for
+ // the two compilers.
+ MSBuildBasedProject p = (MSBuildBasedProject)targetProject;
+ p.SetProperty("WarningsAsErrors", null);
+ p.SetProperty("NoWarn", null);
+ }
}
}
diff --git a/src/Main/Base/Project/Src/Project/MSBuildInternals.cs b/src/Main/Base/Project/Src/Project/MSBuildInternals.cs
index e92512fafb..4d4d0a3527 100644
--- a/src/Main/Base/Project/Src/Project/MSBuildInternals.cs
+++ b/src/Main/Base/Project/Src/Project/MSBuildInternals.cs
@@ -353,7 +353,12 @@ namespace ICSharpCode.SharpDevelop.Project
}
}
}
- var referenceDict = references.ToDictionary(item => item.Include);
+ var referenceDict = new Dictionary();
+ foreach (ReferenceProjectItem item in references) {
+ // references could be duplicate, so we cannot use referenceDict.Add or reference.ToDictionary
+ referenceDict[item.Include] = item;
+ }
+
#if DEBUG
//engine.RegisterLogger(new MSBuild.ConsoleLogger(Microsoft.Build.Framework.LoggerVerbosity.Detailed));
diff --git a/src/Main/Base/Project/Src/Services/Debugger/DebuggerGridControl.cs b/src/Main/Base/Project/Src/Services/Debugger/DebuggerGridControl.cs
index eed61cdf50..34cfe139f0 100644
--- a/src/Main/Base/Project/Src/Services/Debugger/DebuggerGridControl.cs
+++ b/src/Main/Base/Project/Src/Services/Debugger/DebuggerGridControl.cs
@@ -11,6 +11,7 @@ using System.Drawing;
using System.Windows.Forms;
using ICSharpCode.SharpDevelop.Widgets.TreeGrid;
+using ICSharpCode.TextEditor;
namespace ICSharpCode.SharpDevelop.Debugging
{
@@ -71,7 +72,7 @@ namespace ICSharpCode.SharpDevelop.Debugging
DynamicTreeRow.ChildForm frm;
- public void ShowForm(ICSharpCode.TextEditor.TextArea textArea, Point logicTextPos)
+ public void ShowForm(ICSharpCode.TextEditor.TextArea textArea, TextLocation logicTextPos)
{
frm = new DynamicTreeRow.ChildForm();
frm.AllowResizing = false;
diff --git a/src/Main/Base/Project/Src/Services/Debugger/DebuggerService.cs b/src/Main/Base/Project/Src/Services/Debugger/DebuggerService.cs
index 179396e478..71c2b85013 100644
--- a/src/Main/Base/Project/Src/Services/Debugger/DebuggerService.cs
+++ b/src/Main/Base/Project/Src/Services/Debugger/DebuggerService.cs
@@ -280,7 +280,7 @@ namespace ICSharpCode.SharpDevelop.Debugging
{
if (mouseButtons != MouseButtons.Left) return;
Rectangle viewRect = iconBar.TextArea.TextView.DrawingPosition;
- Point logicPos = iconBar.TextArea.TextView.GetLogicalPosition(0, mousepos.Y - viewRect.Top);
+ TextLocation logicPos = iconBar.TextArea.TextView.GetLogicalPosition(0, mousepos.Y - viewRect.Top);
if (logicPos.Y >= 0 && logicPos.Y < iconBar.TextArea.Document.TotalNumberOfLines) {
ToggleBreakpointAt(iconBar.TextArea.Document, iconBar.TextArea.MotherTextEditorControl.FileName, logicPos.Y);
@@ -372,7 +372,7 @@ namespace ICSharpCode.SharpDevelop.Debugging
///
internal static ToolTipInfo GetToolTipInfo(TextArea textArea, ToolTipRequestEventArgs e)
{
- Point logicPos = e.LogicalPosition;
+ TextLocation logicPos = e.LogicalPosition;
IDocument doc = textArea.Document;
IExpressionFinder expressionFinder = ParserService.GetExpressionFinder(textArea.MotherTextEditorControl.FileName);
if (expressionFinder == null)
diff --git a/src/Main/Base/Project/Src/Services/RefactoringService/FindReferencesAndRenameHelper.cs b/src/Main/Base/Project/Src/Services/RefactoringService/FindReferencesAndRenameHelper.cs
index 97c4ae0cc3..eb0de5338d 100644
--- a/src/Main/Base/Project/Src/Services/RefactoringService/FindReferencesAndRenameHelper.cs
+++ b/src/Main/Base/Project/Src/Services/RefactoringService/FindReferencesAndRenameHelper.cs
@@ -70,7 +70,7 @@ namespace ICSharpCode.SharpDevelop.Refactoring
if (fileName == null)
return;
ProvidedDocumentInformation documentInformation = FindReferencesAndRenameHelper.GetDocumentInformation(fileName);
- int offset = documentInformation.CreateDocument().PositionToOffset(new Point(region.BeginColumn - 1, region.BeginLine - 1));
+ int offset = documentInformation.CreateDocument().PositionToOffset(new TextLocation(region.BeginColumn - 1, region.BeginLine - 1));
string text = documentInformation.TextBuffer.GetText(offset, Math.Min(name.Length + 30, documentInformation.TextBuffer.Length - offset - 1));
int offsetChange = -1;
do {
diff --git a/src/Main/Base/Project/Src/Services/RefactoringService/TextEditorDocument.cs b/src/Main/Base/Project/Src/Services/RefactoringService/TextEditorDocument.cs
index d9ba075944..bedb8b0014 100644
--- a/src/Main/Base/Project/Src/Services/RefactoringService/TextEditorDocument.cs
+++ b/src/Main/Base/Project/Src/Services/RefactoringService/TextEditorDocument.cs
@@ -72,7 +72,7 @@ namespace ICSharpCode.SharpDevelop.Refactoring
public int PositionToOffset(int line, int column)
{
- return doc.PositionToOffset(new Point(column - 1, line - 1));
+ return doc.PositionToOffset(new TextLocation(column - 1, line - 1));
}
public void Insert(int offset, string text)
diff --git a/src/Main/Base/Project/Src/TextEditor/Commands/ClassBookmarkMenuBuilder.cs b/src/Main/Base/Project/Src/TextEditor/Commands/ClassBookmarkMenuBuilder.cs
index 0e37f30d07..24289b7a38 100644
--- a/src/Main/Base/Project/Src/TextEditor/Commands/ClassBookmarkMenuBuilder.cs
+++ b/src/Main/Base/Project/Src/TextEditor/Commands/ClassBookmarkMenuBuilder.cs
@@ -23,6 +23,7 @@ using ICSharpCode.SharpDevelop.Project;
using ICSharpCode.SharpDevelop.Refactoring;
using ICSharpCode.TextEditor.Document;
using SearchAndReplace;
+using ICSharpCode.TextEditor;
namespace ICSharpCode.SharpDevelop.DefaultEditor.Commands
{
@@ -311,7 +312,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Commands
if (derivedClass.CompilationUnit == null) continue;
if (derivedClass.CompilationUnit.FileName == null) continue;
- SearchResultMatch res = new SimpleSearchResultMatch(derivedClass.FullyQualifiedName, new Point(derivedClass.Region.BeginColumn - 1, derivedClass.Region.BeginLine - 1));
+ SearchResultMatch res = new SimpleSearchResultMatch(derivedClass.FullyQualifiedName, new TextLocation(derivedClass.Region.BeginColumn - 1, derivedClass.Region.BeginLine - 1));
res.ProvidedDocumentInformation = FindReferencesAndRenameHelper.GetDocumentInformation(derivedClass.CompilationUnit.FileName);
results.Add(res);
}
diff --git a/src/Main/Base/Project/Src/TextEditor/Commands/ClassMemberMenuBuilder.cs b/src/Main/Base/Project/Src/TextEditor/Commands/ClassMemberMenuBuilder.cs
index b4694cc5fe..dd08af783b 100644
--- a/src/Main/Base/Project/Src/TextEditor/Commands/ClassMemberMenuBuilder.cs
+++ b/src/Main/Base/Project/Src/TextEditor/Commands/ClassMemberMenuBuilder.cs
@@ -183,7 +183,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Commands
if (derivedClass.CompilationUnit.FileName == null) continue;
IMember m = MemberLookupHelper.FindSimilarMember(derivedClass, member);
if (m != null && !m.Region.IsEmpty) {
- SearchResultMatch res = new SimpleSearchResultMatch(m.FullyQualifiedName, new Point(m.Region.BeginColumn - 1, m.Region.BeginLine - 1));
+ SearchResultMatch res = new SimpleSearchResultMatch(m.FullyQualifiedName, new TextLocation(m.Region.BeginColumn - 1, m.Region.BeginLine - 1));
res.ProvidedDocumentInformation = FindReferencesAndRenameHelper.GetDocumentInformation(derivedClass.CompilationUnit.FileName);
results.Add(res);
}
diff --git a/src/Main/Base/Project/Src/TextEditor/Commands/CodeGenerators/CodeGenerationForm.cs b/src/Main/Base/Project/Src/TextEditor/Commands/CodeGenerators/CodeGenerationForm.cs
index c8c452607f..4e091d4240 100644
--- a/src/Main/Base/Project/Src/TextEditor/Commands/CodeGenerators/CodeGenerationForm.cs
+++ b/src/Main/Base/Project/Src/TextEditor/Commands/CodeGenerators/CodeGenerationForm.cs
@@ -48,7 +48,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Commands
cancelButton.Text = ResourceService.GetString("Global.CancelButtonText");
// selectionListBox.Sorted = true;
- Point caretPos = textEditorControl.ActiveTextAreaControl.Caret.Position;
+ TextLocation caretPos = textEditorControl.ActiveTextAreaControl.Caret.Position;
TextArea textArea = textEditorControl.ActiveTextAreaControl.TextArea;
TextView textView = textArea.TextView;
Point visualPos;
diff --git a/src/Main/Base/Project/Src/TextEditor/Commands/ToolCommands.cs b/src/Main/Base/Project/Src/TextEditor/Commands/ToolCommands.cs
index b2bf24bb3d..37eaf7cbb3 100644
--- a/src/Main/Base/Project/Src/TextEditor/Commands/ToolCommands.cs
+++ b/src/Main/Base/Project/Src/TextEditor/Commands/ToolCommands.cs
@@ -57,7 +57,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Commands
textarea.Document.Insert(textarea.ActiveTextAreaControl.Caret.Offset, colorstr);
int lineNumber = textarea.Document.GetLineNumberForOffset(textarea.ActiveTextAreaControl.Caret.Offset);
textarea.ActiveTextAreaControl.Caret.Column += colorstr.Length;
- textarea.Document.RequestUpdate(new TextAreaUpdate(TextAreaUpdateType.SingleLine, new Point(0, lineNumber)));
+ textarea.Document.RequestUpdate(new TextAreaUpdate(TextAreaUpdateType.SingleLine, new TextLocation(0, lineNumber)));
textarea.Document.CommitUpdate();
}
}
diff --git a/src/Main/Base/Project/Src/TextEditor/Gui/Editor/CompletionWindow/CodeCompletionData.cs b/src/Main/Base/Project/Src/TextEditor/Gui/Editor/CompletionWindow/CodeCompletionData.cs
index c16872297f..00b330a1eb 100644
--- a/src/Main/Base/Project/Src/TextEditor/Gui/Editor/CompletionWindow/CodeCompletionData.cs
+++ b/src/Main/Base/Project/Src/TextEditor/Gui/Editor/CompletionWindow/CodeCompletionData.cs
@@ -195,8 +195,8 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
}
if (c != null && text.Length > c.Name.Length) {
textArea.InsertString(text.Substring(0, c.Name.Length + 1));
- Point start = textArea.Caret.Position;
- Point end;
+ TextLocation start = textArea.Caret.Position;
+ TextLocation end;
int pos = text.IndexOf(',');
if (pos < 0) {
textArea.InsertString(text.Substring(c.Name.Length + 1));
diff --git a/src/Main/Base/Project/Src/TextEditor/Gui/Editor/QuickClassBrowserPanel.cs b/src/Main/Base/Project/Src/TextEditor/Gui/Editor/QuickClassBrowserPanel.cs
index e7bb7585a6..afc9467df6 100644
--- a/src/Main/Base/Project/Src/TextEditor/Gui/Editor/QuickClassBrowserPanel.cs
+++ b/src/Main/Base/Project/Src/TextEditor/Gui/Editor/QuickClassBrowserPanel.cs
@@ -14,6 +14,7 @@ using System.Windows.Forms;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Dom;
+using ICSharpCode.TextEditor;
namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
{
@@ -475,7 +476,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
if (autoselect) {
ComboBoxItem item = (ComboBoxItem)comboBox.Items[comboBox.SelectedIndex];
if (item.IsInCurrentPart) {
- textAreaControl.ActiveTextAreaControl.Caret.Position = new Point(item.Column, item.Line);
+ textAreaControl.ActiveTextAreaControl.Caret.Position = new TextLocation(item.Column, item.Line);
textAreaControl.ActiveTextAreaControl.TextArea.Focus();
} else {
IMember m = item.Item as IMember;
diff --git a/src/Main/Base/Test/CodeConverterTests.cs b/src/Main/Base/Test/CodeConverterTests.cs
index 64f7ea5a7b..fc4785cca2 100644
--- a/src/Main/Base/Test/CodeConverterTests.cs
+++ b/src/Main/Base/Test/CodeConverterTests.cs
@@ -41,7 +41,9 @@ namespace ICSharpCode.SharpDevelop.Tests
{
DefaultProjectContent pc = new DefaultProjectContent();
pc.ReferencedContents.Add(projectContentRegistry.Mscorlib);
+ pc.ReferencedContents.Add(projectContentRegistry.GetProjectContentForReference("System.Windows.Forms", "System.Windows.Forms"));
if (sourceLanguage == SupportedLanguage.VBNet) {
+ pc.ReferencedContents.Add(projectContentRegistry.GetProjectContentForReference("Microsoft.VisualBasic", "Microsoft.VisualBasic"));
pc.DefaultImports = new DefaultUsing(pc);
pc.DefaultImports.Usings.Add("System");
pc.DefaultImports.Usings.Add("Microsoft.VisualBasic");
@@ -239,6 +241,35 @@ namespace ICSharpCode.SharpDevelop.Tests
" End Function\n" +
"End Class");
}
+
+ [Test]
+ public void HandlesClassEvent()
+ {
+ TestProgramVB2CS("Imports System.Windows.Forms\n" +
+ "Class Test\n" +
+ " Inherits Form\n" +
+ " Sub Me_Load(sender As Object, e As EventArgs) Handles Me.Load\n" +
+ " End Sub\n" +
+ " Sub Base_Paint(sender As Object, e As PaintEventArgs) Handles MyBase.Paint\n" +
+ " End Sub\n" +
+ "End Class",
+ DefaultUsingsCSharp +
+ "using System.Windows.Forms;\n" +
+ "class Test : Form\n" +
+ "{\n" +
+ " public void Me_Load(object sender, EventArgs e)\n" +
+ " {\n" +
+ " }\n" +
+ " public void Base_Paint(object sender, PaintEventArgs e)\n" +
+ " {\n" +
+ " }\n" +
+ " public Test()\n" +
+ " {\n" +
+ " Paint += Base_Paint;\n" +
+ " Load += Me_Load;\n" +
+ " }\n" +
+ "}");
+ }
#endregion
#region ReferenceEqualityAndValueEquality
@@ -296,6 +327,20 @@ namespace ICSharpCode.SharpDevelop.Tests
TestStatementsVB2CS("Dim i as Integer = appdomain.getcurrentthreadid",
"int i = AppDomain.GetCurrentThreadId();");
}
+
+ [Test]
+ public void FixVBCasingAndAddMethodCallParenthesis2()
+ {
+ TestStatementsVB2CS("console.writeline(appdomain.getcurrentthreadid)",
+ "Console.WriteLine(AppDomain.GetCurrentThreadId());");
+ }
+
+ [Test]
+ public void FixVBCasingAndAddMethodCallParenthesis3()
+ {
+ TestStatementsVB2CS("console.writeline(T)",
+ "Console.WriteLine(T());");
+ }
#endregion
#region Redim
@@ -336,6 +381,31 @@ namespace ICSharpCode.SharpDevelop.Tests
}
#endregion
+ [Test]
+ public void AutomaticInitializeComponentCall()
+ {
+ TestProgramVB2CS("Imports System.Windows.Forms\n" +
+ " _\n" +
+ "Class Test\n" +
+ " Inherits Form\n" +
+ " Private Sub InitializeComponent()\n" +
+ " End Sub\n" +
+ "End Class",
+ DefaultUsingsCSharp +
+ "using System.Windows.Forms;\n" +
+ "[Microsoft.VisualBasic.CompilerServices.DesignerGenerated()]\n" +
+ "class Test : Form\n" +
+ "{\n" +
+ " private void InitializeComponent()\n" +
+ " {\n" +
+ " }\n" +
+ " public Test()\n" +
+ " {\n" +
+ " InitializeComponent();\n" +
+ " }\n" +
+ "}");
+ }
+
[Test]
public void IndexerExpression()
{
@@ -375,6 +445,36 @@ namespace ICSharpCode.SharpDevelop.Tests
"Dim c As Integer = (a \\ a) * a\n");
}
+ [Test]
+ public void ForeachOnExistingVariable()
+ {
+ TestStatementsVB2CS("Dim a As String\n" +
+ "For Each a In b\n" +
+ " Console.WriteLine(a)\n" +
+ "Next",
+ "string a = null;\n" +
+ "foreach (string a_loopVariable in b) {\n" +
+ " a = a_loopVariable;\n" +
+ " Console.WriteLine(a);\n" +
+ "}");
+ }
+
+ [Test]
+ public void ConvertDefaultPropertyToIndexer()
+ {
+ TestStatementsVB2CS("Dim c As Collection\n" +
+ "a = c.Item(2)",
+ "Collection c = null;\n" +
+ "a = c[2];");
+ }
+
+ [Test]
+ public void RemoveImportDuplicatedByProjectLevelImport()
+ {
+ TestProgramVB2CS("Imports System\nClass Test\nEnd Class",
+ DefaultUsingsCSharp + "class Test\n{\n}");
+ }
+
#region Casting
[Test]
public void CastToEnum()
@@ -508,7 +608,6 @@ namespace ICSharpCode.SharpDevelop.Tests
}
const string VBIEnumeratorOfStringImplementation =
- "Imports System\n" +
"Imports System.Collections.Generic\n" +
"Class Test\n" +
" Implements IEnumerator(Of String)\n" +
@@ -524,14 +623,14 @@ namespace ICSharpCode.SharpDevelop.Tests
" End Function\n" +
" Public Sub Reset() Implements System.Collections.IEnumerator.Reset\n" +
" End Sub\n" +
- " Public Sub Dispose() Implements IDisposable.Dispose\n" +
+ " Public Sub Dispose() Implements System.IDisposable.Dispose\n" +
" End Sub\n" +
"End Class";
[Test]
public void InterfaceImplementation3()
{
- TestProgramCS2VB("using System; using System.Collections.Generic;\n" +
+ TestProgramCS2VB("using System.Collections.Generic;\n" +
"class Test : IEnumerator {\n" +
" public string Current { get { } }\n" +
" object System.Collections.IEnumerator.Current { get { } }\n" +
@@ -547,7 +646,6 @@ namespace ICSharpCode.SharpDevelop.Tests
{
TestProgramVB2CS(VBIEnumeratorOfStringImplementation,
DefaultUsingsCSharp +
- "using System;\n" +
"using System.Collections.Generic;\n" +
"class Test : IEnumerator\n" +
"{\n" +
diff --git a/src/Main/Base/Test/NRefactoryResolverTests.cs b/src/Main/Base/Test/NRefactoryResolverTests.cs
index 2d559e7b13..20bcd146c0 100644
--- a/src/Main/Base/Test/NRefactoryResolverTests.cs
+++ b/src/Main/Base/Test/NRefactoryResolverTests.cs
@@ -61,6 +61,7 @@ namespace ICSharpCode.SharpDevelop.Tests
};
pc.ReferencedContents.Add(projectContentRegistry.Mscorlib);
pc.ReferencedContents.Add(projectContentRegistry.GetProjectContentForReference("System.Windows.Forms", "System.Windows.Forms"));
+ pc.ReferencedContents.Add(projectContentRegistry.GetProjectContentForReference("Microsoft.VisualBasic", "Microsoft.VisualBasic"));
pc.Language = LanguageProperties.VBNet;
lastPC = pc;
NRefactoryASTConvertVisitor visitor = new NRefactoryASTConvertVisitor(pc);
@@ -678,6 +679,50 @@ class C : B {
Assert.IsTrue(Refactoring.RefactoringService.IsReferenceToMember(bCtor, mrr));
Assert.IsFalse(Refactoring.RefactoringService.IsReferenceToMember(aCtor, mrr));
}
+
+ [Test]
+ public void VBIndexerCall()
+ {
+ string program = @"Imports Microsoft.VisualBasic
+Class A
+ Sub Method()
+ Dim c As Collection
+
+ End Sub
+End Class
+";
+ MemberResolveResult result = ResolveVB(program, "c(3)", 5);
+ Assert.AreEqual("Microsoft.VisualBasic.Collection.Item", result.ResolvedMember.FullyQualifiedName);
+ IProperty p = (IProperty)result.ResolvedMember;
+ Assert.IsTrue(p.IsIndexer);
+
+ result = ResolveVB(program, "c.Item(3)", 5);
+ Assert.AreEqual("Microsoft.VisualBasic.Collection.Item", result.ResolvedMember.FullyQualifiedName);
+ p = (IProperty)result.ResolvedMember;
+ Assert.IsTrue(p.IsIndexer);
+ }
+
+ [Test]
+ public void VBPInvokeCall()
+ {
+ string program = @"Imports Microsoft.VisualBasic
+Class A
+ Declare Function GetRectangleArea Lib ""..\..\PinvokeLib.dll"" (ByRef rectangle As MyRectangle) As Integer
+ Sub Method(r1 As MyRectangle)
+
+ End Sub
+End Class
+";
+ MemberResolveResult result = ResolveVB(program, "GetRectangleArea(r1)", 5);
+ Assert.AreEqual("A.GetRectangleArea", result.ResolvedMember.FullyQualifiedName);
+
+ IMethod m = (IMethod)result.ResolvedMember;
+ Assert.IsTrue(m.IsStatic);
+ Assert.AreEqual("System.Int32", m.ReturnType.FullyQualifiedName);
+ Assert.AreEqual(1, m.Parameters.Count);
+ Assert.AreEqual("rectangle", m.Parameters[0].Name);
+ Assert.IsTrue(m.Parameters[0].IsRef);
+ }
#endregion
#region Import namespace tests
@@ -1049,6 +1094,25 @@ class B {
}
Assert.AreEqual(1, count);
}
+
+ [Test]
+ public void ShadowingTest()
+ {
+ string program = @"Imports System.Windows.Forms
+Class F
+ Inherits Form
+ Sub M
+
+ End Sub
+ Friend WithEvents Shadows cancelButton As Button
+End Class
+";
+ MemberResolveResult result = ResolveVB(program, "CancelButton", 5);
+ Assert.AreEqual("F.cancelButton", result.ResolvedMember.FullyQualifiedName);
+
+ result = ResolveVB(program, "MyBase.CancelButton", 5);
+ Assert.AreEqual("System.Windows.Forms.Form.CancelButton", result.ResolvedMember.FullyQualifiedName);
+ }
#endregion
#region MixedType tests
diff --git a/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/MemberLookupHelper.cs b/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/MemberLookupHelper.cs
index 0f57a94507..746ca12b56 100644
--- a/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/MemberLookupHelper.cs
+++ b/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/MemberLookupHelper.cs
@@ -620,6 +620,12 @@ namespace ICSharpCode.SharpDevelop.Dom
static bool IsConstructedConversionToGenericReturnType(IReturnType from, IReturnType to, bool allowGenericTarget)
{
+ // null could be passed when type arguments could not be resolved/inferred
+ if (from == null && to == null)
+ return true;
+ if (from == null || to == null)
+ return false;
+
if (from.Equals(to))
return true;
diff --git a/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/NRefactoryResolver/CSharpToVBNetConvertVisitor.cs b/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/NRefactoryResolver/CSharpToVBNetConvertVisitor.cs
index f93391571a..8a79a7e297 100644
--- a/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/NRefactoryResolver/CSharpToVBNetConvertVisitor.cs
+++ b/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/NRefactoryResolver/CSharpToVBNetConvertVisitor.cs
@@ -18,18 +18,18 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
///
public class CSharpToVBNetConvertVisitor : CSharpConstructsConvertVisitor
{
- NRefactoryResolver _resolver;
- ParseInformation _parseInfo;
- IProjectContent _pc;
+ NRefactoryResolver resolver;
+ ParseInformation parseInformation;
+ IProjectContent projectContent;
public string RootNamespaceToRemove { get; set; }
public string StartupObjectToMakePublic { get; set; }
public IList DefaultImportsToRemove { get; set; }
public CSharpToVBNetConvertVisitor(IProjectContent pc, ParseInformation parseInfo)
{
- _resolver = new NRefactoryResolver(LanguageProperties.CSharp);
- _pc = pc;
- _parseInfo = parseInfo;
+ this.resolver = new NRefactoryResolver(LanguageProperties.CSharp);
+ this.projectContent = pc;
+ this.parseInformation = parseInfo;
}
public override object VisitCompilationUnit(CompilationUnit compilationUnit, object data)
@@ -42,7 +42,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
IReturnType ResolveType(TypeReference typeRef)
{
- return TypeVisitor.CreateReturnType(typeRef, _resolver);
+ return TypeVisitor.CreateReturnType(typeRef, resolver);
}
public override object VisitNamespaceDeclaration(NamespaceDeclaration namespaceDeclaration, object data)
@@ -103,11 +103,11 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
{
// Initialize resolver for method:
if (!methodDeclaration.Body.IsNull) {
- if (_resolver.Initialize(_parseInfo, methodDeclaration.Body.StartLocation.Y, methodDeclaration.Body.StartLocation.X)) {
- _resolver.RunLookupTableVisitor(methodDeclaration);
+ if (resolver.Initialize(parseInformation, methodDeclaration.Body.StartLocation.Y, methodDeclaration.Body.StartLocation.X)) {
+ resolver.RunLookupTableVisitor(methodDeclaration);
}
}
- IMethod currentMethod = _resolver.CallingMember as IMethod;
+ IMethod currentMethod = resolver.CallingMember as IMethod;
CreateInterfaceImplementations(currentMethod, methodDeclaration, methodDeclaration.InterfaceImplementations);
if (currentMethod != null && currentMethod.Name == "Main") {
if (currentMethod.DeclaringType.FullyQualifiedName == StartupObjectToMakePublic) {
@@ -122,7 +122,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
ClassFinder CreateContext()
{
- return new ClassFinder(_resolver.CallingClass, _resolver.CallingMember, _resolver.CaretLine, _resolver.CaretColumn);
+ return new ClassFinder(resolver.CallingClass, resolver.CallingMember, resolver.CaretLine, resolver.CaretColumn);
}
void CreateInterfaceImplementations(IMember currentMember, ParametrizedNode memberDecl, List interfaceImplementations)
@@ -186,8 +186,8 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
public override object VisitConstructorDeclaration(ConstructorDeclaration constructorDeclaration, object data)
{
if (!constructorDeclaration.Body.IsNull) {
- if (_resolver.Initialize(_parseInfo, constructorDeclaration.Body.StartLocation.Y, constructorDeclaration.Body.StartLocation.X)) {
- _resolver.RunLookupTableVisitor(constructorDeclaration);
+ if (resolver.Initialize(parseInformation, constructorDeclaration.Body.StartLocation.Y, constructorDeclaration.Body.StartLocation.X)) {
+ resolver.RunLookupTableVisitor(constructorDeclaration);
}
}
return base.VisitConstructorDeclaration(constructorDeclaration, data);
@@ -195,23 +195,23 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
public override object VisitPropertyDeclaration(PropertyDeclaration propertyDeclaration, object data)
{
- if (_resolver.Initialize(_parseInfo, propertyDeclaration.BodyStart.Y, propertyDeclaration.BodyStart.X)) {
- _resolver.RunLookupTableVisitor(propertyDeclaration);
+ if (resolver.Initialize(parseInformation, propertyDeclaration.BodyStart.Y, propertyDeclaration.BodyStart.X)) {
+ resolver.RunLookupTableVisitor(propertyDeclaration);
}
- IProperty currentProperty = _resolver.CallingMember as IProperty;
+ IProperty currentProperty = resolver.CallingMember as IProperty;
CreateInterfaceImplementations(currentProperty, propertyDeclaration, propertyDeclaration.InterfaceImplementations);
return base.VisitPropertyDeclaration(propertyDeclaration, data);
}
public override object VisitExpressionStatement(ExpressionStatement expressionStatement, object data)
{
- if (_resolver.CompilationUnit == null)
+ if (resolver.CompilationUnit == null)
return base.VisitExpressionStatement(expressionStatement, data);
// Transform event invocations that aren't already transformed by a parent IfStatement to RaiseEvent statement
InvocationExpression eventInvocation = expressionStatement.Expression as InvocationExpression;
if (eventInvocation != null && eventInvocation.TargetObject is IdentifierExpression) {
- MemberResolveResult mrr = _resolver.ResolveInternal(eventInvocation.TargetObject, ExpressionContext.Default) as MemberResolveResult;
+ MemberResolveResult mrr = resolver.ResolveInternal(eventInvocation.TargetObject, ExpressionContext.Default) as MemberResolveResult;
if (mrr != null && mrr.ResolvedMember is IEvent) {
ReplaceCurrentNode(new RaiseEventStatement(
((IdentifierExpression)eventInvocation.TargetObject).Identifier,
@@ -228,7 +228,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
{
base.VisitBinaryOperatorExpression(binaryOperatorExpression, data);
- if (_resolver.CompilationUnit == null)
+ if (resolver.CompilationUnit == null)
return null;
switch (binaryOperatorExpression.Op) {
@@ -249,8 +249,8 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
void ConvertEqualityToReferenceEqualityIfRequired(BinaryOperatorExpression binaryOperatorExpression)
{
// maybe we have to convert Equality operator to ReferenceEquality
- ResolveResult left = _resolver.ResolveInternal(binaryOperatorExpression.Left, ExpressionContext.Default);
- ResolveResult right = _resolver.ResolveInternal(binaryOperatorExpression.Right, ExpressionContext.Default);
+ ResolveResult left = resolver.ResolveInternal(binaryOperatorExpression.Left, ExpressionContext.Default);
+ ResolveResult right = resolver.ResolveInternal(binaryOperatorExpression.Right, ExpressionContext.Default);
if (left != null && right != null && left.ResolvedType != null && right.ResolvedType != null) {
IClass cLeft = left.ResolvedType.GetUnderlyingClass();
IClass cRight = right.ResolvedType.GetUnderlyingClass();
@@ -274,8 +274,8 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
void ConvertArgumentsForStringConcatenationIfRequired(BinaryOperatorExpression binaryOperatorExpression)
{
- ResolveResult left = _resolver.ResolveInternal(binaryOperatorExpression.Left, ExpressionContext.Default);
- ResolveResult right = _resolver.ResolveInternal(binaryOperatorExpression.Right, ExpressionContext.Default);
+ ResolveResult left = resolver.ResolveInternal(binaryOperatorExpression.Left, ExpressionContext.Default);
+ ResolveResult right = resolver.ResolveInternal(binaryOperatorExpression.Right, ExpressionContext.Default);
if (left != null && right != null) {
if (IsString(left.ResolvedType)) {
@@ -294,8 +294,8 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
void ConvertDivisionToIntegerDivisionIfRequired(BinaryOperatorExpression binaryOperatorExpression)
{
- ResolveResult left = _resolver.ResolveInternal(binaryOperatorExpression.Left, ExpressionContext.Default);
- ResolveResult right = _resolver.ResolveInternal(binaryOperatorExpression.Right, ExpressionContext.Default);
+ ResolveResult left = resolver.ResolveInternal(binaryOperatorExpression.Left, ExpressionContext.Default);
+ ResolveResult right = resolver.ResolveInternal(binaryOperatorExpression.Right, ExpressionContext.Default);
if (left != null && right != null) {
if (IsInteger(left.ResolvedType) && IsInteger(right.ResolvedType)) {
@@ -358,14 +358,14 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
public override object VisitIdentifierExpression(IdentifierExpression identifierExpression, object data)
{
base.VisitIdentifierExpression(identifierExpression, data);
- if (_resolver.CompilationUnit == null)
+ if (resolver.CompilationUnit == null)
return null;
InvocationExpression parentIE = identifierExpression.Parent as InvocationExpression;
if (!(identifierExpression.Parent is AddressOfExpression)
&& (parentIE == null || parentIE.TargetObject != identifierExpression))
{
- ResolveResult rr = _resolver.ResolveInternal(identifierExpression, ExpressionContext.Default);
+ ResolveResult rr = resolver.ResolveInternal(identifierExpression, ExpressionContext.Default);
if (rr is MethodResolveResult) {
ReplaceCurrentNode(new AddressOfExpression(identifierExpression));
}
@@ -377,14 +377,14 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
{
base.VisitFieldReferenceExpression(fieldReferenceExpression, data);
- if (_resolver.CompilationUnit == null)
+ if (resolver.CompilationUnit == null)
return null;
InvocationExpression parentIE = fieldReferenceExpression.Parent as InvocationExpression;
if (!(fieldReferenceExpression.Parent is AddressOfExpression)
&& (parentIE == null || parentIE.TargetObject != fieldReferenceExpression))
{
- ResolveResult rr = _resolver.ResolveInternal(fieldReferenceExpression, ExpressionContext.Default);
+ ResolveResult rr = resolver.ResolveInternal(fieldReferenceExpression, ExpressionContext.Default);
if (rr is MethodResolveResult) {
ReplaceCurrentNode(new AddressOfExpression(fieldReferenceExpression));
}
@@ -395,11 +395,11 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
void HandleAssignmentStatement(AssignmentExpression assignmentExpression)
{
- if (_resolver.CompilationUnit == null || assignmentExpression == null)
+ if (resolver.CompilationUnit == null || assignmentExpression == null)
return;
if (assignmentExpression.Op == AssignmentOperatorType.Add || assignmentExpression.Op == AssignmentOperatorType.Subtract) {
- ResolveResult rr = _resolver.ResolveInternal(assignmentExpression.Left, ExpressionContext.Default);
+ ResolveResult rr = resolver.ResolveInternal(assignmentExpression.Left, ExpressionContext.Default);
if (rr is MemberResolveResult && (rr as MemberResolveResult).ResolvedMember is IEvent) {
if (assignmentExpression.Op == AssignmentOperatorType.Add) {
ReplaceCurrentNode(new AddHandlerStatement(assignmentExpression.Left, assignmentExpression.Right));
@@ -429,7 +429,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
{
base.VisitCastExpression(castExpression, data);
- if (_resolver.CompilationUnit == null)
+ if (resolver.CompilationUnit == null)
return null;
// cast to value type is a conversion
diff --git a/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/NRefactoryResolver/NRefactoryASTConvertVisitor.cs b/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/NRefactoryResolver/NRefactoryASTConvertVisitor.cs
index 506274c1a3..388b6ad03a 100644
--- a/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/NRefactoryResolver/NRefactoryASTConvertVisitor.cs
+++ b/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/NRefactoryResolver/NRefactoryASTConvertVisitor.cs
@@ -484,6 +484,26 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
return null;
}
+ public override object VisitDeclareDeclaration(AST.DeclareDeclaration declareDeclaration, object data)
+ {
+ DefaultClass currentClass = GetCurrentClass();
+
+ DomRegion region = GetRegion(declareDeclaration.StartLocation, declareDeclaration.EndLocation);
+ DefaultMethod method = new DefaultMethod(declareDeclaration.Name, null, ConvertModifier(declareDeclaration.Modifier), region, DomRegion.Empty, currentClass);
+ method.Documentation = GetDocumentation(region.BeginLine, declareDeclaration.Attributes);
+ method.Modifiers |= ModifierEnum.Extern | ModifierEnum.Static;
+
+ method.ReturnType = CreateReturnType(declareDeclaration.TypeReference, method);
+ ConvertAttributes(declareDeclaration, method);
+
+ foreach (AST.ParameterDeclarationExpression par in declareDeclaration.Parameters) {
+ method.Parameters.Add(CreateParameter(par, method));
+ }
+
+ currentClass.Methods.Add(method);
+ return null;
+ }
+
public override object VisitOperatorDeclaration(AST.OperatorDeclaration operatorDeclaration, object data)
{
DefaultClass c = GetCurrentClass();
diff --git a/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/NRefactoryResolver/NRefactoryResolver.cs b/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/NRefactoryResolver/NRefactoryResolver.cs
index 682c2022d9..da435efc28 100644
--- a/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/NRefactoryResolver/NRefactoryResolver.cs
+++ b/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/NRefactoryResolver/NRefactoryResolver.cs
@@ -603,7 +603,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
}
#region Resolve Identifier
- ResolveResult ResolveIdentifier(string identifier, NR.Location position, ExpressionContext context)
+ public ResolveResult ResolveIdentifier(string identifier, NR.Location position, ExpressionContext context)
{
ResolveResult result = ResolveIdentifierInternal(identifier, position);
if (result is TypeResolveResult)
@@ -980,22 +980,37 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
bool isClassInInheritanceTree = false;
if (callingClass != null)
isClassInInheritanceTree = callingClass.IsTypeInInheritanceTree(type.GetUnderlyingClass());
+
+ // when there are multiple possible members, use the member from the more derived class
+ // (this is necessary to support a field shadowing a property)
+ IMember result = null;
foreach (IProperty p in type.GetProperties()) {
if (IsSameName(p.Name, memberName)) {
- return p;
+ result = GetMoreDerivedMember(result, p);
}
}
foreach (IField f in type.GetFields()) {
if (IsSameName(f.Name, memberName)) {
- return f;
+ result = GetMoreDerivedMember(result, f);
}
}
foreach (IEvent e in type.GetEvents()) {
if (IsSameName(e.Name, memberName)) {
- return e;
+ result = GetMoreDerivedMember(result, e);
}
}
- return null;
+ return result;
+ }
+
+ IMember GetMoreDerivedMember(IMember m1, IMember m2)
+ {
+ if (m1 == null) return m2;
+ if (m2 == null) return m1;
+
+ if (m1.DeclaringType.IsTypeInInheritanceTree(m2.DeclaringType))
+ return m1;
+ else
+ return m2;
}
#endregion
diff --git a/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/NRefactoryResolver/TypeVisitor.cs b/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/NRefactoryResolver/TypeVisitor.cs
index 50fa9ce97d..554265800c 100644
--- a/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/NRefactoryResolver/TypeVisitor.cs
+++ b/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/NRefactoryResolver/TypeVisitor.cs
@@ -225,18 +225,48 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
return c.Methods.FindAll(delegate(IMethod m) { return m.IsConstructor; });
}
+ public IProperty GetIndexer(IndexerExpression indexerExpression)
+ {
+ IReturnType targetObjectType = (IReturnType)indexerExpression.TargetObject.AcceptVisitor(this, null);
+ return GetIndexer(indexerExpression, targetObjectType);
+ }
+
IProperty GetVisualBasicIndexer(InvocationExpression invocationExpression)
{
- return GetIndexer(new IndexerExpression(invocationExpression.TargetObject, invocationExpression.Arguments));
+ ResolveResult targetRR = resolver.ResolveInternal(invocationExpression.TargetObject, ExpressionContext.Default);
+ if (targetRR != null) {
+ // Visual Basic can call indexers in two ways:
+ // collection(index) - use indexer
+ // collection.Item(index) - use parametrized property
+
+ if (invocationExpression.TargetObject is IdentifierExpression || invocationExpression.TargetObject is FieldReferenceExpression) {
+ // only IdentifierExpression/FieldReferenceExpression can represent a parametrized property
+ // - the check is necessary because collection.Items and collection.Item(index) both
+ // resolve to the same property, but we want to use the default indexer for the second call in
+ // collection.Item(index1)(index2)
+ MemberResolveResult memberRR = targetRR as MemberResolveResult;
+ if (memberRR != null) {
+ IProperty p = memberRR.ResolvedMember as IProperty;
+ if (p != null && p.Parameters.Count > 0) {
+ // this is a parametrized property
+ return p;
+ }
+ }
+ }
+ // not a parametrized property - try normal indexer
+ return GetIndexer(new IndexerExpression(invocationExpression.TargetObject, invocationExpression.Arguments),
+ targetRR.ResolvedType);
+ } else {
+ return null;
+ }
}
- public IProperty GetIndexer(IndexerExpression indexerExpression)
+ IProperty GetIndexer(IndexerExpression indexerExpression, IReturnType targetObjectType)
{
- IReturnType type = (IReturnType)indexerExpression.TargetObject.AcceptVisitor(this, null);
- if (type == null) {
+ if (targetObjectType == null) {
return null;
}
- List indexers = type.GetProperties();
+ List indexers = targetObjectType.GetProperties();
// remove non-indexers:
for (int i = 0; i < indexers.Count; i++) {
if (!indexers[i].IsIndexer)
diff --git a/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/NRefactoryResolver/VBNetToCSharpConvertVisitor.cs b/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/NRefactoryResolver/VBNetToCSharpConvertVisitor.cs
index dd3dc14076..c63104d01a 100644
--- a/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/NRefactoryResolver/VBNetToCSharpConvertVisitor.cs
+++ b/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/NRefactoryResolver/VBNetToCSharpConvertVisitor.cs
@@ -22,6 +22,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
// Adds using statements for the default usings
// Convert "ReDim" statement
// Convert "WithEvents" fields/"Handles" clauses
+ // Insert InitializeComponents() call into default constructor
public string NamespacePrefixToAdd { get; set; }
@@ -31,9 +32,9 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
public VBNetToCSharpConvertVisitor(IProjectContent pc, ParseInformation parseInfo)
{
- resolver = new NRefactoryResolver(LanguageProperties.VBNet);
- projectContent = pc;
- parseInformation = parseInfo;
+ this.resolver = new NRefactoryResolver(LanguageProperties.VBNet);
+ this.projectContent = pc;
+ this.parseInformation = parseInfo;
}
public override object VisitCompilationUnit(CompilationUnit compilationUnit, object data)
@@ -45,10 +46,9 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
if (ns != null) {
ns.Name = NamespacePrefixToAdd + "." + ns.Name;
}
- TypeDeclaration td = compilationUnit.Children[i] as TypeDeclaration;
- if (td != null) {
+ if (compilationUnit.Children[i] is TypeDeclaration || compilationUnit.Children[i] is DelegateDeclaration) {
ns = new NamespaceDeclaration(NamespacePrefixToAdd);
- ns.AddChild(td);
+ ns.AddChild(compilationUnit.Children[i]);
compilationUnit.Children[i] = ns;
}
}
@@ -65,6 +65,32 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
return null;
}
+ public override object VisitUsing(Using @using, object data)
+ {
+ base.VisitUsing(@using, data);
+ if (projectContent != null && projectContent.DefaultImports != null) {
+ if (!@using.IsAlias) {
+ // remove using if it is already part of the project-wide imports
+ foreach (string defaultImport in projectContent.DefaultImports.Usings) {
+ if (resolver.IsSameName(defaultImport, @using.Name)) {
+ RemoveCurrentNode();
+ break;
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ public override object VisitUsingDeclaration(UsingDeclaration usingDeclaration, object data)
+ {
+ base.VisitUsingDeclaration(usingDeclaration, data);
+ if (usingDeclaration.Usings.Count == 0) {
+ RemoveCurrentNode();
+ }
+ return null;
+ }
+
public override object VisitTypeDeclaration(TypeDeclaration typeDeclaration, object data)
{
resolver.Initialize(parseInformation, typeDeclaration.BodyStartLocation.Line, typeDeclaration.BodyStartLocation.Column);
@@ -87,14 +113,14 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
containsClassHandlesClauses |= !handles.Contains(".");
}
}
+ // ensure the type has at least one constructor to which the AddHandlerStatements can be added
CompoundClass compoundClass = callingClass as CompoundClass;
- if (containsClassHandlesClauses && !hasConstructors) {
- // ensure the type has at least one constructor to which the AddHandlerStatements can be added
+ if (!hasConstructors) {
// add constructor only to one part
if (compoundClass == null || compoundClass.GetParts()[0] == resolver.CallingClass) {
- ConstructorDeclaration cd = new ConstructorDeclaration(typeDeclaration.Name, Modifiers.Public, null, null);
- cd.Body = new BlockStatement();
- typeDeclaration.AddChild(cd);
+ if (containsClassHandlesClauses || RequiresConstructor(callingClass)) {
+ AddDefaultConstructor(callingClass, typeDeclaration);
+ }
}
}
}
@@ -103,6 +129,52 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
return null;
}
+ ///
+ /// Gets if the converter should add a default constructor to the current class if the
+ /// class does not have any constructors.
+ ///
+ protected virtual bool RequiresConstructor(IClass currentClass)
+ {
+ // the VB compiler automatically adds the InitializeComponents() call to the
+ // default constructor, so the converter has to an explicit constructor
+ // and place the call there
+ return IsAutomaticallyCallingInitializeComponent(currentClass);
+ }
+
+ bool IsAutomaticallyCallingInitializeComponent(IClass currentClass)
+ {
+ if (currentClass != null) {
+ if (currentClass.SearchMember("InitializeComponent", LanguageProperties.VBNet) is IMethod) {
+ foreach (IAttribute at in currentClass.Attributes) {
+ if (at.AttributeType.FullyQualifiedName == "Microsoft.VisualBasic.CompilerServices.DesignerGeneratedAttribute") {
+ return true;
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+ ///
+ /// Adds a default constructor to the type.
+ ///
+ protected virtual ConstructorDeclaration AddDefaultConstructor(IClass currentClass, TypeDeclaration typeDeclaration)
+ {
+ ConstructorDeclaration cd = new ConstructorDeclaration(typeDeclaration.Name, Modifiers.Public, null, null);
+ cd.Body = new BlockStatement();
+ // location is required to make Resolve() work in the constructor
+ cd.StartLocation = cd.Body.StartLocation = cd.EndLocation = cd.Body.EndLocation = typeDeclaration.BodyStartLocation;
+ typeDeclaration.AddChild(cd);
+ if (IsAutomaticallyCallingInitializeComponent(currentClass)) {
+ // the VB compiler automatically adds the InitializeComponents() call to the
+ // default constructor, so the converter has to add the call when creating an explicit
+ // constructor
+ cd.Body.Children.Add(new ExpressionStatement(
+ new InvocationExpression(new IdentifierExpression("InitializeComponent"))));
+ }
+ return cd;
+ }
+
public override object VisitMethodDeclaration(MethodDeclaration methodDeclaration, object data)
{
// Initialize resolver for method:
@@ -268,7 +340,10 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
if (ident != null) {
identifierExpression.Identifier = ident;
}
- FullyQualifyModuleMemberReference(identifierExpression, rr);
+
+ if (ReplaceWithInvocation(identifierExpression, rr)) {}
+ else if (FullyQualifyModuleMemberReference(identifierExpression, rr)) {}
+
return null;
}
@@ -279,23 +354,44 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
if (resolver.CompilationUnit == null)
return null;
- ResolveResult rr = resolver.ResolveInternal(fieldReferenceExpression, ExpressionContext.Default);
+ ResolveResult rr = Resolve(fieldReferenceExpression);
string ident = GetIdentifierFromResult(rr);
if (ident != null) {
fieldReferenceExpression.FieldName = ident;
}
+ if (ReplaceWithInvocation(fieldReferenceExpression, rr)) {}
+ else if (FullyQualifyModuleMemberReference(fieldReferenceExpression, rr)) {}
+ return rr;
+ }
+
+ protected bool IsReferenceToInstanceMember(ResolveResult rr)
+ {
+ MemberResolveResult memberRR = rr as MemberResolveResult;
+ if (memberRR != null)
+ return memberRR.ResolvedMember.IsStatic == false;
+ MethodResolveResult methodRR = rr as MethodResolveResult;
+ if (methodRR != null && methodRR.ContainingType != null) {
+ foreach (IMethod m in methodRR.ContainingType.GetMethods()) {
+ if (resolver.IsSameName(m.Name, methodRR.Name)) {
+ return !m.IsStatic;
+ }
+ }
+ }
+ return false;
+ }
+
+ bool ReplaceWithInvocation(Expression expression, ResolveResult rr)
+ {
if (rr is MethodResolveResult
- && !(fieldReferenceExpression.Parent is AddressOfExpression)
- && !(fieldReferenceExpression.Parent is InvocationExpression))
+ && !(expression.Parent is AddressOfExpression)
+ && !(expression.Parent is InvocationExpression))
{
- InvocationExpression ie = new InvocationExpression(fieldReferenceExpression);
+ InvocationExpression ie = new InvocationExpression(expression);
ReplaceCurrentNode(ie);
- } else {
- FullyQualifyModuleMemberReference(fieldReferenceExpression, rr);
+ return true;
}
-
- return rr;
+ return false;
}
IReturnType GetContainingTypeOfStaticMember(ResolveResult rr)
@@ -311,31 +407,39 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
return null;
}
- void FullyQualifyModuleMemberReference(IdentifierExpression ident, ResolveResult rr)
+ bool FullyQualifyModuleMemberReference(IdentifierExpression ident, ResolveResult rr)
{
IReturnType containingType = GetContainingTypeOfStaticMember(rr);
if (containingType == null)
- return;
+ return false;
if (resolver.CallingClass != null) {
if (resolver.CallingClass.IsTypeInInheritanceTree(containingType.GetUnderlyingClass()))
- return;
+ return false;
}
ReplaceCurrentNode(new FieldReferenceExpression(
- new TypeReferenceExpression(Refactoring.CodeGenerator.ConvertType(containingType, CreateContext())),
+ new TypeReferenceExpression(ConvertType(containingType)),
ident.Identifier
));
+ return true;
}
- void FullyQualifyModuleMemberReference(FieldReferenceExpression fre, ResolveResult rr)
+ TypeReference ConvertType(IReturnType type)
+ {
+ return Refactoring.CodeGenerator.ConvertType(type, CreateContext());
+ }
+
+ bool FullyQualifyModuleMemberReference(FieldReferenceExpression fre, ResolveResult rr)
{
IReturnType containingType = GetContainingTypeOfStaticMember(rr);
if (containingType == null)
- return;
+ return false;
ResolveResult targetRR = resolver.ResolveInternal(fre.TargetObject, ExpressionContext.Default);
if (targetRR is NamespaceResolveResult) {
- fre.TargetObject = new TypeReferenceExpression(Refactoring.CodeGenerator.ConvertType(containingType, CreateContext()));
+ fre.TargetObject = new TypeReferenceExpression(ConvertType(containingType));
+ return true;
}
+ return false;
}
public override object VisitInvocationExpression(InvocationExpression invocationExpression, object data)
@@ -353,13 +457,32 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
return null;
}
+ protected ResolveResult Resolve(Expression expression)
+ {
+ if (resolver.CompilationUnit == null) {
+ return null;
+ } else {
+ return resolver.ResolveInternal(expression, ExpressionContext.Default);
+ }
+ }
+
void ProcessInvocationExpression(InvocationExpression invocationExpression)
{
- MemberResolveResult rr = resolver.ResolveInternal(invocationExpression, ExpressionContext.Default) as MemberResolveResult;
+ MemberResolveResult rr = Resolve(invocationExpression) as MemberResolveResult;
if (rr != null) {
IProperty p = rr.ResolvedMember as IProperty;
if (p != null && invocationExpression.Arguments.Count > 0) {
- ReplaceCurrentNode(new IndexerExpression(invocationExpression.TargetObject, invocationExpression.Arguments));
+ // col(i) -> col[i] or col.Items(i) -> col[i] ?
+ Expression targetObject = invocationExpression.TargetObject;
+ FieldReferenceExpression targetObjectFre = targetObject as FieldReferenceExpression;
+ if (p.IsIndexer && targetObjectFre != null) {
+ MemberResolveResult rr2 = Resolve(targetObjectFre) as MemberResolveResult;
+ if (rr2 != null && rr2.ResolvedMember == rr.ResolvedMember) {
+ // remove ".Items"
+ targetObject = targetObjectFre.TargetObject;
+ }
+ }
+ ReplaceCurrentNode(new IndexerExpression(targetObject, invocationExpression.Arguments));
}
IMethod m = rr.ResolvedMember as IMethod;
if (m != null && invocationExpression.Arguments.Count == m.Parameters.Count) {
@@ -397,11 +520,9 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
// replace with:
// MyArray = (int[,])Microsoft.VisualBasic.CompilerServices.Utils.CopyArray(MyArray, new int[dim1+1, dim2+1]);
- ResolveResult rr = resolver.ResolveInternal(reDimStatement.ReDimClauses[0].TargetObject, ExpressionContext.Default);
+ ResolveResult rr = Resolve(reDimStatement.ReDimClauses[0].TargetObject);
if (rr != null && rr.ResolvedType != null && rr.ResolvedType.IsArrayReturnType) {
- ArrayCreateExpression ace = new ArrayCreateExpression(
- Refactoring.CodeGenerator.ConvertType(rr.ResolvedType, CreateContext())
- );
+ ArrayCreateExpression ace = new ArrayCreateExpression(ConvertType(rr.ResolvedType));
foreach (Expression arg in reDimStatement.ReDimClauses[0].Arguments) {
ace.Arguments.Add(Expression.AddInteger(arg, 1));
}
@@ -427,11 +548,9 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
} else {
// replace with array create expression
- ResolveResult rr = resolver.ResolveInternal(reDimStatement.ReDimClauses[0].TargetObject, ExpressionContext.Default);
+ ResolveResult rr = Resolve(reDimStatement.ReDimClauses[0].TargetObject);
if (rr != null && rr.ResolvedType != null && rr.ResolvedType.IsArrayReturnType) {
- ArrayCreateExpression ace = new ArrayCreateExpression(
- Refactoring.CodeGenerator.ConvertType(rr.ResolvedType, CreateContext())
- );
+ ArrayCreateExpression ace = new ArrayCreateExpression(ConvertType(rr.ResolvedType));
foreach (Expression arg in reDimStatement.ReDimClauses[0].Arguments) {
ace.Arguments.Add(Expression.AddInteger(arg, 1));
}
@@ -511,5 +630,39 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
return trr.ResolvedClass.Name;
return null;
}
+
+ public override object VisitForeachStatement(ForeachStatement foreachStatement, object data)
+ {
+ base.VisitForeachStatement(foreachStatement, data);
+
+ if (resolver.CompilationUnit == null)
+ return null;
+
+ if (foreachStatement.TypeReference.IsNull) {
+ ResolveResult rr = resolver.ResolveIdentifier(foreachStatement.VariableName, foreachStatement.StartLocation, ExpressionContext.Default);
+ if (rr != null && rr.ResolvedType != null) {
+ BlockStatement blockStatement = foreachStatement.EmbeddedStatement as BlockStatement;
+ if (blockStatement == null) {
+ blockStatement = new BlockStatement();
+ blockStatement.AddChild(foreachStatement.EmbeddedStatement);
+ foreachStatement.EmbeddedStatement = blockStatement;
+ }
+
+ string newVariableName = foreachStatement.VariableName + "_loopVariable";
+
+ ExpressionStatement st = new ExpressionStatement(
+ new AssignmentExpression(
+ new IdentifierExpression(foreachStatement.VariableName),
+ AssignmentOperatorType.Assign,
+ new IdentifierExpression(newVariableName)));
+ blockStatement.Children.Insert(0, st);
+ st.Parent = blockStatement;
+
+ foreachStatement.VariableName = newVariableName;
+ foreachStatement.TypeReference = ConvertType(rr.ResolvedType);
+ }
+ }
+ return null;
+ }
}
}
diff --git a/src/SharpDevelop.sln b/src/SharpDevelop.sln
index 7d80ee976d..6e716c3500 100644
--- a/src/SharpDevelop.sln
+++ b/src/SharpDevelop.sln
@@ -1,176 +1,176 @@
Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008
-# SharpDevelop 3.0.0.2644
+# SharpDevelop 3.0.0.2658
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AddIns", "AddIns", "{14A277EE-7DF1-4529-B639-7D1EF334C1C5}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Misc", "Misc", "{CE5B42B7-6E8C-4385-9E97-F4023FC16BF2}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Display Bindings", "Display Bindings", "{4EA396ED-64AD-4AD0-A67A-AB363F3E0C79}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SearchAndReplace", "AddIns\Misc\SearchAndReplace\Project\SearchAndReplace.csproj", "{9196DD8A-B4D4-4780-8742-C5762E547FC2}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "WpfDesign", "WpfDesign", "{388C3979-2621-4839-A955-7E5C03BA0B63}"
+ ProjectSection(SolutionItems) = postProject
+ EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AddinScout", "AddIns\Misc\AddinScout\Project\AddinScout.csproj", "{4B8F0F98-8BE1-402B-AA8B-C8D548577B38}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WpfDesign.AddIn", "AddIns\DisplayBindings\WpfDesign\WpfDesign.AddIn\WpfDesign.AddIn.csproj", "{9A9D6FD4-6A2E-455D-ACC3-DDA775FE9865}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StartPage", "AddIns\Misc\StartPage\Project\StartPage.csproj", "{7D5C266F-D6FF-4D14-B315-0C0FC6C4EF51}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WpfDesign.XamlDom", "AddIns\DisplayBindings\WpfDesign\WpfDesign.XamlDom\Project\WpfDesign.XamlDom.csproj", "{88DA149F-21B2-48AB-82C4-28FB6BDFD783}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RegExpTk", "AddIns\Misc\RegExpTk\Project\RegExpTk.csproj", "{64A3E5E6-90BF-47F6-94DF-68C94B62C817}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WpfDesign.Designer", "AddIns\DisplayBindings\WpfDesign\WpfDesign.Designer\Project\WpfDesign.Designer.csproj", "{78CC29AC-CC79-4355-B1F2-97936DF198AC}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HighlightingEditor", "AddIns\Misc\HighlightingEditor\Project\HighlightingEditor.csproj", "{8A462940-E5E9-4E85-982D-D4C006EE31D4}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WpfDesign", "AddIns\DisplayBindings\WpfDesign\WpfDesign\Project\WpfDesign.csproj", "{66A378A1-E9F4-4AD5-8946-D0EC06C2902F}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FiletypeRegisterer", "AddIns\Misc\FiletypeRegisterer\Project\FiletypeRegisterer.csproj", "{D022A6CE-7438-41E8-AC64-F2DE18EC54C6}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WorkflowDesigner", "AddIns\DisplayBindings\WorkflowDesigner\Project\WorkflowDesigner.csproj", "{533F4684-DBA6-4518-B005-C84F22A2DD57}"
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Debugger", "Debugger", "{6604365C-C702-4C10-9BA8-637F1E3D4D0D}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ClassDiagram", "ClassDiagram", "{DB137F0B-9B62-4232-AE92-F7BE0280B8D3}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TreeListView", "AddIns\Misc\Debugger\TreeListView\Project\TreeListView.csproj", "{B08385CD-F0CC-488C-B4F4-EEB34B6D2688}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClassWizard", "AddIns\DisplayBindings\ClassDiagram\ClassWizard\ClassWizard.csproj", "{8C59E80D-C4E4-4F36-9AD8-47C40F6E58B4}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Debugger.Core", "AddIns\Misc\Debugger\Debugger.Core\Project\Debugger.Core.csproj", "{1D18D788-F7EE-4585-A23B-34DC8EC63CB8}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Diagrams", "AddIns\DisplayBindings\ClassDiagram\DiagramRouter\Diagrams.csproj", "{0991423A-DBF6-4C89-B365-A1DF1EB32E42}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Debugger.AddIn", "AddIns\Misc\Debugger\Debugger.AddIn\Project\Debugger.AddIn.csproj", "{EC06F96A-AEEC-49D6-B03D-AB87C6EB674C}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClassDiagramAddin", "AddIns\DisplayBindings\ClassDiagram\ClassDiagramAddin\ClassDiagramAddin.csproj", "{5A1354DF-4989-4BB4-BC6B-D627C2E9FA13}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HtmlHelp2", "AddIns\Misc\HtmlHelp2\Project\HtmlHelp2.csproj", "{918487B7-2153-4618-BBB3-344DBDDF2A2A}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClassEditor", "AddIns\DisplayBindings\ClassDiagram\ClassEditor\ClassEditor.csproj", "{F5E059BB-96C2-4398-BED0-8598CD434173}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AddInManager", "AddIns\Misc\AddInManager\Project\AddInManager.csproj", "{F93E52FD-DA66-4CE5-A0CB-BCD902811122}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClassCanvas", "AddIns\DisplayBindings\ClassDiagram\ClassCanvas\ClassCanvas.csproj", "{08F772A1-F0BE-433E-8B37-F6522953DB05}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PInvokeAddIn", "AddIns\Misc\PInvokeAddIn\Project\PInvokeAddIn.csproj", "{5EEB99CF-EA2B-4733-80A6-CE9192D68170}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SettingsEditor", "AddIns\DisplayBindings\SettingsEditor\Project\SettingsEditor.csproj", "{85226AFB-CE71-4851-9A75-7EEC663A8E8A}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MonoAddIn", "AddIns\Misc\MonoAddIn\Project\MonoAddIn.csproj", "{082DCD64-EE32-4151-A50F-E139CF754CC0}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "IconEditor", "IconEditor", "{0D37CE59-B0EF-4F3C-B9EB-8557E53A448B}"
+ ProjectSection(SolutionItems) = postProject
+ EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodeCoverage", "AddIns\Misc\CodeCoverage\Project\CodeCoverage.csproj", "{08ce9972-283b-44f4-82fa-966f7dfa6b7a}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IconEditorAddIn", "AddIns\DisplayBindings\IconEditor\IconEditorAddIn\IconEditorAddIn.csproj", "{DFB936AD-90EE-4B4F-941E-4F4A636F0D92}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTesting", "AddIns\Misc\UnitTesting\UnitTesting.csproj", "{1F261725-6318-4434-A1B1-6C70CE4CD324}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IconEditor", "AddIns\DisplayBindings\IconEditor\IconEditor\IconEditor.csproj", "{DC1CCE11-CB91-40FA-9C47-4D9EB5D67BFD}"
EndProject
-Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "HtmlHelp2JScriptGlobals", "AddIns\Misc\HtmlHelp2\JScriptGlobals\HtmlHelp2JScriptGlobals.vbproj", "{E54A5AD2-418D-4A85-BA5E-CD803DE38715}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XmlEditor", "AddIns\DisplayBindings\XmlEditor\Project\XmlEditor.csproj", "{6B717BD1-CD5E-498C-A42E-9E6A4584DC48}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SubversionAddIn", "AddIns\Misc\SubversionAddIn\Project\SubversionAddIn.csproj", "{17F4D7E0-6933-4C2E-8714-FD7E98D625D5}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FormsDesigner", "AddIns\DisplayBindings\FormsDesigner\Project\FormsDesigner.csproj", "{7D7E92DF-ACEB-4B69-92C8-8AC7A703CD57}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodeAnalysis", "AddIns\Misc\CodeAnalysis\CodeAnalysis.csproj", "{3EAA45A9-735C-4AC7-A799-947B93EA449D}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ResourceEditor", "AddIns\DisplayBindings\ResourceEditor\Project\ResourceEditor.csproj", "{CBC6C247-747B-4908-B09A-4D2E0F640B6B}"
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ComponentInspector", "ComponentInspector", "{BDDDCD01-D2FE-4EAD-9425-4B6B91922C7C}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Backends", "Backends", "{FEB825FA-4AD8-425D-8E4A-B5A18EE1B81C}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ComponentInspector", "AddIns\Misc\ComponentInspector\ComponentInspector\ComponentInspector.csproj", "{000E4F64-5D0D-4EB1-B0BF-1A62ADBC6EAD}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XamlBinding", "AddIns\BackendBindings\XamlBinding\Project\XamlBinding.csproj", "{7C96B65D-28A5-4F28-A35B-8D83CE831EE8}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ComponentInspector.AddIn", "AddIns\Misc\ComponentInspector\ComponentInspector.AddIn\ComponentInspector.AddIn.csproj", "{869951D5-A0D6-4DC6-9F1D-E6B9A12AC446}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WixBinding", "AddIns\BackendBindings\WixBinding\Project\WixBinding.csproj", "{e1b288a2-08ee-4318-8bbb-8ab72c69e33e}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ComponentInspector.Core", "AddIns\Misc\ComponentInspector\ComponentInspector.Core\ComponentInspector.Core.csproj", "{E6F4983F-DE41-4AEC-88E7-1FA9AFB4E6FF}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NRefactoryToBooConverter", "AddIns\BackendBindings\Boo\NRefactoryToBooConverter\Project\NRefactoryToBooConverter.csproj", "{DBCF20A1-BA13-4582-BFA9-74DE4D987B73}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ResourceToolkit", "AddIns\Misc\ResourceToolkit\Project\ResourceToolkit.csproj", "{461606BD-E824-4D0A-8CBA-01810B1F5E02}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BooBinding", "AddIns\BackendBindings\Boo\BooBinding\Project\BooBinding.csproj", "{4AC2D5F1-F671-480C-A075-6BF62B3721B2}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ILAsmBinding", "AddIns\BackendBindings\ILAsmBinding\Project\ILAsmBinding.csproj", "{6e59af58-f635-459a-9a35-c9ac41c00339}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VBNetBinding", "AddIns\BackendBindings\VBNetBinding\Project\VBNetBinding.csproj", "{BF38FB72-B380-4196-AF8C-95749D726C61}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CSharpBinding", "AddIns\BackendBindings\CSharpBinding\Project\CSharpBinding.csproj", "{1F1AC7CD-D154-45BB-8EAF-804CA8055F5A}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Misc", "Misc", "{CE5B42B7-6E8C-4385-9E97-F4023FC16BF2}"
+ ProjectSection(SolutionItems) = postProject
+ EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SharpServerTools", "SharpServerTools", "{6CEEC0D9-FA00-4EE3-9A1C-39B7ACC882FD}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerBrowserTool", "AddIns\Misc\SharpServerTools\ServerBrowserTool\ServerBrowserTool.csproj", "{D721EAA4-8A40-4EF0-A011-5862159BE621}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DataTools.UI", "AddIns\Misc\SharpServerTools\DataTools.UI\DataTools.UI.csproj", "{87C0E3D9-0DFD-4F6D-8E38-408AAF73F4EE}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DataTools.Model", "AddIns\Misc\SharpServerTools\DataTools.Model\DataTools.Model.csproj", "{51783FC4-D8D2-4BFB-A1F1-AC8857CF3ED0}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DataTools.AddIn", "AddIns\Misc\SharpServerTools\SharpDbTools\DataTools.AddIn.csproj", "{93B2D6DF-7588-40C0-8A35-CA0DD7328FC3}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DataTools.Model", "AddIns\Misc\SharpServerTools\DataTools.Model\DataTools.Model.csproj", "{51783FC4-D8D2-4BFB-A1F1-AC8857CF3ED0}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerBrowserTool", "AddIns\Misc\SharpServerTools\ServerBrowserTool\ServerBrowserTool.csproj", "{D721EAA4-8A40-4EF0-A011-5862159BE621}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DataTools.UI", "AddIns\Misc\SharpServerTools\DataTools.UI\DataTools.UI.csproj", "{87C0E3D9-0DFD-4F6D-8E38-408AAF73F4EE}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ResourceToolkit", "AddIns\Misc\ResourceToolkit\Project\ResourceToolkit.csproj", "{461606BD-E824-4D0A-8CBA-01810B1F5E02}"
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Backends", "Backends", "{FEB825FA-4AD8-425D-8E4A-B5A18EE1B81C}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ComponentInspector", "ComponentInspector", "{BDDDCD01-D2FE-4EAD-9425-4B6B91922C7C}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CSharpBinding", "AddIns\BackendBindings\CSharpBinding\Project\CSharpBinding.csproj", "{1F1AC7CD-D154-45BB-8EAF-804CA8055F5A}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VBNetBinding", "AddIns\BackendBindings\VBNetBinding\Project\VBNetBinding.csproj", "{BF38FB72-B380-4196-AF8C-95749D726C61}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ILAsmBinding", "AddIns\BackendBindings\ILAsmBinding\Project\ILAsmBinding.csproj", "{6e59af58-f635-459a-9a35-c9ac41c00339}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BooBinding", "AddIns\BackendBindings\Boo\BooBinding\Project\BooBinding.csproj", "{4AC2D5F1-F671-480C-A075-6BF62B3721B2}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ComponentInspector.Core", "AddIns\Misc\ComponentInspector\ComponentInspector.Core\ComponentInspector.Core.csproj", "{E6F4983F-DE41-4AEC-88E7-1FA9AFB4E6FF}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NRefactoryToBooConverter", "AddIns\BackendBindings\Boo\NRefactoryToBooConverter\Project\NRefactoryToBooConverter.csproj", "{DBCF20A1-BA13-4582-BFA9-74DE4D987B73}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ComponentInspector.AddIn", "AddIns\Misc\ComponentInspector\ComponentInspector.AddIn\ComponentInspector.AddIn.csproj", "{869951D5-A0D6-4DC6-9F1D-E6B9A12AC446}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WixBinding", "AddIns\BackendBindings\WixBinding\Project\WixBinding.csproj", "{e1b288a2-08ee-4318-8bbb-8ab72c69e33e}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ComponentInspector", "AddIns\Misc\ComponentInspector\ComponentInspector\ComponentInspector.csproj", "{000E4F64-5D0D-4EB1-B0BF-1A62ADBC6EAD}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XamlBinding", "AddIns\BackendBindings\XamlBinding\Project\XamlBinding.csproj", "{7C96B65D-28A5-4F28-A35B-8D83CE831EE8}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodeAnalysis", "AddIns\Misc\CodeAnalysis\CodeAnalysis.csproj", "{3EAA45A9-735C-4AC7-A799-947B93EA449D}"
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Display Bindings", "Display Bindings", "{4EA396ED-64AD-4AD0-A67A-AB363F3E0C79}"
- ProjectSection(SolutionItems) = postProject
- EndProjectSection
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SubversionAddIn", "AddIns\Misc\SubversionAddIn\Project\SubversionAddIn.csproj", "{17F4D7E0-6933-4C2E-8714-FD7E98D625D5}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ResourceEditor", "AddIns\DisplayBindings\ResourceEditor\Project\ResourceEditor.csproj", "{CBC6C247-747B-4908-B09A-4D2E0F640B6B}"
+Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "HtmlHelp2JScriptGlobals", "AddIns\Misc\HtmlHelp2\JScriptGlobals\HtmlHelp2JScriptGlobals.vbproj", "{E54A5AD2-418D-4A85-BA5E-CD803DE38715}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FormsDesigner", "AddIns\DisplayBindings\FormsDesigner\Project\FormsDesigner.csproj", "{7D7E92DF-ACEB-4B69-92C8-8AC7A703CD57}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTesting", "AddIns\Misc\UnitTesting\UnitTesting.csproj", "{1F261725-6318-4434-A1B1-6C70CE4CD324}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XmlEditor", "AddIns\DisplayBindings\XmlEditor\Project\XmlEditor.csproj", "{6B717BD1-CD5E-498C-A42E-9E6A4584DC48}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodeCoverage", "AddIns\Misc\CodeCoverage\Project\CodeCoverage.csproj", "{08ce9972-283b-44f4-82fa-966f7dfa6b7a}"
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "IconEditor", "IconEditor", "{0D37CE59-B0EF-4F3C-B9EB-8557E53A448B}"
- ProjectSection(SolutionItems) = postProject
- EndProjectSection
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MonoAddIn", "AddIns\Misc\MonoAddIn\Project\MonoAddIn.csproj", "{082DCD64-EE32-4151-A50F-E139CF754CC0}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IconEditor", "AddIns\DisplayBindings\IconEditor\IconEditor\IconEditor.csproj", "{DC1CCE11-CB91-40FA-9C47-4D9EB5D67BFD}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PInvokeAddIn", "AddIns\Misc\PInvokeAddIn\Project\PInvokeAddIn.csproj", "{5EEB99CF-EA2B-4733-80A6-CE9192D68170}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IconEditorAddIn", "AddIns\DisplayBindings\IconEditor\IconEditorAddIn\IconEditorAddIn.csproj", "{DFB936AD-90EE-4B4F-941E-4F4A636F0D92}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AddInManager", "AddIns\Misc\AddInManager\Project\AddInManager.csproj", "{F93E52FD-DA66-4CE5-A0CB-BCD902811122}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SettingsEditor", "AddIns\DisplayBindings\SettingsEditor\Project\SettingsEditor.csproj", "{85226AFB-CE71-4851-9A75-7EEC663A8E8A}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HtmlHelp2", "AddIns\Misc\HtmlHelp2\Project\HtmlHelp2.csproj", "{918487B7-2153-4618-BBB3-344DBDDF2A2A}"
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ClassDiagram", "ClassDiagram", "{DB137F0B-9B62-4232-AE92-F7BE0280B8D3}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Debugger", "Debugger", "{6604365C-C702-4C10-9BA8-637F1E3D4D0D}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClassCanvas", "AddIns\DisplayBindings\ClassDiagram\ClassCanvas\ClassCanvas.csproj", "{08F772A1-F0BE-433E-8B37-F6522953DB05}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClassEditor", "AddIns\DisplayBindings\ClassDiagram\ClassEditor\ClassEditor.csproj", "{F5E059BB-96C2-4398-BED0-8598CD434173}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClassDiagramAddin", "AddIns\DisplayBindings\ClassDiagram\ClassDiagramAddin\ClassDiagramAddin.csproj", "{5A1354DF-4989-4BB4-BC6B-D627C2E9FA13}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Debugger.AddIn", "AddIns\Misc\Debugger\Debugger.AddIn\Project\Debugger.AddIn.csproj", "{EC06F96A-AEEC-49D6-B03D-AB87C6EB674C}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Diagrams", "AddIns\DisplayBindings\ClassDiagram\DiagramRouter\Diagrams.csproj", "{0991423A-DBF6-4C89-B365-A1DF1EB32E42}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Debugger.Core", "AddIns\Misc\Debugger\Debugger.Core\Project\Debugger.Core.csproj", "{1D18D788-F7EE-4585-A23B-34DC8EC63CB8}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClassWizard", "AddIns\DisplayBindings\ClassDiagram\ClassWizard\ClassWizard.csproj", "{8C59E80D-C4E4-4F36-9AD8-47C40F6E58B4}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TreeListView", "AddIns\Misc\Debugger\TreeListView\Project\TreeListView.csproj", "{B08385CD-F0CC-488C-B4F4-EEB34B6D2688}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WorkflowDesigner", "AddIns\DisplayBindings\WorkflowDesigner\Project\WorkflowDesigner.csproj", "{533F4684-DBA6-4518-B005-C84F22A2DD57}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FiletypeRegisterer", "AddIns\Misc\FiletypeRegisterer\Project\FiletypeRegisterer.csproj", "{D022A6CE-7438-41E8-AC64-F2DE18EC54C6}"
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "WpfDesign", "WpfDesign", "{388C3979-2621-4839-A955-7E5C03BA0B63}"
- ProjectSection(SolutionItems) = postProject
- EndProjectSection
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HighlightingEditor", "AddIns\Misc\HighlightingEditor\Project\HighlightingEditor.csproj", "{8A462940-E5E9-4E85-982D-D4C006EE31D4}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WpfDesign", "AddIns\DisplayBindings\WpfDesign\WpfDesign\Project\WpfDesign.csproj", "{66A378A1-E9F4-4AD5-8946-D0EC06C2902F}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RegExpTk", "AddIns\Misc\RegExpTk\Project\RegExpTk.csproj", "{64A3E5E6-90BF-47F6-94DF-68C94B62C817}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WpfDesign.Designer", "AddIns\DisplayBindings\WpfDesign\WpfDesign.Designer\Project\WpfDesign.Designer.csproj", "{78CC29AC-CC79-4355-B1F2-97936DF198AC}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StartPage", "AddIns\Misc\StartPage\Project\StartPage.csproj", "{7D5C266F-D6FF-4D14-B315-0C0FC6C4EF51}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WpfDesign.XamlDom", "AddIns\DisplayBindings\WpfDesign\WpfDesign.XamlDom\Project\WpfDesign.XamlDom.csproj", "{88DA149F-21B2-48AB-82C4-28FB6BDFD783}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AddinScout", "AddIns\Misc\AddinScout\Project\AddinScout.csproj", "{4B8F0F98-8BE1-402B-AA8B-C8D548577B38}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WpfDesign.AddIn", "AddIns\DisplayBindings\WpfDesign\WpfDesign.AddIn\WpfDesign.AddIn.csproj", "{9A9D6FD4-6A2E-455D-ACC3-DDA775FE9865}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SearchAndReplace", "AddIns\Misc\SearchAndReplace\Project\SearchAndReplace.csproj", "{9196DD8A-B4D4-4780-8742-C5762E547FC2}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Libraries", "Libraries", "{9421EDF4-9769-4BE9-B5A6-C87DE221D73C}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NRefactory", "Libraries\NRefactory\Project\NRefactory.csproj", "{3A9AE6AA-BC07-4A2F-972C-581E3AE2F195}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Aga.Controls", "Libraries\TreeViewAdv\Aga.Controls\Aga.Controls.csproj", "{E73BB233-D88B-44A7-A98F-D71EE158381D}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.TextEditor", "Libraries\ICSharpCode.TextEditor\Project\ICSharpCode.TextEditor.csproj", "{2D18BE89-D210-49EB-A9DD-2246FBB3DF6D}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Build.Tasks", "Libraries\ICSharpCode.Build.Tasks\Project\ICSharpCode.Build.Tasks.csproj", "{4139CCF6-FB49-4A9D-B2CF-331E9EA3198D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WinFormsUI", "Libraries\DockPanel_Src\WinFormsUI\WinFormsUI.csproj", "{D3C782BA-178E-4235-A3BA-8C11DEBB6BEE}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Build.Tasks", "Libraries\ICSharpCode.Build.Tasks\Project\ICSharpCode.Build.Tasks.csproj", "{4139CCF6-FB49-4A9D-B2CF-331E9EA3198D}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.TextEditor", "Libraries\ICSharpCode.TextEditor\Project\ICSharpCode.TextEditor.csproj", "{2D18BE89-D210-49EB-A9DD-2246FBB3DF6D}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Aga.Controls", "Libraries\TreeViewAdv\Aga.Controls\Aga.Controls.csproj", "{E73BB233-D88B-44A7-A98F-D71EE158381D}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NRefactory", "Libraries\NRefactory\Project\NRefactory.csproj", "{3A9AE6AA-BC07-4A2F-972C-581E3AE2F195}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Main", "Main", "{5A3EBEBA-0560-41C1-966B-23F7D03A5486}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
-Project("{00000000-0000-0000-0000-000000000000}") = "Tools", "Tools\Tools.build", "B13EFF7F-7EA4-4B68-A375-D112105E9182"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.Dom", "Main\ICSharpCode.SharpDevelop.Dom\Project\ICSharpCode.SharpDevelop.Dom.csproj", "{924EE450-603D-49C1-A8E5-4AFAA31CE6F3}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StartUp", "Main\StartUp\Project\StartUp.csproj", "{1152B71B-3C05-4598-B20D-823B5D40559E}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.Widgets", "Main\ICSharpCode.SharpDevelop.Widgets\Project\ICSharpCode.SharpDevelop.Widgets.csproj", "{8035765F-D51F-4A0C-A746-2FD100E19419}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Core", "Main\Core\Project\ICSharpCode.Core.csproj", "{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.Sda", "Main\ICSharpCode.SharpDevelop.Sda\ICSharpCode.SharpDevelop.Sda.csproj", "{80318B5F-A25D-45AB-8A95-EF31D2370A4C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop", "Main\Base\Project\ICSharpCode.SharpDevelop.csproj", "{2748AD25-9C63-4E12-877B-4DCE96FBED54}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.Sda", "Main\ICSharpCode.SharpDevelop.Sda\ICSharpCode.SharpDevelop.Sda.csproj", "{80318B5F-A25D-45AB-8A95-EF31D2370A4C}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Core", "Main\Core\Project\ICSharpCode.Core.csproj", "{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.Widgets", "Main\ICSharpCode.SharpDevelop.Widgets\Project\ICSharpCode.SharpDevelop.Widgets.csproj", "{8035765F-D51F-4A0C-A746-2FD100E19419}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StartUp", "Main\StartUp\Project\StartUp.csproj", "{1152B71B-3C05-4598-B20D-823B5D40559E}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.Dom", "Main\ICSharpCode.SharpDevelop.Dom\Project\ICSharpCode.SharpDevelop.Dom.csproj", "{924EE450-603D-49C1-A8E5-4AFAA31CE6F3}"
+Project("{00000000-0000-0000-0000-000000000000}") = "Tools", "Tools\Tools.build", "B13EFF7F-7EA4-4B68-A375-D112105E9182"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -504,75 +504,75 @@ Global
{9196DD8A-B4D4-4780-8742-C5762E547FC2}.Release|Any CPU.ActiveCfg = Release|Any CPU
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
- {4EA396ED-64AD-4AD0-A67A-AB363F3E0C79} = {14A277EE-7DF1-4529-B639-7D1EF334C1C5}
- {FEB825FA-4AD8-425D-8E4A-B5A18EE1B81C} = {14A277EE-7DF1-4529-B639-7D1EF334C1C5}
{CE5B42B7-6E8C-4385-9E97-F4023FC16BF2} = {14A277EE-7DF1-4529-B639-7D1EF334C1C5}
- {6CEEC0D9-FA00-4EE3-9A1C-39B7ACC882FD} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2}
- {461606BD-E824-4D0A-8CBA-01810B1F5E02} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2}
- {BDDDCD01-D2FE-4EAD-9425-4B6B91922C7C} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2}
- {3EAA45A9-735C-4AC7-A799-947B93EA449D} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2}
- {17F4D7E0-6933-4C2E-8714-FD7E98D625D5} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2}
- {E54A5AD2-418D-4A85-BA5E-CD803DE38715} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2}
- {1F261725-6318-4434-A1B1-6C70CE4CD324} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2}
- {08ce9972-283b-44f4-82fa-966f7dfa6b7a} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2}
- {082DCD64-EE32-4151-A50F-E139CF754CC0} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2}
- {5EEB99CF-EA2B-4733-80A6-CE9192D68170} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2}
- {F93E52FD-DA66-4CE5-A0CB-BCD902811122} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2}
- {918487B7-2153-4618-BBB3-344DBDDF2A2A} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2}
- {6604365C-C702-4C10-9BA8-637F1E3D4D0D} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2}
- {D022A6CE-7438-41E8-AC64-F2DE18EC54C6} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2}
- {8A462940-E5E9-4E85-982D-D4C006EE31D4} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2}
- {64A3E5E6-90BF-47F6-94DF-68C94B62C817} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2}
- {7D5C266F-D6FF-4D14-B315-0C0FC6C4EF51} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2}
- {4B8F0F98-8BE1-402B-AA8B-C8D548577B38} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2}
- {9196DD8A-B4D4-4780-8742-C5762E547FC2} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2}
- {EC06F96A-AEEC-49D6-B03D-AB87C6EB674C} = {6604365C-C702-4C10-9BA8-637F1E3D4D0D}
- {1D18D788-F7EE-4585-A23B-34DC8EC63CB8} = {6604365C-C702-4C10-9BA8-637F1E3D4D0D}
- {B08385CD-F0CC-488C-B4F4-EEB34B6D2688} = {6604365C-C702-4C10-9BA8-637F1E3D4D0D}
- {E6F4983F-DE41-4AEC-88E7-1FA9AFB4E6FF} = {BDDDCD01-D2FE-4EAD-9425-4B6B91922C7C}
- {869951D5-A0D6-4DC6-9F1D-E6B9A12AC446} = {BDDDCD01-D2FE-4EAD-9425-4B6B91922C7C}
- {000E4F64-5D0D-4EB1-B0BF-1A62ADBC6EAD} = {BDDDCD01-D2FE-4EAD-9425-4B6B91922C7C}
- {87C0E3D9-0DFD-4F6D-8E38-408AAF73F4EE} = {6CEEC0D9-FA00-4EE3-9A1C-39B7ACC882FD}
- {51783FC4-D8D2-4BFB-A1F1-AC8857CF3ED0} = {6CEEC0D9-FA00-4EE3-9A1C-39B7ACC882FD}
- {93B2D6DF-7588-40C0-8A35-CA0DD7328FC3} = {6CEEC0D9-FA00-4EE3-9A1C-39B7ACC882FD}
- {D721EAA4-8A40-4EF0-A011-5862159BE621} = {6CEEC0D9-FA00-4EE3-9A1C-39B7ACC882FD}
- {7C96B65D-28A5-4F28-A35B-8D83CE831EE8} = {FEB825FA-4AD8-425D-8E4A-B5A18EE1B81C}
- {e1b288a2-08ee-4318-8bbb-8ab72c69e33e} = {FEB825FA-4AD8-425D-8E4A-B5A18EE1B81C}
- {DBCF20A1-BA13-4582-BFA9-74DE4D987B73} = {FEB825FA-4AD8-425D-8E4A-B5A18EE1B81C}
- {4AC2D5F1-F671-480C-A075-6BF62B3721B2} = {FEB825FA-4AD8-425D-8E4A-B5A18EE1B81C}
- {6e59af58-f635-459a-9a35-c9ac41c00339} = {FEB825FA-4AD8-425D-8E4A-B5A18EE1B81C}
- {BF38FB72-B380-4196-AF8C-95749D726C61} = {FEB825FA-4AD8-425D-8E4A-B5A18EE1B81C}
- {1F1AC7CD-D154-45BB-8EAF-804CA8055F5A} = {FEB825FA-4AD8-425D-8E4A-B5A18EE1B81C}
- {388C3979-2621-4839-A955-7E5C03BA0B63} = {4EA396ED-64AD-4AD0-A67A-AB363F3E0C79}
- {533F4684-DBA6-4518-B005-C84F22A2DD57} = {4EA396ED-64AD-4AD0-A67A-AB363F3E0C79}
- {DB137F0B-9B62-4232-AE92-F7BE0280B8D3} = {4EA396ED-64AD-4AD0-A67A-AB363F3E0C79}
- {85226AFB-CE71-4851-9A75-7EEC663A8E8A} = {4EA396ED-64AD-4AD0-A67A-AB363F3E0C79}
- {0D37CE59-B0EF-4F3C-B9EB-8557E53A448B} = {4EA396ED-64AD-4AD0-A67A-AB363F3E0C79}
- {6B717BD1-CD5E-498C-A42E-9E6A4584DC48} = {4EA396ED-64AD-4AD0-A67A-AB363F3E0C79}
- {7D7E92DF-ACEB-4B69-92C8-8AC7A703CD57} = {4EA396ED-64AD-4AD0-A67A-AB363F3E0C79}
+ {FEB825FA-4AD8-425D-8E4A-B5A18EE1B81C} = {14A277EE-7DF1-4529-B639-7D1EF334C1C5}
+ {4EA396ED-64AD-4AD0-A67A-AB363F3E0C79} = {14A277EE-7DF1-4529-B639-7D1EF334C1C5}
{CBC6C247-747B-4908-B09A-4D2E0F640B6B} = {4EA396ED-64AD-4AD0-A67A-AB363F3E0C79}
- {DFB936AD-90EE-4B4F-941E-4F4A636F0D92} = {0D37CE59-B0EF-4F3C-B9EB-8557E53A448B}
- {DC1CCE11-CB91-40FA-9C47-4D9EB5D67BFD} = {0D37CE59-B0EF-4F3C-B9EB-8557E53A448B}
- {8C59E80D-C4E4-4F36-9AD8-47C40F6E58B4} = {DB137F0B-9B62-4232-AE92-F7BE0280B8D3}
- {0991423A-DBF6-4C89-B365-A1DF1EB32E42} = {DB137F0B-9B62-4232-AE92-F7BE0280B8D3}
- {5A1354DF-4989-4BB4-BC6B-D627C2E9FA13} = {DB137F0B-9B62-4232-AE92-F7BE0280B8D3}
- {F5E059BB-96C2-4398-BED0-8598CD434173} = {DB137F0B-9B62-4232-AE92-F7BE0280B8D3}
- {08F772A1-F0BE-433E-8B37-F6522953DB05} = {DB137F0B-9B62-4232-AE92-F7BE0280B8D3}
- {9A9D6FD4-6A2E-455D-ACC3-DDA775FE9865} = {388C3979-2621-4839-A955-7E5C03BA0B63}
- {88DA149F-21B2-48AB-82C4-28FB6BDFD783} = {388C3979-2621-4839-A955-7E5C03BA0B63}
- {78CC29AC-CC79-4355-B1F2-97936DF198AC} = {388C3979-2621-4839-A955-7E5C03BA0B63}
+ {7D7E92DF-ACEB-4B69-92C8-8AC7A703CD57} = {4EA396ED-64AD-4AD0-A67A-AB363F3E0C79}
+ {6B717BD1-CD5E-498C-A42E-9E6A4584DC48} = {4EA396ED-64AD-4AD0-A67A-AB363F3E0C79}
+ {0D37CE59-B0EF-4F3C-B9EB-8557E53A448B} = {4EA396ED-64AD-4AD0-A67A-AB363F3E0C79}
+ {85226AFB-CE71-4851-9A75-7EEC663A8E8A} = {4EA396ED-64AD-4AD0-A67A-AB363F3E0C79}
+ {DB137F0B-9B62-4232-AE92-F7BE0280B8D3} = {4EA396ED-64AD-4AD0-A67A-AB363F3E0C79}
+ {533F4684-DBA6-4518-B005-C84F22A2DD57} = {4EA396ED-64AD-4AD0-A67A-AB363F3E0C79}
+ {388C3979-2621-4839-A955-7E5C03BA0B63} = {4EA396ED-64AD-4AD0-A67A-AB363F3E0C79}
{66A378A1-E9F4-4AD5-8946-D0EC06C2902F} = {388C3979-2621-4839-A955-7E5C03BA0B63}
- {E73BB233-D88B-44A7-A98F-D71EE158381D} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C}
- {4139CCF6-FB49-4A9D-B2CF-331E9EA3198D} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C}
- {D3C782BA-178E-4235-A3BA-8C11DEBB6BEE} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C}
- {2D18BE89-D210-49EB-A9DD-2246FBB3DF6D} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C}
+ {78CC29AC-CC79-4355-B1F2-97936DF198AC} = {388C3979-2621-4839-A955-7E5C03BA0B63}
+ {88DA149F-21B2-48AB-82C4-28FB6BDFD783} = {388C3979-2621-4839-A955-7E5C03BA0B63}
+ {9A9D6FD4-6A2E-455D-ACC3-DDA775FE9865} = {388C3979-2621-4839-A955-7E5C03BA0B63}
+ {08F772A1-F0BE-433E-8B37-F6522953DB05} = {DB137F0B-9B62-4232-AE92-F7BE0280B8D3}
+ {F5E059BB-96C2-4398-BED0-8598CD434173} = {DB137F0B-9B62-4232-AE92-F7BE0280B8D3}
+ {5A1354DF-4989-4BB4-BC6B-D627C2E9FA13} = {DB137F0B-9B62-4232-AE92-F7BE0280B8D3}
+ {0991423A-DBF6-4C89-B365-A1DF1EB32E42} = {DB137F0B-9B62-4232-AE92-F7BE0280B8D3}
+ {8C59E80D-C4E4-4F36-9AD8-47C40F6E58B4} = {DB137F0B-9B62-4232-AE92-F7BE0280B8D3}
+ {DC1CCE11-CB91-40FA-9C47-4D9EB5D67BFD} = {0D37CE59-B0EF-4F3C-B9EB-8557E53A448B}
+ {DFB936AD-90EE-4B4F-941E-4F4A636F0D92} = {0D37CE59-B0EF-4F3C-B9EB-8557E53A448B}
+ {1F1AC7CD-D154-45BB-8EAF-804CA8055F5A} = {FEB825FA-4AD8-425D-8E4A-B5A18EE1B81C}
+ {BF38FB72-B380-4196-AF8C-95749D726C61} = {FEB825FA-4AD8-425D-8E4A-B5A18EE1B81C}
+ {6e59af58-f635-459a-9a35-c9ac41c00339} = {FEB825FA-4AD8-425D-8E4A-B5A18EE1B81C}
+ {4AC2D5F1-F671-480C-A075-6BF62B3721B2} = {FEB825FA-4AD8-425D-8E4A-B5A18EE1B81C}
+ {DBCF20A1-BA13-4582-BFA9-74DE4D987B73} = {FEB825FA-4AD8-425D-8E4A-B5A18EE1B81C}
+ {e1b288a2-08ee-4318-8bbb-8ab72c69e33e} = {FEB825FA-4AD8-425D-8E4A-B5A18EE1B81C}
+ {7C96B65D-28A5-4F28-A35B-8D83CE831EE8} = {FEB825FA-4AD8-425D-8E4A-B5A18EE1B81C}
+ {9196DD8A-B4D4-4780-8742-C5762E547FC2} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2}
+ {4B8F0F98-8BE1-402B-AA8B-C8D548577B38} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2}
+ {7D5C266F-D6FF-4D14-B315-0C0FC6C4EF51} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2}
+ {64A3E5E6-90BF-47F6-94DF-68C94B62C817} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2}
+ {8A462940-E5E9-4E85-982D-D4C006EE31D4} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2}
+ {D022A6CE-7438-41E8-AC64-F2DE18EC54C6} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2}
+ {6604365C-C702-4C10-9BA8-637F1E3D4D0D} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2}
+ {918487B7-2153-4618-BBB3-344DBDDF2A2A} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2}
+ {F93E52FD-DA66-4CE5-A0CB-BCD902811122} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2}
+ {5EEB99CF-EA2B-4733-80A6-CE9192D68170} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2}
+ {082DCD64-EE32-4151-A50F-E139CF754CC0} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2}
+ {08ce9972-283b-44f4-82fa-966f7dfa6b7a} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2}
+ {1F261725-6318-4434-A1B1-6C70CE4CD324} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2}
+ {E54A5AD2-418D-4A85-BA5E-CD803DE38715} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2}
+ {17F4D7E0-6933-4C2E-8714-FD7E98D625D5} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2}
+ {3EAA45A9-735C-4AC7-A799-947B93EA449D} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2}
+ {BDDDCD01-D2FE-4EAD-9425-4B6B91922C7C} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2}
+ {461606BD-E824-4D0A-8CBA-01810B1F5E02} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2}
+ {6CEEC0D9-FA00-4EE3-9A1C-39B7ACC882FD} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2}
+ {D721EAA4-8A40-4EF0-A011-5862159BE621} = {6CEEC0D9-FA00-4EE3-9A1C-39B7ACC882FD}
+ {93B2D6DF-7588-40C0-8A35-CA0DD7328FC3} = {6CEEC0D9-FA00-4EE3-9A1C-39B7ACC882FD}
+ {51783FC4-D8D2-4BFB-A1F1-AC8857CF3ED0} = {6CEEC0D9-FA00-4EE3-9A1C-39B7ACC882FD}
+ {87C0E3D9-0DFD-4F6D-8E38-408AAF73F4EE} = {6CEEC0D9-FA00-4EE3-9A1C-39B7ACC882FD}
+ {000E4F64-5D0D-4EB1-B0BF-1A62ADBC6EAD} = {BDDDCD01-D2FE-4EAD-9425-4B6B91922C7C}
+ {869951D5-A0D6-4DC6-9F1D-E6B9A12AC446} = {BDDDCD01-D2FE-4EAD-9425-4B6B91922C7C}
+ {E6F4983F-DE41-4AEC-88E7-1FA9AFB4E6FF} = {BDDDCD01-D2FE-4EAD-9425-4B6B91922C7C}
+ {B08385CD-F0CC-488C-B4F4-EEB34B6D2688} = {6604365C-C702-4C10-9BA8-637F1E3D4D0D}
+ {1D18D788-F7EE-4585-A23B-34DC8EC63CB8} = {6604365C-C702-4C10-9BA8-637F1E3D4D0D}
+ {EC06F96A-AEEC-49D6-B03D-AB87C6EB674C} = {6604365C-C702-4C10-9BA8-637F1E3D4D0D}
{3A9AE6AA-BC07-4A2F-972C-581E3AE2F195} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C}
- {924EE450-603D-49C1-A8E5-4AFAA31CE6F3} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486}
- {8035765F-D51F-4A0C-A746-2FD100E19419} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486}
- {80318B5F-A25D-45AB-8A95-EF31D2370A4C} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486}
- {2748AD25-9C63-4E12-877B-4DCE96FBED54} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486}
- {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486}
- {1152B71B-3C05-4598-B20D-823B5D40559E} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486}
+ {2D18BE89-D210-49EB-A9DD-2246FBB3DF6D} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C}
+ {D3C782BA-178E-4235-A3BA-8C11DEBB6BEE} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C}
+ {4139CCF6-FB49-4A9D-B2CF-331E9EA3198D} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C}
+ {E73BB233-D88B-44A7-A98F-D71EE158381D} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C}
B13EFF7F-7EA4-4B68-A375-D112105E9182 = {5A3EBEBA-0560-41C1-966B-23F7D03A5486}
+ {1152B71B-3C05-4598-B20D-823B5D40559E} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486}
+ {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486}
+ {2748AD25-9C63-4E12-877B-4DCE96FBED54} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486}
+ {80318B5F-A25D-45AB-8A95-EF31D2370A4C} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486}
+ {8035765F-D51F-4A0C-A746-2FD100E19419} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486}
+ {924EE450-603D-49C1-A8E5-4AFAA31CE6F3} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486}
EndGlobalSection
EndGlobal