Browse Source

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

valid autocomplete choices'.
newNRvisualizers
Mike Krüger 14 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
evt, evt,
parameterDefinition, parameterDefinition,
currentMember, currentMember,
currentType)); currentType)
);
} }
return wrapper.Result; return wrapper.Result;
@ -809,7 +810,7 @@ namespace ICSharpCode.NRefactory.CSharp.Completion
nodes.Add(n.Parent); nodes.Add(n.Parent);
} }
var astResolver = new CSharpAstResolver(csResolver, identifierStart.Unit, CSharpParsedFile); var astResolver = new CSharpAstResolver(csResolver, identifierStart.Unit, CSharpParsedFile);
astResolver.ApplyNavigator(new NodeListResolveVisitorNavigator (nodes)); astResolver.ApplyNavigator(new NodeListResolveVisitorNavigator(nodes));
try { try {
csResolver = astResolver.GetResolverStateBefore(n); csResolver = astResolver.GetResolverStateBefore(n);
} catch (Exception) { } catch (Exception) {
@ -1100,7 +1101,7 @@ namespace ICSharpCode.NRefactory.CSharp.Completion
wrapper.Result.Add(factory.CreateLiteralCompletionData("global")); wrapper.Result.Add(factory.CreateLiteralCompletionData("global"));
if (!(node is AstType)) { if (!(node is AstType)) {
if (currentMember != null) { if (currentMember != null || node is Expression) {
AddKeywords(wrapper, statementStartKeywords); AddKeywords(wrapper, statementStartKeywords);
AddKeywords(wrapper, expressionLevelKeywords); AddKeywords(wrapper, expressionLevelKeywords);
} else if (currentType != null) { } else if (currentType != null) {
@ -1124,7 +1125,7 @@ namespace ICSharpCode.NRefactory.CSharp.Completion
AddKeywords(wrapper, parameterTypePredecessorKeywords); AddKeywords(wrapper, parameterTypePredecessorKeywords);
} }
} }
AddKeywords(wrapper, primitiveTypesKeywords); AddKeywords(wrapper, primitiveTypesKeywords);
if (currentMember != null) { if (currentMember != null) {
wrapper.AddCustom("var"); wrapper.AddCustom("var");

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

@ -5076,6 +5076,31 @@ public class Test
Assert.IsNotNull(provider.Find("static"), "'static' not found."); 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