private void AddMethod( Dictionary <String, LookupListItem> foundItems, MemberInfo memberInfo) { MethodInfo mi = (MethodInfo)memberInfo; if (mi.IsSpecialName) { return; } if (mi.IsPrivate) { return; } if (mi.Name == "Finalize") { return; } if (!foundItems.ContainsKey(mi.Name)) { bool isExtensionMethod = mi.GetCustomAttributes( typeof(ExtensionAttribute), false).Length > 0; LookupListItem lli = new LookupListItem(); lli.DisplayText = mi.Name; lli.InsertText = mi.Name; lli.ToolTipText = String.Format("{0} {1}_OVR_", CSharpFormattingTools.GetTypeSignature(mi.ReturnType), CSharpFormattingTools.GetMethodSignature(mi)); if (isExtensionMethod) { lli.Category = QuickSharp.CodeAssist.Constants.METHOD_EXTENSION; } else if (mi.IsPublic) { lli.Category = QuickSharp.CodeAssist.Constants.METHOD; } else if (mi.IsFamily) { lli.Category = QuickSharp.CodeAssist.Constants.METHOD_PROTECTED; } else { return; } LookupMenuItem lmi = new LookupMenuItem(); lmi.DisplayText = String.Format("{0} {1}", CSharpFormattingTools.GetTypeSignature(mi.ReturnType), CSharpFormattingTools.GetMethodSignature(mi)); lmi.InsertText = CSharpFormattingTools.GetMinimalMethodSignature(mi); lli.MenuItems.Add(lmi); foundItems.Add(mi.Name, lli); } else { // Overloaded method LookupListItem lli = foundItems[mi.Name]; LookupMenuItem lmi = new LookupMenuItem(); lmi.DisplayText = String.Format("{0} {1}", CSharpFormattingTools.GetTypeSignature(mi.ReturnType), CSharpFormattingTools.GetMethodSignature(mi)); lmi.InsertText = CSharpFormattingTools.GetMinimalMethodSignature(mi); if (mi.IsPublic) { lli.Category = QuickSharp.CodeAssist.Constants.METHODOVERLOAD; } else if (mi.IsFamily) { lli.Category = QuickSharp.CodeAssist.Constants.METHODOVERLOAD_PROTECTED; } else { return; } lli.MenuItems.Add(lmi); } }