diff --git a/ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs b/ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs index 48ee7f0480..063b73256e 100644 --- a/ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs +++ b/ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs @@ -432,7 +432,9 @@ namespace ICSharpCode.NRefactory.CSharp.Completion if (identifierStart == null && !string.IsNullOrEmpty (token) && !(IsInsideComment (tokenIndex) || IsInsideString (tokenIndex))) { char last = token [token.Length - 1]; if (char.IsLetterOrDigit (last) || last == '_' || token == ">") { - return controlSpace ? DefaultControlSpaceItems () : null; + return HandleKeywordCompletion (tokenIndex, token); + + //return controlSpace ? DefaultControlSpaceItems () : null; } } if (identifierStart == null) @@ -935,6 +937,9 @@ namespace ICSharpCode.NRefactory.CSharp.Completion case "internal": case "sealed": case "static": + var accessorContext = HandleAccessorContext (); + if (accessorContext != null) + return accessorContext; wrapper = new CompletionDataWrapper (this); var state = GetState (); AddTypesAndNamespaces (wrapper, state, null, null, m => false); diff --git a/ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/KeywordTests.cs b/ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/KeywordTests.cs index a48dcf4c75..ddced722da 100644 --- a/ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/KeywordTests.cs +++ b/ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/KeywordTests.cs @@ -129,6 +129,21 @@ class Test }); } + [Test()] + public void GetSetKeywordTestAfterModifier () + { + CodeCompletionBugTests.CombinedProviderTest ( +@"class Test +{ + public int MyProperty { + internal $g$ +} +", provider => { + Assert.IsNotNull (provider.Find ("get"), "keyword 'get' not found."); + Assert.IsNotNull (provider.Find ("set"), "keyword 'set' not found."); + }); + } + [Test()] public void AddRemoveKeywordTest () {