public void AddOverload(MemberCompletionData overload) { if (overloads == null) { overloads = new Dictionary <string, CompletionData> (); } if (overload.Entity is IMember && Entity is IMember) { // filter overriden members that came from base classes // note that the overload tree is traversed top down. var member = Entity as IMember; if (member.IsOverride) { return; } string MemberId = (overload.Entity as IMember).GetIdString(); if (MemberId != (this.Entity as IMember).GetIdString() && !overloads.ContainsKey(MemberId)) { overloads [MemberId] = overload; //if any of the overloads is obsolete, we should not mark the item obsolete if (!(overload.Entity as IMember).IsObsolete()) { DisplayFlags &= ~DisplayFlags.Obsolete; } } } }
public override TooltipInformation CreateTooltipInformation(bool smartWrap) { var def = type.GetDefinition(); var result = def != null?MemberCompletionData.CreateTooltipInformation(compilation, file, List.Resolver, ext.TextEditorData, ext.FormattingPolicy, def, smartWrap) : new TooltipInformation(); if (ConflictingTypes != null) { var conflicts = new StringBuilder(); var sig = new SignatureMarkupCreator(List.Resolver, ext.FormattingPolicy.CreateOptions()); for (int i = 0; i < ConflictingTypes.Count; i++) { var ct = ConflictingTypes[i]; if (i > 0) { conflicts.Append(", "); } if ((i + 1) % 5 == 0) { conflicts.Append(Environment.NewLine + "\t"); } conflicts.Append(sig.GetTypeReferenceString(((TypeCompletionData)ct).type)); } result.AddCategory("Type Conflicts", conflicts.ToString()); } return(result); }
public void AddOverload(MemberCompletionData overload) { if (overloads == null) { overloads = new Dictionary <string, CompletionData> (); } if (overload.Entity is IMember && Entity is IMember) { // filter virtual & overriden members that came from base classes // note that the overload tree is traversed top down. var member = Entity as IMember; if ((member.IsVirtual || member.IsOverride) && member.DeclaringType != null && ((IMember)overload.Entity).DeclaringType != null && member.DeclaringType.ReflectionName != ((IMember)overload.Entity).DeclaringType.ReflectionName) { string str1 = ambience.GetString(member as IMember, flags); string str2 = ambience.GetString(overload.Entity as IMember, flags); if (str1 == str2) { if (string.IsNullOrEmpty(AmbienceService.GetDocumentationSummary((IMember)Entity)) && !string.IsNullOrEmpty(AmbienceService.GetDocumentationSummary((IMember)overload.Entity))) { SetMember(overload.Entity as IMember); } return; } } string MemberId = (overload.Entity as IMember).GetIdString(); if (Entity is IMethod && overload.Entity is IMethod) { string signature1 = ambience.GetString(Entity as IMember, OutputFlags.IncludeParameters | OutputFlags.IncludeGenerics | OutputFlags.GeneralizeGenerics); string signature2 = ambience.GetString(overload.Entity as IMember, OutputFlags.IncludeParameters | OutputFlags.IncludeGenerics | OutputFlags.GeneralizeGenerics); if (signature1 == signature2) { return; } } if (MemberId != (this.Entity as IMember).GetIdString() && !overloads.ContainsKey(MemberId)) { // if (((IMethod)overload.Member).IsPartial) // return; overloads[MemberId] = overload; //if any of the overloads is obsolete, we should not mark the item obsolete if (!(overload.Entity as IMember).IsObsolete()) { DisplayFlags &= ~DisplayFlags.Obsolete; } /* * //make sure that if there are generic overloads, we show a generic signature * if (overload.Member is IType && Member is IType && ((IType)Member).TypeParameters.Count == 0 && ((IType)overload.Member).TypeParameters.Count > 0) { * displayText = overload.DisplayText; * } * if (overload.Member is IMethod && Member is IMethod && ((IMethod)Member).TypeParameters.Count == 0 && ((IMethod)overload.Member).TypeParameters.Count > 0) { * displayText = overload.DisplayText; * }*/ } } // always set the member with the least type parameters as the main member. // if (Member is ITypeParameterMember && overload.Member is ITypeParameterMember) { // if (((ITypeParameterMember)Member).TypeParameters.Count > ((ITypeParameterMember)overload.Member).TypeParameters.Count) { // INode member = Member; // SetMember (overload.Member); // overload.Member = member; // } // } }
public override TooltipInformation CreateTooltipInformation(bool smartWrap) { return(MemberCompletionData.CreateTooltipInformation(ext, null, member, smartWrap)); }
ICompletionData ICompletionDataFactory.CreateEntityCompletionData(IEntity entity, string text) { return(new GenericTooltipCompletionData((list, sw) => MemberCompletionData.CreateTooltipInformation(ext, list.Resolver, entity, sw), text, entity.GetStockIcon())); }