Browse Source

Fixed 'Bug 4604 - [Resolver] Attribute Properties are not offered

valid autocomplete choices'.
newNRvisualizers
Mike Krüger 13 years ago
parent
commit
63009ac085
  1. 9
      ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs
  2. 25
      ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/CodeCompletionBugTests.cs

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

@ -501,7 +501,8 @@ namespace ICSharpCode.NRefactory.CSharp.Completion @@ -501,7 +501,8 @@ namespace ICSharpCode.NRefactory.CSharp.Completion
evt,
parameterDefinition,
currentMember,
currentType));
currentType)
);
}
return wrapper.Result;
@ -809,7 +810,7 @@ namespace ICSharpCode.NRefactory.CSharp.Completion @@ -809,7 +810,7 @@ namespace ICSharpCode.NRefactory.CSharp.Completion
nodes.Add(n.Parent);
}
var astResolver = new CSharpAstResolver(csResolver, identifierStart.Unit, CSharpParsedFile);
astResolver.ApplyNavigator(new NodeListResolveVisitorNavigator (nodes));
astResolver.ApplyNavigator(new NodeListResolveVisitorNavigator(nodes));
try {
csResolver = astResolver.GetResolverStateBefore(n);
} catch (Exception) {
@ -1100,7 +1101,7 @@ namespace ICSharpCode.NRefactory.CSharp.Completion @@ -1100,7 +1101,7 @@ namespace ICSharpCode.NRefactory.CSharp.Completion
wrapper.Result.Add(factory.CreateLiteralCompletionData("global"));
if (!(node is AstType)) {
if (currentMember != null) {
if (currentMember != null || node is Expression) {
AddKeywords(wrapper, statementStartKeywords);
AddKeywords(wrapper, expressionLevelKeywords);
} else if (currentType != null) {
@ -1124,7 +1125,7 @@ namespace ICSharpCode.NRefactory.CSharp.Completion @@ -1124,7 +1125,7 @@ namespace ICSharpCode.NRefactory.CSharp.Completion
AddKeywords(wrapper, parameterTypePredecessorKeywords);
}
}
AddKeywords(wrapper, primitiveTypesKeywords);
if (currentMember != null) {
wrapper.AddCustom("var");

25
ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/CodeCompletionBugTests.cs

@ -5076,6 +5076,31 @@ public class Test @@ -5076,6 +5076,31 @@ public class Test
Assert.IsNotNull(provider.Find("static"), "'static' not found.");
});
}
/// <summary>
/// Bug 4604 - [Resolver] Attribute Properties are not offered valid autocomplete choices
/// </summary>
[Test()]
public void TestBug4604()
{
CombinedProviderTest(
@"
public sealed class MyAttribute : System.Attribute
{
public bool SomeBool {
get;
set;
}
}
$[MyAttribute(SomeBool=t$
public class Test
{
}
", provider => {
Assert.IsNotNull(provider.Find("true"), "'true' not found.");
Assert.IsNotNull(provider.Find("false"), "'false' not found.");
});
}
}
}

Loading…
Cancel
Save