Author: mhutch
Date: 2008-01-02 20:11:42 -0500 (Wed, 02 Jan 2008)
New Revision: 92142

Modified:
   trunk/monodevelop/main/src/addins/VBNetBinding/ChangeLog
   trunk/monodevelop/main/src/addins/VBNetBinding/Parser/Parser.cs
Log:
* Parser/Parser.cs: Merge some code from C# binding so that VB parser
  actually tags classes with the filename in which they're defined.
  Fixes CodeBehind grouping and double-clicking on items in the class
  pad.

Modified: trunk/monodevelop/main/src/addins/VBNetBinding/ChangeLog
===================================================================
--- trunk/monodevelop/main/src/addins/VBNetBinding/ChangeLog    2008-01-03 
01:05:18 UTC (rev 92141)
+++ trunk/monodevelop/main/src/addins/VBNetBinding/ChangeLog    2008-01-03 
01:11:42 UTC (rev 92142)
@@ -1,5 +1,11 @@
 2008-01-02  Michael Hutchinson <[EMAIL PROTECTED]> 
 
+       * Parser/Parser.cs: Merge some code from C# binding so that VB parser
+         actually tags classes with the filename in which they're defined. 
Fixes
+         CodeBehind grouping and double-clicking on items in the class pad.
+
+2008-01-02  Michael Hutchinson <[EMAIL PROTECTED]> 
+
        * VBNetBinding.mdp, Makefile.am, VBLanguageBinding.cs, 
VBCodeGenerator.cs:
          Import VB.NET CodeDOM generator from Mono to get partial class support
          and keyword escaping support.

Modified: trunk/monodevelop/main/src/addins/VBNetBinding/Parser/Parser.cs
===================================================================
--- trunk/monodevelop/main/src/addins/VBNetBinding/Parser/Parser.cs     
2008-01-03 01:05:18 UTC (rev 92141)
+++ trunk/monodevelop/main/src/addins/VBNetBinding/Parser/Parser.cs     
2008-01-03 01:11:42 UTC (rev 92142)
@@ -91,36 +91,33 @@
                                        }
                                }
                        }
-               }
-               
-               public ICompilationUnitBase Parse(string fileName)
+               }
+               
+               public ICompilationUnitBase Parse(string fileName)
+               {
+                       using (ICSharpCode.NRefactory.IParser p = 
ICSharpCode.NRefactory.ParserFactory.CreateParser (SupportedLanguage.VBNet, new 
StreamReader(fileName))) {
+                               return Parse (p, fileName);
+                       }
+               }
+               
+               public ICompilationUnitBase Parse(string fileName, string 
fileContent)
+               {
+                       using (ICSharpCode.NRefactory.IParser p = 
ICSharpCode.NRefactory.ParserFactory.CreateParser (SupportedLanguage.VBNet, new 
StringReader(fileContent))) {
+                               return Parse (p, fileName);
+                       }
+               }
+               
+               ICompilationUnit Parse (ICSharpCode.NRefactory.IParser p, 
string fileName)
                {
-                       ICSharpCode.NRefactory.IParser p = 
ICSharpCode.NRefactory.ParserFactory.CreateParser (SupportedLanguage.VBNet, new 
StreamReader(fileName));
-                       
                        p.Parse();
                        
                        VBNetVisitor visitor = new VBNetVisitor();
                        visitor.VisitCompilationUnit(p.CompilationUnit, null);
-                       //visitor.Cu.FileName = fileName;
-                       visitor.Cu.ErrorsDuringCompile = p.Errors.Count > 0;
-                       RetrieveRegions(visitor.Cu, p.Lexer.SpecialTracker);
-                       
-                       AddCommentTags(visitor.Cu, p.Lexer.TagComments);
-                       return visitor.Cu;
-               }
-               
-               public ICompilationUnitBase Parse(string fileName, string 
fileContent)
-               {
-                       ICSharpCode.NRefactory.IParser p = 
ICSharpCode.NRefactory.ParserFactory.CreateParser (SupportedLanguage.VBNet, new 
StringReader(fileContent));
-                       
-                       p.Parse();
-                       
-                       VBNetVisitor visitor = new VBNetVisitor();
-                       visitor.VisitCompilationUnit (p.CompilationUnit, null);
-                       //visitor.Cu.FileName = fileName;
-                       visitor.Cu.ErrorsDuringCompile = p.Errors.Count > 0;
+                       visitor.Cu.ErrorsDuringCompile = p.Errors.Count > 0;
                        visitor.Cu.Tag = p.CompilationUnit;
                        RetrieveRegions(visitor.Cu, p.Lexer.SpecialTracker);
+                       foreach (IClass c in visitor.Cu.Classes)
+                               c.Region.FileName = fileName;
                        AddCommentTags(visitor.Cu, p.Lexer.TagComments);
                        return visitor.Cu;
                }

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to