From e615548bfaae3ff31f0ffbd54a2ff4c4a27e945a Mon Sep 17 00:00:00 2001 From: Siegfried Pammer Date: Sat, 13 Nov 2010 18:43:22 +0100 Subject: [PATCH] fixed http://community.sharpdevelop.net/forums/t/12236.aspx --- .../VBNetBinding/Project/Src/CompletionDataHelper.cs | 9 ++++++++- .../VBNetBinding/Project/Src/VBNetCompletionBinding.cs | 4 ++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/AddIns/BackendBindings/VBNetBinding/Project/Src/CompletionDataHelper.cs b/src/AddIns/BackendBindings/VBNetBinding/Project/Src/CompletionDataHelper.cs index 5add897538..a6792fb137 100644 --- a/src/AddIns/BackendBindings/VBNetBinding/Project/Src/CompletionDataHelper.cs +++ b/src/AddIns/BackendBindings/VBNetBinding/Project/Src/CompletionDataHelper.cs @@ -95,14 +95,21 @@ namespace ICSharpCode.VBNetBinding AddSpecialItems(ref result, info, resolvedType, m, expressionResult, editor); + char prevChar; + if (pressedKey == '\0') { // ctrl+space - char prevChar = editor.Caret.Offset > 0 ? editor.Document.GetCharAt(editor.Caret.Offset - 1) : '\0'; + prevChar = editor.Caret.Offset > 0 ? editor.Document.GetCharAt(editor.Caret.Offset - 1) : '\0'; word = char.IsLetterOrDigit(prevChar) || prevChar == '_' ? editor.GetWordBeforeCaret() : ""; if (!string.IsNullOrWhiteSpace(word)) result.PreselectionLength = word.Length; } + prevChar = editor.Caret.Offset > 0 ? editor.Document.GetCharAt(editor.Caret.Offset - 1) : '\0'; + + if (prevChar == '_') + result.PreselectionLength++; + result.SortItems(); return result; diff --git a/src/AddIns/BackendBindings/VBNetBinding/Project/Src/VBNetCompletionBinding.cs b/src/AddIns/BackendBindings/VBNetBinding/Project/Src/VBNetCompletionBinding.cs index 62530b86c3..7e0e9120c7 100644 --- a/src/AddIns/BackendBindings/VBNetBinding/Project/Src/VBNetCompletionBinding.cs +++ b/src/AddIns/BackendBindings/VBNetBinding/Project/Src/VBNetCompletionBinding.cs @@ -125,6 +125,10 @@ namespace ICSharpCode.VBNetBinding return CodeCompletionKeyPressResult.None; if (IsTypeCharacter(ch, prevChar)) return CodeCompletionKeyPressResult.None; + if (prevChar == '_') { + result.Expression = '_' + result.Expression; + result.Region = new DomRegion(result.Region.BeginLine, result.Region.BeginColumn - 1, result.Region.EndLine, result.Region.EndColumn); + } LoggingService.Debug("CC: Beginning to type a word, result=" + result + ", context=" + result.Context); ShowCompletion(result, editor, ch); return CodeCompletionKeyPressResult.CompletedIncludeKeyInCompletion;