Browse Source

Fixed enum context.

newNRvisualizers
Mike Krüger 14 years ago
parent
commit
e69e9f13f5
  1. 2
      ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs
  2. 4
      ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngineBase.cs
  3. 18
      ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/EnumContextTests.cs

2
ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs

@ -575,7 +575,7 @@ namespace ICSharpCode.NRefactory.CSharp.Completion
IEnumerable<ICompletionData> HandleEnumContext () IEnumerable<ICompletionData> HandleEnumContext ()
{ {
var cu = ParseStub ("enumMefwefwefwember", false); var cu = ParseStub ("a", false);
if (cu == null) if (cu == null)
return null; return null;
var member = cu.GetNodeAt<EnumMemberDeclaration> (location); var member = cu.GetNodeAt<EnumMemberDeclaration> (location);

4
ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngineBase.cs

@ -312,15 +312,13 @@ namespace ICSharpCode.NRefactory.CSharp.Completion
wrapper.Append ('}'); wrapper.Append ('}');
TextLocation memberLocation; TextLocation memberLocation;
if (currentMember != null) { if (currentMember != null && currentType.Kind != TypeKind.Enum) {
memberLocation = currentMember.Region.Begin; memberLocation = currentMember.Region.Begin;
} else if (currentType != null) { } else if (currentType != null) {
memberLocation = currentType.Region.Begin; memberLocation = currentType.Region.Begin;
} else { } else {
memberLocation = new TextLocation (1, 1); memberLocation = new TextLocation (1, 1);
} }
Console.WriteLine ("--");
Console.WriteLine (wrapper);
using (var stream = new System.IO.StringReader (wrapper.ToString ())) { using (var stream = new System.IO.StringReader (wrapper.ToString ())) {
try { try {
var parser = new CSharpParser (); var parser = new CSharpParser ();

18
ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/EnumContextTests.cs

@ -77,5 +77,23 @@ enum Name {
Assert.IsNotNull (provider.Find ("Name"), "type 'Name' not found."); Assert.IsNotNull (provider.Find ("Name"), "type 'Name' not found.");
}); });
} }
[Test()]
public void TestEnumInitializerContinuation ()
{
CodeCompletionBugTests.CombinedProviderTest (
@"using System;
[Flags]
enum Name {
Flag1,
Flag2,
Combined $= Name.$
}
", provider => {
Assert.IsNotNull (provider.Find ("Flag1"), "value 'Flag1' not found.");
Assert.IsNotNull (provider.Find ("Flag2"), "value 'Flag2' not found.");
});
}
} }
} }

Loading…
Cancel
Save