Author: fejj
Date: 2007-05-03 17:33:17 -0400 (Thu, 03 May 2007)
New Revision: 76652
Modified:
trunk/monodevelop/Extras/CSharpBinding/ChangeLog
trunk/monodevelop/Extras/CSharpBinding/Parser/CodeGenerator.cs
Log:
2007-05-03 Jeffrey Stedfast <[EMAIL PROTECTED]>
* Parser/CodeGenerator.cs (GetMemberNamePosition): Fixed IEvent
and IProperty logic and also greatly simplified the overall code.
Modified: trunk/monodevelop/Extras/CSharpBinding/ChangeLog
===================================================================
--- trunk/monodevelop/Extras/CSharpBinding/ChangeLog 2007-05-03 21:26:35 UTC
(rev 76651)
+++ trunk/monodevelop/Extras/CSharpBinding/ChangeLog 2007-05-03 21:33:17 UTC
(rev 76652)
@@ -1,5 +1,10 @@
2007-05-03 Jeffrey Stedfast <[EMAIL PROTECTED]>
+ * Parser/CodeGenerator.cs (GetMemberNamePosition): Fixed IEvent
+ and IProperty logic and also greatly simplified the overall code.
+
+2007-05-03 Jeffrey Stedfast <[EMAIL PROTECTED]>
+
* Parser/CodeGenerator.cs (FindVariableNamePosition): New
overloaded function to get the offset of a variable name.
(FindVariableReferences): New.
Modified: trunk/monodevelop/Extras/CSharpBinding/Parser/CodeGenerator.cs
===================================================================
--- trunk/monodevelop/Extras/CSharpBinding/Parser/CodeGenerator.cs
2007-05-03 21:26:35 UTC (rev 76651)
+++ trunk/monodevelop/Extras/CSharpBinding/Parser/CodeGenerator.cs
2007-05-03 21:33:17 UTC (rev 76652)
@@ -124,48 +124,34 @@
protected override int GetMemberNamePosition (IEditableTextFile
file, IMember member)
{
- int pos1 = file.GetPositionFromLineColumn
(member.Region.BeginLine, member.Region.BeginColumn);
- int pos2 = file.GetPositionFromLineColumn
(member.Region.EndLine, member.Region.EndColumn);
- string txt = file.GetText (pos1, pos2);
+ int begin = file.GetPositionFromLineColumn
(member.Region.BeginLine, member.Region.BeginColumn);
+ int end = file.GetPositionFromLineColumn
(member.Region.EndLine, member.Region.EndColumn);
+ string txt = file.GetText (begin, end);
+ string name = member.Name;
+ int len = txt.Length;
+ int pos = -1;
- if (member is IField)
- {
- int i = txt.IndexOf ('=');
- if (i == -1) i = txt.Length;
- int p = txt.LastIndexOf (member.Name, i);
- if (p == -1) return -1;
- return pos1 + p;
- }
- else if (member is IMethod)
- {
- int i = txt.IndexOf ('(');
- if (i == -1) return -1;
- int p;
+ if (member is IField) {
+ if ((len = txt.IndexOf ('=')) == -1)
+ len = txt.Length;
+ } else if (member is IMethod) {
+ if ((len = txt.IndexOf ('(')) == -1)
+ return -1;
+
if (((IMethod) member).IsConstructor)
- p = txt.LastIndexOf
(member.DeclaringType.Name, i);
- else
- p = txt.LastIndexOf (member.Name, i);
- if (p == -1) return -1;
- return pos1 + p;
+ name = member.DeclaringType.Name;
+ } else if (member is IProperty) {
+ // no variables to change
+ } else if (member is IEvent) {
+ // no variables to change
+ } else {
+ return -1;
}
- else if (member is IProperty)
- {
- int i = txt.IndexOf ('{');
- if (i == -1) return -1;
- int p = txt.LastIndexOf (member.Name, i);
- if (p == -1) return -1;
- return pos1 + p;
- }
- else if (member is IEvent)
- {
- int i = txt.IndexOf ('{');
- if (i == -1) i = txt.Length;
- int p = txt.LastIndexOf (member.Name, i);
- if (p == -1) return -1;
- return pos1 + p;
- }
- return -1;
+ if ((pos = txt.LastIndexOf (name, len)) == -1)
+ return -1;
+
+ return begin + pos;
}
public override MemberReferenceCollection FindMemberReferences
(RefactorerContext ctx, string fileName, IClass cls, IMember member)
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches