Browse Source

Fixed other enum base type context.

newNRvisualizers
Mike Krüger 13 years ago
parent
commit
0326e93e02
  1. 5
      ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs
  2. 13
      ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/EnumContextTests.cs

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

@ -468,7 +468,12 @@ namespace ICSharpCode.NRefactory.CSharp.Completion @@ -468,7 +468,12 @@ namespace ICSharpCode.NRefactory.CSharp.Completion
return null;
case ":":
if (currentMember == null) {
token = GetPreviousToken(ref tokenIndex, false);
token = GetPreviousToken(ref tokenIndex, false);
if (token == "enum")
return HandleEnumContext();
var wrapper = new CompletionDataWrapper(this);
AddTypesAndNamespaces(wrapper, GetState(), null, t => currentType != null ? !currentType.ReflectionName.Equals(t.ReflectionName) : true);
return wrapper.Result;
}

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

@ -127,6 +127,19 @@ enum Name : $b$ @@ -127,6 +127,19 @@ enum Name : $b$
Assert.IsNull(provider.Find("char"), "type 'char' found.");
});
}
[Test()]
public void TestEnumBaseTypesAutoPopup()
{
string[] integralTypes = { "byte", "sbyte", "short", "int", "long", "ushort", "uint", "ulong" };
var provider = CodeCompletionBugTests.CreateProvider(
@"using System;
$enum Name : $
");
foreach (var type in integralTypes)
Assert.IsNotNull(provider.Find(type), "value '" + type + "' not found.");
Assert.IsNull(provider.Find("char"), "type 'char' found.");
}
}
}

Loading…
Cancel
Save