[svn] r7105: vs-plugin/trunk: Nemerle.Compiler.Utils/Nemerle.Completion2/CodeModel/Project.n Nemerle.VsInt...

IT svnadmin at nemerle.org
Sun Dec 17 04:34:10 CET 2006


Log:
Fixed dropdown locations for partial classes.

Author: IT
Date: Sun Dec 17 04:34:05 2006
New Revision: 7105

Modified:
   vs-plugin/trunk/Nemerle.Compiler.Utils/Nemerle.Completion2/CodeModel/Project.n
   vs-plugin/trunk/Nemerle.VsIntegration/LanguageService/NemerleDropDownMember.cs
   vs-plugin/trunk/Nemerle.VsIntegration/LanguageService/NemerleTypeAndMemberDropdownBars .cs

Modified: vs-plugin/trunk/Nemerle.Compiler.Utils/Nemerle.Completion2/CodeModel/Project.n
==============================================================================
--- vs-plugin/trunk/Nemerle.Compiler.Utils/Nemerle.Completion2/CodeModel/Project.n	(original)
+++ vs-plugin/trunk/Nemerle.Compiler.Utils/Nemerle.Completion2/CodeModel/Project.n	Sun Dec 17 04:34:05 2006
@@ -329,7 +329,14 @@
       foreach (method when !skip(method) in GetAllMetodsDefinedInFile(fileIndex))
       {
         //method.ResetBody(); //HACK!!!
+#if !DEBUG
+        try
+        {
+#endif
         method.EnsureCompiled();
+#if !DEBUG
+        } catch { _ => () }
+#endif
         foreach (cm in method.BodyMessages)
           yield cm;
       }

Modified: vs-plugin/trunk/Nemerle.VsIntegration/LanguageService/NemerleDropDownMember.cs
==============================================================================
--- vs-plugin/trunk/Nemerle.VsIntegration/LanguageService/NemerleDropDownMember.cs	(original)
+++ vs-plugin/trunk/Nemerle.VsIntegration/LanguageService/NemerleDropDownMember.cs	Sun Dec 17 04:34:05 2006
@@ -14,7 +14,7 @@
 {
 	class NemerleDropDownMember : DropDownMember
 	{
-		NemerleDropDownMember(
+		public NemerleDropDownMember(
 			TypeBuilder tb, int fileIndex, string label, TextSpan span, int glyph, DROPDOWNFONTATTR fontAttribute)
 			: base(label, span, glyph, fontAttribute)
 		{
@@ -25,20 +25,6 @@
 		TypeBuilder _typeBuilder;
 		int         _fileIndex;
 
-		public static NemerleDropDownMember Create(TypeBuilder tb, int fileIndex)
-		{
-			string label = tb.ToString();
-
-			TextSpan span = new TextSpan();
-
-			span.iStartLine  = tb.Location.Line - 1;
-			span.iStartIndex = tb.Location.Column - 1;
-			span.iEndLine    = tb.Location.EndLine - 1;
-			span.iEndIndex   = tb.Location.EndColumn - 1;
-
-			return new NemerleDropDownMember(tb, fileIndex, label, span, GetGlyph(tb), GetAttr(tb));
-		}
-
 		private List<DropDownMember> _members;
 		public  List<DropDownMember>  Members
 		{
@@ -67,14 +53,14 @@
 			}
 		}
 
-		private static DROPDOWNFONTATTR GetAttr(TypeBuilder builder)
+		public static DROPDOWNFONTATTR GetAttr(TypeBuilder builder)
 		{
 			return
 				builder.IsVariantOption? DROPDOWNFONTATTR.FONTATTR_ITALIC:
 				                         DROPDOWNFONTATTR.FONTATTR_PLAIN;
 		}
 
-		private static int GetGlyph(TypeBuilder builder)
+		public static int GetGlyph(TypeBuilder builder)
 		{
 			int kind = 
 				builder.IsDelegate?       2:

Modified: vs-plugin/trunk/Nemerle.VsIntegration/LanguageService/NemerleTypeAndMemberDropdownBars .cs
==============================================================================
--- vs-plugin/trunk/Nemerle.VsIntegration/LanguageService/NemerleTypeAndMemberDropdownBars .cs	(original)
+++ vs-plugin/trunk/Nemerle.VsIntegration/LanguageService/NemerleTypeAndMemberDropdownBars .cs	Sun Dec 17 04:34:05 2006
@@ -44,12 +44,35 @@
 			{
 				ret = true;
 
-				List<NemerleDropDownMember> list = _source.ProjectInfo.Project
-					.GetTypes(_source.FileIndex)
-					.ConvertAll<NemerleDropDownMember>(delegate(TypeBuilder tb)
+				List<TypeBuilder> builders = _source.ProjectInfo.Project.GetTypes(_source.FileIndex);
+
+				List<NemerleDropDownMember> list = new List<NemerleDropDownMember>();
+
+				foreach (TypeBuilder tb in builders)
 					{
-						return NemerleDropDownMember.Create(tb, _source.FileIndex);
-					});
+					string label = tb.ToString();
+
+					foreach (Location loc in tb.PartsLocation)
+					{
+						if (loc.FileIndex == _source.FileIndex)
+						{
+							TextSpan span = new TextSpan();
+
+							span.iStartLine  = loc.Line - 1;
+							span.iStartIndex = loc.Column - 1;
+							span.iEndLine    = loc.EndLine - 1;
+							span.iEndIndex   = loc.EndColumn - 1;
+
+							list.Add(new NemerleDropDownMember(
+								tb,
+								_source.FileIndex,
+								label,
+								span,
+								NemerleDropDownMember.GetGlyph(tb),
+								NemerleDropDownMember.GetAttr(tb)));
+						}
+					}
+				}
 
 				list.Sort(delegate(NemerleDropDownMember m1, NemerleDropDownMember m2)
 				{



More information about the svn mailing list