Browse Source

Fixed bug in parameter completion.

newNRvisualizers
Mike Krüger 13 years ago
parent
commit
be113cf37b
  1. 8
      ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngineBase.cs
  2. 21
      ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/ParameterCompletionTests.cs

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

@ -200,6 +200,12 @@ namespace ICSharpCode.NRefactory.CSharp.Completion @@ -200,6 +200,12 @@ namespace ICSharpCode.NRefactory.CSharp.Completion
}
parameter.Push (0);
break;
case '=':
if (nextCh == '>') {
i++;
continue;
}
break;
case '>':
if (inString || inChar || inVerbatimString || inSingleComment || inMultiLineComment) {
break;
@ -705,7 +711,7 @@ namespace ICSharpCode.NRefactory.CSharp.Completion @@ -705,7 +711,7 @@ namespace ICSharpCode.NRefactory.CSharp.Completion
{
SyntaxTree baseUnit;
baseUnit = ParseStub("a", false);
var section = baseUnit.GetNodeAt<AttributeSection>(location.Line, location.Column - 2);
var attr = section != null ? section.Attributes.LastOrDefault() : null;
if (attr != null) {

21
ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/ParameterCompletionTests.cs

@ -985,5 +985,26 @@ public class B @@ -985,5 +985,26 @@ public class B
Assert.IsNotNull (provider, "provider was not created.");
Assert.AreEqual (1, provider.Count);
}
[Test()]
public void TestLambdaCase()
{
IParameterDataProvider provider = CreateProvider(
@"using System;
class TestClass
{
void F (Action i, int foo)
{
$F (()=> Something(),$
}
}
");
Assert.IsTrue (provider != null && provider.Count == 1);
}
}
}
Loading…
Cancel
Save