Browse Source

Fixed bug that caused keyword-completion to be active inside comments in some cases.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@2121 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 19 years ago
parent
commit
bc2b1c8a57
  1. 3
      src/AddIns/BackendBindings/CSharpBinding/Project/Src/CSharpCompletionBinding.cs
  2. 15
      src/AddIns/BackendBindings/VBNetBinding/Project/Src/VBNetCompletionBinding.cs

3
src/AddIns/BackendBindings/CSharpBinding/Project/Src/CSharpCompletionBinding.cs

@ -163,6 +163,7 @@ namespace CSharpBinding @@ -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 @@ -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, ' ');

15
src/AddIns/BackendBindings/VBNetBinding/Project/Src/VBNetCompletionBinding.cs

@ -46,6 +46,13 @@ namespace VBNetBinding @@ -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 @@ -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 @@ -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",

Loading…
Cancel
Save