Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        /// <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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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);
        }