static private bool getParameterInfo(IVsXMLMemberIndex file, string xml, IList <string> names, IList <string> descriptions) { //Microsoft.VisualStudio.Shell.ThreadHelper.ThrowIfNotOnUIThread(); IVsXMLMemberData data = null; var result = file.GetMemberDataFromXML(xml, out data); int numparams = 0; if (result >= 0 && data != null) { result = data.GetParamCount(out numparams); } if (result >= 0 && numparams != 0) { string paramName; string paramDesc; for (int i = 0; i < numparams; i++) { result = data.GetParamTextAt(i, out paramName, out paramDesc); names.Add(paramName); paramDesc = CleanUpResult(paramDesc); descriptions.Add(paramDesc); } } return(true); }
static private string getSummary(IVsXMLMemberIndex file, string xml, out string returns, out string remarks) { string summary = ""; returns = remarks = ""; IVsXMLMemberData data = null; var result = file.GetMemberDataFromXML(xml, out data); if (result >= 0 && data != null) { result = data.GetSummaryText(out summary); result = data.GetReturnsText(out returns); result = data.GetRemarksText(out remarks); } summary = CleanUpResult(summary); returns = CleanUpResult(returns); remarks = CleanUpResult(remarks); return(summary); }
/// <summary> /// Get the summary of the type /// </summary> /// <param name="member"></param> /// <param name="project"></param> /// <returns></returns> static public string GetTypeSummary(System.Type member, XProject project) { string summary = null; Assembly declarationAssembly = null; declarationAssembly = member.Assembly; var file = XSharpXMLDocTools.GetXmlDocFile(declarationAssembly, project); if (file == null) { return(null); } string name = member.FullName; string prefix = "T:"; if (!string.IsNullOrEmpty(name)) { uint id = 0; string xml = ""; IVsXMLMemberData data = null; var result = file.ParseMemberSignature(prefix + name, out id); if (result >= 0 && id != 0) { result = file.GetMemberXML(id, out xml); } if (result >= 0 && !String.IsNullOrEmpty(xml)) { result = file.GetMemberDataFromXML(xml, out data); } if (result >= 0 && data != null) { result = data.GetSummaryText(out summary); } } return(summary); }
static public bool GetMemberParameters(MemberInfo member, XProject project, IList <string> names, IList <string> descriptions) { Assembly declarationAssembly = null; // if (member is Type) { declarationAssembly = ((Type)member).Assembly; } else if (member.DeclaringType != null) { declarationAssembly = member.DeclaringType.Assembly; } else { return(false); } // var file = XSharpXMLDocTools.GetXmlDocFile(declarationAssembly, project); if (file == null) { return(false); } try { string prefix = ""; string name = ""; switch (member.MemberType) { case MemberTypes.Method: prefix = "M:"; name = member.Name; var mi = member as MethodInfo; name += getParameterNames(mi.GetParameters(), member); break; case MemberTypes.Constructor: prefix = "M:"; name = "#ctor"; var ci = member as ConstructorInfo; name += getParameterNames(ci.GetParameters(), member); break; } if (!string.IsNullOrEmpty(name)) { uint id = 0; string xml = ""; int numparams = 0; IVsXMLMemberData data = null; var result = file.ParseMemberSignature(prefix + member.DeclaringType.FullName + "." + name, out id); if (result >= 0 && id != 0) { result = file.GetMemberXML(id, out xml); } if (result >= 0 && !String.IsNullOrEmpty(xml)) { result = file.GetMemberDataFromXML(xml, out data); } if (result >= 0 && data != null) { result = data.GetParamCount(out numparams); } if (result >= 0 && numparams != 0) { string paramName; string paramDesc; for (int i = 0; i < numparams; i++) { result = data.GetParamTextAt(i, out paramName, out paramDesc); names.Add(paramName); descriptions.Add(paramDesc); } } } } catch (Exception e) { XSharpProjectPackage.Instance.DisplayOutPutMessage("Exception in XSharpXMLDocMember.GetDocSummary"); XSharpProjectPackage.Instance.DisplayException(e); return(false); } return(true); }
static public string GetMemberSummary(MemberInfo member, XProject project) { string summary = null; Assembly declarationAssembly = null; // if (member is Type) { declarationAssembly = ((Type)member).Assembly; } else if (member.DeclaringType != null) { declarationAssembly = member.DeclaringType.Assembly; } else { return(summary); } // var file = XSharpXMLDocTools.GetXmlDocFile(declarationAssembly, project); if (file == null) { return(null); } try { string prefix = ""; string name = ""; switch (member.MemberType) { case MemberTypes.Field: prefix = "F:"; name = member.Name; break; case MemberTypes.Property: prefix = "P:"; name = member.Name; break; case MemberTypes.Method: prefix = "M:"; name = member.Name; var mi = member as MethodInfo; name += getParameterNames(mi.GetParameters(), member); break; case MemberTypes.Constructor: prefix = "M:"; name = "#ctor"; var ci = member as ConstructorInfo; name += getParameterNames(ci.GetParameters(), member); break; case MemberTypes.Event: prefix = "E:"; name = member.Name; break; } if (!string.IsNullOrEmpty(name)) { uint id = 0; string xml = ""; IVsXMLMemberData data = null; var result = file.ParseMemberSignature(prefix + member.DeclaringType.FullName + "." + name, out id); if (result >= 0 && id != 0) { result = file.GetMemberXML(id, out xml); } if (result >= 0 && !String.IsNullOrEmpty(xml)) { result = file.GetMemberDataFromXML(xml, out data); } if (result >= 0 && data != null) { result = data.GetSummaryText(out summary); } } if (string.IsNullOrWhiteSpace(summary) && member is ConstructorInfo) { summary = GetTypeSummary(member.DeclaringType, project); } } catch (Exception e) { XSharpProjectPackage.Instance.DisplayOutPutMessage("Exception in XSharpXMLDocMember.GetDocSummary"); XSharpProjectPackage.Instance.DisplayException(e); } // return(summary); }