string Test(string input, string type, string member, Gdk.Key key = Gdk.Key.Return) { TestViewContent content; var ext = Setup (input, out content); ListWindow.ClearHistory (); var listWindow = new CompletionListWindow (); var widget = new TestCompletionWidget (ext.Document); listWindow.CompletionWidget = widget; listWindow.CodeCompletionContext = widget.CurrentCodeCompletionContext; var t = ext.Document.Compilation.FindType (new FullTypeName (type)); var foundMember = t.GetMembers (m => m.Name == member).First (); var data = new MemberCompletionData (ext, foundMember, OutputFlags.ClassBrowserEntries); data.DisplayFlags |= ICSharpCode.NRefactory.Completion.DisplayFlags.NamedArgument; KeyActions ka = KeyActions.Process; data.InsertCompletionText (listWindow, ref ka, key, (char)key, Gdk.ModifierType.None, true, false); return widget.CompletedWord; }
MemberCompletionData AddMemberCompletionData (object member, OutputFlags flags) { MemberCompletionData newData = new MemberCompletionData (member as INode, flags); newData.HideExtensionParameter = HideExtensionParameter; string memberKey = newData.CompletionText; if (member is IMember) { newData.CompletionCategory = GetCompletionCategory (((IMember)member).DeclaringType); } List<MemberCompletionData> existingData; data.TryGetValue (memberKey, out existingData); if (existingData != null) { IBaseMember a = member as IBaseMember; foreach (MemberCompletionData md in existingData) { IBaseMember b = md.Member as IBaseMember; if (a == null || b == null || a.MemberType == b.MemberType) { md.AddOverload (newData); newData = null; break; } } if (newData != null) { CompletionList.Add (newData); data[memberKey].Add (newData); } } else { CompletionList.Add (newData); data[memberKey] = new List<MemberCompletionData> (); data[memberKey].Add (newData); } return newData; }
string Test(string input, string type, string member, Gdk.Key key = Gdk.Key.Return, bool isDelegateExpected = false) { TestViewContent content; var ext = Setup (input, out content); ListWindow.ClearHistory (); var listWindow = new CompletionListWindow (); var widget = new TestCompletionWidget (ext.Document); listWindow.CompletionWidget = widget; listWindow.CodeCompletionContext = widget.CurrentCodeCompletionContext; var t = ext.Document.Compilation.FindType (new FullTypeName (type)); var method = member != null ? t.GetMembers (m => m.Name == member).First () : t.GetConstructors ().First (); var data = new MemberCompletionData (ext, method, OutputFlags.ClassBrowserEntries); data.IsDelegateExpected = isDelegateExpected; KeyActions ka = KeyActions.Process; data.InsertCompletionText (listWindow, ref ka, key, (char)key, Gdk.ModifierType.None, true, false); return widget.CompletedWord; }