[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