public override int OnAfterCloseSolution(object reserved) { XSharpModel.XSolution.Close(); XSharpXMLDocTools.Close(); XSharpModel.XSolution.IsClosing = false; return(VSConstants.S_OK); }
static public bool GetMemberParameters(IXMember member, XProject project, IList <string> names, IList <string> descriptions) { if (member == null) { return(false); } if (member is XMemberDefinition) { var xdef = (XMemberDefinition)member; var xml = xdef.XmlComments; var xfile = XSharpXMLDocTools.firstfile; if (xfile != null && !string.IsNullOrEmpty(xml)) { getParameterInfo(xfile, xml, names, descriptions); return(true); } return(false); } if (!(member is XMemberReference)) { return(false); } var xmember = (XMemberReference)member; var declarationAssembly = xmember.Assembly; var file = XSharpXMLDocTools.GetXmlDocFile(declarationAssembly, project); if (file == null) { return(false); } try { var sig = xmember.XMLSignature; if (!string.IsNullOrEmpty(sig)) { uint id = 0; string xml = ""; var result = file.ParseMemberSignature(sig, out id); if (result >= 0 && id != 0) { result = file.GetMemberXML(id, out xml); } getParameterInfo(file, xml, names, descriptions); } } catch (Exception e) { XSharpProjectPackage.Instance.DisplayOutPutMessage("Exception in XSharpXMLDocMember.GetDocSummary"); XSharpProjectPackage.Instance.DisplayException(e); return(false); } return(true); }
/// <summary> /// Get the summary of the type /// </summary> /// <param name="member"></param> /// <param name="project"></param> /// <returns></returns> static public string GetTypeSummary(IXType type, XProject project, out string returns, out string remarks) { string summary = null; returns = remarks = ""; if (type == null) { return(""); } if (type is XTypeDefinition) { var xdef = (XTypeDefinition)type; var xml = xdef.XmlComments; var xfile = XSharpXMLDocTools.firstfile; if (xfile != null && !string.IsNullOrEmpty(xml)) { summary = getSummary(xfile, xml, out returns, out remarks); } return(summary); } var xtype = (XTypeReference)type; var declarationAssembly = xtype.Assembly; var file = XSharpXMLDocTools.GetXmlDocFile(declarationAssembly, project); if (file == null) { return(null); } string sig = xtype.XMLSignature; if (!string.IsNullOrEmpty(sig)) { uint id = 0; string xml = ""; var result = file.ParseMemberSignature(sig, out id); if (result >= 0 && id != 0) { result = file.GetMemberXML(id, out xml); } summary = getSummary(file, xml, out returns, out remarks); } return(summary); }
static public string GetDocSummary(MemberInfo member, XProject project) { string summary = null; System.Xml.Linq.XElement docSummary = 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 { var docXml = System.Xml.Linq.XDocument.Load(file.FullName); var docMembers = docXml.Root.Element("members"); var docMember = GetDocMember(docMembers, member); docSummary = docMember.Elements("summary").First(); } catch { } // if (docSummary != null) { summary = docSummary.Value; } // 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); }
static public string GetMemberSummary(IXMember member, XProject project, out string returns, out string remarks) { string summary = null; returns = remarks = ""; if (member == null) { return(""); } // if (member is XMemberDefinition) { var xdef = (XMemberDefinition)member; var xml = xdef.XmlComments; var xfile = XSharpXMLDocTools.firstfile; if (xfile != null && !string.IsNullOrEmpty(xml)) { summary = getSummary(xfile, xml, out returns, out remarks); } return(summary); } if (!(member is XMemberReference)) { return(""); } var xmember = (XMemberReference)member; var declarationAssembly = xmember.Assembly; // var file = XSharpXMLDocTools.GetXmlDocFile(declarationAssembly, project); if (file == null) { return(null); } lastfile = file; var sig = xmember.XMLSignature; try { if (!string.IsNullOrEmpty(sig)) { uint id = 0; string xml = ""; var result = file.ParseMemberSignature(sig, out id); result = file.GetMemberXML(id, out xml); if (!string.IsNullOrEmpty(xml)) { summary = getSummary(file, xml, out returns, out remarks); } } } catch (Exception e) { XSharpProjectPackage.Instance.DisplayOutPutMessage("Exception in XSharpXMLDocMember.GetDocSummary"); XSharpProjectPackage.Instance.DisplayException(e); } // return(summary); }