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

Reply via email to