public void CloseCompletionWindow() { if (_completionWindow != null) { _completionWindow.Close(); _completionWindow = null; } }
private void OnTextEntered(object sender, TextInputEventArgs e) { if (_completionWindow != null) { return; } if (!BuildCompletionData()) { return; } // Open code completion after the user has pressed dot: _completionWindow = new CustomCompletionWindow(_editor.TextArea); AugmentCompletionData(); _completionWindow.Show(); _completionWindow.ReallyClosed += delegate { _completionWindow = null; }; }
private async Task ShowCompletion(TriggerMode triggerMode) { if (CompletionProvider == null) { return; } int offset; GetCompletionDocument(out offset); var completionChar = triggerMode == TriggerMode.Text ? Document.GetCharAt(offset - 1) : (char?)null; var results = await CompletionProvider.GetCompletionData(offset, completionChar, triggerMode == TriggerMode.SignatureHelp).ConfigureAwait(true); if (results.OverloadProvider != null) { results.OverloadProvider.Refresh(); if (_insightWindow != null && _insightWindow.IsVisible) { _insightWindow.Provider = results.OverloadProvider; } else { _insightWindow = new OverloadInsightWindow(TextArea) { Provider = results.OverloadProvider, Background = CompletionBackground, Style = TryFindResource(typeof(InsightWindow)) as Style }; _insightWindow.Show(); _insightWindow.Closed += (o, args) => _insightWindow = null; } return; } if (_completionWindow == null && results.CompletionData?.Any() == true) { _insightWindow?.Close(); // Open code completion after the user has pressed dot: _completionWindow = new CustomCompletionWindow(TextArea) { MinWidth = 200, Background = CompletionBackground, CloseWhenCaretAtBeginning = triggerMode == TriggerMode.Completion }; if (completionChar != null && char.IsLetterOrDigit(completionChar.Value)) { _completionWindow.StartOffset -= 1; } var data = _completionWindow.CompletionList.CompletionData; ICompletionDataEx selected = null; foreach (var completion in results.CompletionData) //.OrderBy(item => item.SortText)) { if (completion.IsSelected) { selected = completion; } data.Add(completion); } if (selected != null) { _completionWindow.CompletionList.SelectedItem = selected; } _completionWindow.Show(); _completionWindow.Closed += (o, args) => { _completionWindow = null; }; } }