diff --git a/ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs b/ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs index f9aeeac06a..3b0b5cbb5d 100644 --- a/ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs +++ b/ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs @@ -575,7 +575,7 @@ namespace ICSharpCode.NRefactory.CSharp.Completion IEnumerable HandleEnumContext () { - var cu = ParseStub ("enumMefwefwefwember", false); + var cu = ParseStub ("a", false); if (cu == null) return null; var member = cu.GetNodeAt (location); diff --git a/ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngineBase.cs b/ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngineBase.cs index 7a9f96b052..ad68973b38 100644 --- a/ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngineBase.cs +++ b/ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngineBase.cs @@ -312,15 +312,13 @@ namespace ICSharpCode.NRefactory.CSharp.Completion wrapper.Append ('}'); TextLocation memberLocation; - if (currentMember != null) { + if (currentMember != null && currentType.Kind != TypeKind.Enum) { memberLocation = currentMember.Region.Begin; } else if (currentType != null) { memberLocation = currentType.Region.Begin; } else { memberLocation = new TextLocation (1, 1); } - Console.WriteLine ("--"); - Console.WriteLine (wrapper); using (var stream = new System.IO.StringReader (wrapper.ToString ())) { try { var parser = new CSharpParser (); diff --git a/ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/EnumContextTests.cs b/ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/EnumContextTests.cs index a991bf215c..6f92aa32ab 100644 --- a/ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/EnumContextTests.cs +++ b/ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/EnumContextTests.cs @@ -77,5 +77,23 @@ enum Name { 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."); + }); + } } }