From 4cac2f0b360822474189045893665cb3b51fd933 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20Kr=C3=BCger?= Date: Wed, 6 Feb 2013 15:12:31 +0100 Subject: [PATCH] Fixed completion bug. --- .../Completion/CSharpCompletionEngine.cs | 2 +- .../CSharp/CodeCompletion/PreProcessorTests.cs | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs b/ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs index 500c743024..d013ebdc9a 100644 --- a/ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs +++ b/ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs @@ -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); } diff --git a/ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/PreProcessorTests.cs b/ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/PreProcessorTests.cs index 72ea1b0555..68e3a56428 100644 --- a/ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/PreProcessorTests.cs +++ b/ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/PreProcessorTests.cs @@ -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."); } + + /// + ///Bug 10079 - Cannot type && conditional + /// + [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."); + } } }