Browse Source

Added some more naming contexts.

newNRvisualizers
Mike Krüger 14 years ago
parent
commit
e7833ba973
  1. 4
      ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs
  2. 28
      ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/NameContextTests.cs

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

@ -451,10 +451,12 @@ namespace ICSharpCode.NRefactory.CSharp.Completion @@ -451,10 +451,12 @@ namespace ICSharpCode.NRefactory.CSharp.Completion
// Do not pop up completion on identifier identifier (should be handled by keyword completion).
tokenIndex = offset - 1;
token = GetPreviousToken (ref tokenIndex, false);
if (token == "class" || token == "namespace") // after these always follows a name
if (token == "class" || token == "interface" || token == "struct" || token == "enum" || token == "namespace") // after these always follows a name
return null;
int prevTokenIndex = tokenIndex;
var prevToken2 = GetPreviousToken (ref prevTokenIndex, false);
if (prevToken2 == "delegate") // after these always follows a name
return null;
if (identifierStart == null && !string.IsNullOrEmpty (token) && !(IsInsideComment (tokenIndex) || IsInsideString (tokenIndex)) && (prevToken2 == ";" || prevToken2 == "{" || prevToken2 == "}")) {
char last = token [token.Length - 1];
if (char.IsLetterOrDigit (last) || last == '_' || token == ">") {

28
ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/NameContextTests.cs

@ -45,6 +45,34 @@ namespace ICSharpCode.NRefactory.CSharp.CodeCompletion @@ -45,6 +45,34 @@ namespace ICSharpCode.NRefactory.CSharp.CodeCompletion
Assert.IsTrue (provider == null || provider.Count == 0, "provider should be empty.");
}
[Test()]
public void TestStructName ()
{
var provider = CodeCompletionBugTests.CreateProvider (@"$struct n$");
Assert.IsTrue (provider == null || provider.Count == 0, "provider should be empty.");
}
[Test()]
public void TestInterfaceName ()
{
var provider = CodeCompletionBugTests.CreateProvider (@"$interface n$");
Assert.IsTrue (provider == null || provider.Count == 0, "provider should be empty.");
}
[Test()]
public void TestEnumName ()
{
var provider = CodeCompletionBugTests.CreateProvider (@"$enum n$");
Assert.IsTrue (provider == null || provider.Count == 0, "provider should be empty.");
}
[Test()]
public void TestDelegateName ()
{
var provider = CodeCompletionBugTests.CreateProvider (@"$delegate void n$");
Assert.IsTrue (provider == null || provider.Count == 0, "provider should be empty.");
}
[Test()]
public void TestClassTypeParameter ()
{

Loading…
Cancel
Save