Browse Source

Fixed some more attribute completion tests.

newNRvisualizers
mike 14 years ago
parent
commit
b0de87339a
  1. 12
      ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs
  2. 1
      ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngineBase.cs
  3. 24
      ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/CodeCompletionBugTests.cs

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

@ -158,13 +158,16 @@ namespace ICSharpCode.NRefactory.CSharp.Completion @@ -158,13 +158,16 @@ namespace ICSharpCode.NRefactory.CSharp.Completion
IEnumerable<ICompletionData> MagicKeyCompletion (char completionChar, bool controlSpace)
{
ExpressionResult expr;
Tuple<ResolveResult, CSharpResolver> resolveResult;
switch (completionChar) {
// Magic key completion
case ':':
case '.':
if (IsInsideCommentOrString ())
return Enumerable.Empty<ICompletionData> ();
var expr = GetExpressionBeforeCursor ();
expr = GetExpressionBeforeCursor ();
if (expr == null)
return null;
// do not complete <number>. (but <number>.<number>.)
@ -174,7 +177,7 @@ namespace ICSharpCode.NRefactory.CSharp.Completion @@ -174,7 +177,7 @@ namespace ICSharpCode.NRefactory.CSharp.Completion
return null;
}
var resolveResult = ResolveExpression (expr);
resolveResult = ResolveExpression (expr);
if (resolveResult == null)
return null;
if (expr.Node is AstType)
@ -797,8 +800,6 @@ namespace ICSharpCode.NRefactory.CSharp.Completion @@ -797,8 +800,6 @@ namespace ICSharpCode.NRefactory.CSharp.Completion
node = unit.GetNodeAt (location);
rr = ResolveExpression (node, unit);
}
Console.WriteLine ("!!!!!!!!!");
Console.WriteLine (Environment.StackTrace);
if (node is Identifier && node.Parent is ForeachStatement) {
var foreachStmt = (ForeachStatement)node.Parent;
foreach (var possibleName in GenerateNameProposals (foreachStmt.VariableType)) {
@ -1706,7 +1707,6 @@ namespace ICSharpCode.NRefactory.CSharp.Completion @@ -1706,7 +1707,6 @@ namespace ICSharpCode.NRefactory.CSharp.Completion
if (IsAttributeContext (resolvedNode) && name.EndsWith ("Attribute") && name.Length > "Attribute".Length)
name = name.Substring (0, name.Length - "Attribute".Length);
Console.WriteLine ("name:" + name);
result.AddType (cl, name);
}
foreach (var ns in nr.Namespace.ChildNamespaces) {
@ -2009,7 +2009,7 @@ namespace ICSharpCode.NRefactory.CSharp.Completion @@ -2009,7 +2009,7 @@ namespace ICSharpCode.NRefactory.CSharp.Completion
{
CompilationUnit baseUnit;
if (currentMember == null) {
baseUnit = ParseStub ("st {}", false);
baseUnit = ParseStub ("a", false);
var type = baseUnit.GetNodeAt<MemberType> (location);
if (type == null) {
baseUnit = ParseStub ("a;", false);

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

@ -359,7 +359,6 @@ namespace ICSharpCode.NRefactory.CSharp.Completion @@ -359,7 +359,6 @@ namespace ICSharpCode.NRefactory.CSharp.Completion
}
if (currentMember == null && lastBracket == ']') {
// attribute context
wrapper.Append ("class GenAttr {}");
} else {
if (!didAppendSemicolon)
wrapper.Append (';');

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

@ -4600,6 +4600,14 @@ class MainClass @@ -4600,6 +4600,14 @@ class MainClass
});
}
[Test()]
public void Test3655Case2Part2 ()
{
CombinedProviderTest (@"$[assembly:System.$", provider => {
Assert.IsNotNull (provider.Find ("Runtime"), "'Runtime' not found.");
});
}
[Test()]
public void Test3655Case3 ()
{
@ -4608,6 +4616,14 @@ class MainClass @@ -4608,6 +4616,14 @@ class MainClass
});
}
[Test()]
public void Test3655Case3Part2 ()
{
CombinedProviderTest (@"$[assembly:System.Runtime.$", provider => {
Assert.IsNotNull (provider.Find ("CompilerServices"), "'CompilerServices' not found.");
});
}
[Test()]
public void Test3655Case4 ()
{
@ -4615,5 +4631,13 @@ class MainClass @@ -4615,5 +4631,13 @@ class MainClass
Assert.IsNotNull (provider.Find ("InternalsVisibleTo"), "'InternalsVisibleTo' not found.");
});
}
[Test()]
public void Test3655Case4Part2 ()
{
CombinedProviderTest (@"$[assembly:System.Runtime.CompilerServices.$", provider => {
Assert.IsNotNull (provider.Find ("InternalsVisibleTo"), "'InternalsVisibleTo' not found.");
});
}
}
}

Loading…
Cancel
Save