/// <summary> /// Initialize completion window for this instance of the text editor /// </summary> private void InitializeCompletionWindow(string wordContext) { if (_completionWindow != null || (wordContext.Length < 1)) { return; } //Initialize code completion window _completionWindow = new EditorCompletionWindow(this); if (EditorCompletionWindow._editorCompletionList.Contains(wordContext)) { EditorCompletionWindow._editorCompletionList?.SelectItem(wordContext); } var firstMatch = CompletionList.CompletionData.First(x => x.Text.StartsWith(wordContext)); if (firstMatch != null && EditorCompletionWindow._editorCompletionList.ListBox != null) { int index = EditorCompletionWindow._editorCompletionList.ListBox.Items.IndexOf(firstMatch); EditorCompletionWindow._editorCompletionList.ListBox.SelectIndex(index); } _completionWindow.Show(); _completionWindow.Closed += delegate { _completionWindow = null; EditorCompletionWindow._editorCompletionList?.SelectItem(string.Empty); }; }
/// <summary> /// Initialize Code completion data /// </summary> public static void InitalizeCompletionData() { if (!EditorCompletionWindow.InitalizeCompletionData()) { if (Settings.Default.invalidClasses == null) { Settings.Default.invalidClasses = new StringCollection(); } bool invalidFound = false; _classList = File.ReadAllLines($@"{Settings.Default.JdkPath}\jre\lib\classlist").Select(x => x.Replace("/", ".")).Where(x => !x.Contains("$") && !x.Contains("#") && !Settings.Default.invalidClasses.Contains(x)); foreach (string item in _classList) { try { if (item.Contains("lang")) { AddCompletionData(item); } else { AddCompletion_Data(item); } } catch { Settings.Default.invalidClasses.Add(item); invalidFound = true; } } if (invalidFound) { Settings.Default.Save(); } } }