/// <summary> /// Increase ranking of a given CompletionItem /// </summary> /// <param name="item"></param> private static void RememberUseOf(CompletionItem item) { // handles unwanted rank progression (when the user enter several times the same keyword) if (item.DisplayText.Equals(_lastRememberedKeyword)) return; _lastRememberedKeyword = item.DisplayText; item.Ranking++; if (item.FromParser) RememberUseOfParsedItem(item.DisplayText); else if (item.Type != CompletionType.Keyword && item.Type != CompletionType.Snippet) RememberUseOfDatabaseItem(item.DisplayText); }
/// <summary> /// Method called when the tooltip is opened to help the user during autocompletion /// </summary> public static void ShowToolTipFromAutocomplete(CompletionItem item, Rectangle completionRectangle, bool reversedForm) { if (Config.Instance.ToolTipDeactivate) return; bool lockTaken = false; try { Monitor.TryEnter(_thisLock, 0, ref lockTaken); if (!lockTaken) return; InitIfneeded(); // sets the tooltip content _currentCompletionList = new List<CompletionItem> { item }; SetToolTip(); // update position _form.SetPosition(completionRectangle, reversedForm); _openedFromDwell = false; _openedForCompletion = true; if (!_form.Visible) _form.UnCloack(); } finally { if (lockTaken) Monitor.Exit(_thisLock); } }
/// <summary> /// Method called by the form when the user accepts a suggestion (tab or enter or doubleclick) /// </summary> private static void OnInsertSuggestion(CompletionItem data) { try { // in case of keyword, replace abbreviation if needed var replacementText = data.DisplayText; if (Config.Instance.CodeReplaceAbbreviations && (data.Type == CompletionType.Keyword || data.Type == CompletionType.KeywordObject)) { var fullKeyword = Keywords.GetFullKeyword(data.DisplayText); replacementText = fullKeyword ?? data.DisplayText; } replacementText = CorrectKeywordCase(replacementText, Npp.CurrentPosition) ?? replacementText; Npp.ReplaceKeywordWrapped(replacementText, 0); // Remember this item to show it higher in the list later RememberUseOf(data); if (data.Type == CompletionType.Snippet) Snippets.TriggerCodeSnippetInsertion(); Close(); } catch (Exception e) { ErrorHandler.ShowErrors(e, "Error during AutoCompletionAccepted"); } }
public TabCompletedEventArgs(CompletionItem completionItem) { CompletionItem = completionItem; }