/// <summary> /// Obtain completions (this runs in its own thread) /// </summary> internal void BackgroundShowCompletionWindow() //ICompletionItemProvider { // provide AvalonEdit with the data: string itemForCompletion = ""; TextArea.Dispatcher.Invoke(new Action(delegate() { DocumentLine line = TextArea.Document.Lines[TextArea.Caret.Line - 1]; itemForCompletion = TextArea.Document.GetText(line); })); ICompletionData[] completions = completionProvider.GenerateCompletionData(itemForCompletion); if (completions != null && completions.Length > 0) { TextArea.Dispatcher.BeginInvoke(new Action(delegate() { _completionWindow = new PythonConsoleCompletionWindow(TextArea, this); IList <ICompletionData> data = _completionWindow.CompletionList.CompletionData; foreach (ICompletionData completion in completions) { data.Add(completion); } _completionWindow.Show(); _completionWindow.Closed += delegate { _completionWindow = null; }; })); } }
/// <summary> /// Obtain completions (this runs in its own thread) /// </summary> internal void BackgroundShowCompletionWindow() //ICompletionItemProvider { // provide AvalonEdit with the data: string itemForCompletion = ""; textArea.Dispatcher.Invoke(new Action(delegate() { DocumentLine line = textArea.Document.Lines[textArea.Caret.Line - 1]; itemForCompletion = textArea.Document.GetText(line.Offset, textArea.Caret.Column - 1); })); completionDispatcher.Invoke(new Action(delegate() { try { var completionInfo = completionProvider.GenerateCompletionData(itemForCompletion); if (completionInfo != null) { ICompletionData[] completions = completionInfo.Item1; string objectName = completionInfo.Item2; string memberName = completionInfo.Item3; if (completions.Length > 0) { textArea.Dispatcher.BeginInvoke(new Action(delegate() { completionWindow = new PythonConsoleCompletionWindow(textArea, this); IList <ICompletionData> data = completionWindow.CompletionList.CompletionData; foreach (ICompletionData completion in completions) { data.Add(completion); } completionWindow.Show(); completionWindow.Closed += delegate { completionWindow = null; }; completionWindow.StartOffset -= memberName.Length; completionWindow.CompletionList.SelectItem(textArea.Document.GetText(completionWindow.StartOffset, memberName.Length)); })); } } } catch (Exception exception) { MessageBox.Show(exception.ToString(), "Error"); } })); }
/// <summary> /// Obtain completions (this runs in its own thread) /// </summary> internal void BackgroundShowCompletionWindow() //ICompletionItemProvider { // provide AvalonEdit with the data: string itemForCompletion = ""; textArea.Dispatcher.Invoke(new Action(delegate() { DocumentLine line = textArea.Document.Lines[textArea.Caret.Line - 1]; itemForCompletion = textArea.Document.GetText(line); })); completionDispatcher.Invoke(new Action(delegate() { try { ICompletionData[] completions = completionProvider.GenerateCompletionData(itemForCompletion); if (completions != null && completions.Length > 0) { textArea.Dispatcher.BeginInvoke(new Action(delegate() { completionWindow = new PythonConsoleCompletionWindow(textArea, this); IList <ICompletionData> data = completionWindow.CompletionList.CompletionData; foreach (ICompletionData completion in completions) { data.Add(completion); } completionWindow.Show(); completionWindow.Closed += delegate { completionWindow = null; }; })); } } catch (Exception exception) { MessageBox.Show(exception.ToString(), "Error"); } })); }
//ICompletionItemProvider /// <summary> /// Obtain completions (this runs in its own thread) /// </summary> internal void BackgroundShowCompletionWindow() { // provide AvalonEdit with the data: string itemForCompletion = ""; textArea.Dispatcher.Invoke(new Action(delegate() { DocumentLine line = textArea.Document.Lines[textArea.Caret.Line - 1]; itemForCompletion = textArea.Document.GetText(line); })); ICompletionData[] completions = completionProvider.GenerateCompletionData(itemForCompletion); if (completions != null && completions.Length > 0) textArea.Dispatcher.BeginInvoke(new Action(delegate() { completionWindow = new PythonConsoleCompletionWindow(textArea, this); IList<ICompletionData> data = completionWindow.CompletionList.CompletionData; foreach (ICompletionData completion in completions) { data.Add(completion); } completionWindow.Show(); completionWindow.Closed += delegate { completionWindow = null; }; })); }