Browse Source

Fixed completion bug.

pull/32/merge
Mike Krüger 13 years ago
parent
commit
4cac2f0b36
  1. 2
      ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs
  2. 15
      ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/PreProcessorTests.cs

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

@ -619,7 +619,7 @@ namespace ICSharpCode.NRefactory.CSharp.Completion @@ -619,7 +619,7 @@ namespace ICSharpCode.NRefactory.CSharp.Completion
if (IsInsideCommentStringOrDirective()) {
tokenIndex = offset;
token = GetPreviousToken(ref tokenIndex, false);
if (IsInPreprocessorDirective() && (token.Length == 1 || controlSpace)) {
if (IsInPreprocessorDirective() && (token.Length == 1 && char.IsLetter (completionChar) || controlSpace)) {
while (token != null && document.GetCharAt (tokenIndex - 1) != '#') {
token = GetPreviousToken(ref tokenIndex, false);
}

15
ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/PreProcessorTests.cs

@ -73,9 +73,22 @@ namespace ICSharpCode.NRefactory.CSharp.CodeCompletion @@ -73,9 +73,22 @@ namespace ICSharpCode.NRefactory.CSharp.CodeCompletion
{
var provider = CodeCompletionBugTests.CreateProvider (@"$#if $");
Assert.IsTrue (provider == null || provider.Count == 0);
provider = CodeCompletionBugTests.CreateProvider (@"$#if $", true);
Assert.IsNotNull (provider.Find ("DEBUG"), "define 'DEBUG' not found.");
}
/// <summary>
///Bug 10079 - Cannot type && conditional
/// </summary>
[Test]
public void TestBug10079 ()
{
var provider = CodeCompletionBugTests.CreateProvider (@"$#if TRUE &$");
Assert.IsTrue (provider == null || provider.Count == 0);
provider = CodeCompletionBugTests.CreateProvider (@"$#if TRUE && $", true);
Assert.IsNotNull (provider.Find ("DEBUG"), "define 'DEBUG' not found.");
}
}
}

Loading…
Cancel
Save