diff --git a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/CSharpCompletionBinding.cs b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/CSharpCompletionBinding.cs index 0e30067cbc..d904b0c90f 100644 --- a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/CSharpCompletionBinding.cs +++ b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/CSharpCompletionBinding.cs @@ -163,6 +163,7 @@ namespace CSharpBinding switch (word) { case "using": if (IsInComment(editor)) return false; + // TODO: check if we are inside class/namespace editor.ShowCompletionWindow(new CtrlSpaceCompletionDataProvider(ExpressionContext.Namespace), ' '); return true; @@ -178,8 +179,10 @@ namespace CSharpBinding case "new": return ShowNewCompletion(editor); case "case": + if (IsInComment(editor)) return false; return DoCaseCompletion(editor); case "return": + if (IsInComment(editor)) return false; IMember m = GetCurrentMember(editor); if (m != null) { return ProvideContextCompletion(editor, m.ReturnType, ' '); diff --git a/src/AddIns/BackendBindings/VBNetBinding/Project/Src/VBNetCompletionBinding.cs b/src/AddIns/BackendBindings/VBNetBinding/Project/Src/VBNetCompletionBinding.cs index a002192988..3835a4a370 100644 --- a/src/AddIns/BackendBindings/VBNetBinding/Project/Src/VBNetCompletionBinding.cs +++ b/src/AddIns/BackendBindings/VBNetBinding/Project/Src/VBNetCompletionBinding.cs @@ -46,6 +46,13 @@ namespace VBNetBinding return base.HandleKeyPress(editor, ch); } + bool IsInComment(SharpDevelopTextAreaControl editor) + { + VBExpressionFinder ef = new VBExpressionFinder(); + int cursor = editor.ActiveTextAreaControl.Caret.Offset - 1; + return ef.FilterComments(editor.Document.GetText(0, cursor + 1), ref cursor) == null; + } + public override bool HandleKeyword(SharpDevelopTextAreaControl editor, string word) { // TODO: Assistance writing Methods/Fields/Properties/Events: @@ -53,24 +60,31 @@ namespace VBNetBinding // and possible return types. switch (word.ToLowerInvariant()) { case "imports": + if (IsInComment(editor)) return false; editor.ShowCompletionWindow(new CodeCompletionDataProvider(new ExpressionResult("Global", ExpressionContext.Importable)), ' '); return true; case "as": + if (IsInComment(editor)) return false; editor.ShowCompletionWindow(new CtrlSpaceCompletionDataProvider(ExpressionContext.Type), ' '); return true; case "new": + if (IsInComment(editor)) return false; editor.ShowCompletionWindow(new CtrlSpaceCompletionDataProvider(ExpressionContext.ObjectCreation), ' '); return true; case "inherits": + if (IsInComment(editor)) return false; editor.ShowCompletionWindow(new CtrlSpaceCompletionDataProvider(ExpressionContext.Type), ' '); return true; case "implements": + if (IsInComment(editor)) return false; editor.ShowCompletionWindow(new CtrlSpaceCompletionDataProvider(ExpressionContext.Interface), ' '); return true; case "overrides": + if (IsInComment(editor)) return false; editor.ShowCompletionWindow(new OverrideCompletionDataProvider(), ' '); return true; case "return": + if (IsInComment(editor)) return false; IMember m = GetCurrentMember(editor); if (m != null) { ProvideContextCompletion(editor, m.ReturnType, ' '); @@ -79,6 +93,7 @@ namespace VBNetBinding goto default; } case "option": + if (IsInComment(editor)) return false; editor.ShowCompletionWindow(new TextCompletionDataProvider("Explicit On", "Explicit Off", "Strict On",