Ejemplo n.º 1
0
        public static string GetOpCodeDocumentation(OpCode code)
        {
            int index = (int)code.Code;
            int hi    = index >> 8;

            if (hi == 0xFE)
            {
                index -= 0xFD00;
            }
            else if (hi != 0)
            {
                return(null);
            }
            var s = cachedOpCodeDocs[index];

            if (s != null)
            {
                return(s);
            }

            var docProvider = XmlDocLoader.MscorlibDocumentation;

            if (docProvider != null)
            {
                string docXml = docProvider.GetDocumentation("F:System.Reflection.Emit.OpCodes." + code.Code.ToString());
                if (docXml != null)
                {
                    XmlDocRenderer renderer = new XmlDocRenderer();
                    renderer.AddXmlDocumentation(docXml);
                    return(cachedOpCodeDocs[index] = renderer.ToString());
                }
            }

            return(null);
        }
Ejemplo n.º 2
0
        public bool WriteXmlDoc(string xmlDoc)
        {
            InitializeNeedsNewLine();
            bool res = XmlDocRenderer.WriteXmlDoc(this, xmlDoc);

            needsNewLine = false;
            return(res);
        }
Ejemplo n.º 3
0
        static void WriteXmlDocParameter(IXmlDocOutput output, XElement xml)
        {
            foreach (var elem in xml.DescendantNodes())
            {
                if (elem is XText)
                {
                    output.Write(XmlDocRenderer.whitespace.Replace(((XText)elem).Value, " "), TextTokenType.XmlDocSummary);
                }
                else if (elem is XElement)
                {
                    var xelem = (XElement)elem;
                    switch (xelem.Name.ToString().ToUpperInvariant())
                    {
                    case "SEE":
                        var cref = xelem.Attribute("cref");
                        if (cref != null)
                        {
                            output.Write(XmlDocRenderer.GetCref((string)cref), TextTokenType.XmlDocToolTipSeeCref);
                        }
                        var langword = xelem.Attribute("langword");
                        if (langword != null)
                        {
                            output.Write(((string)langword).Trim(), TextTokenType.XmlDocToolTipSeeLangword);
                        }
                        break;

                    case "PARAMREF":
                        var nameAttr = xml.Attribute("name");
                        if (nameAttr != null)
                        {
                            output.Write(((string)nameAttr).Trim(), TextTokenType.XmlDocToolTipParamRefName);
                        }
                        break;

                    case "BR":
                    case "PARA":
                        output.WriteNewLine();
                        break;

                    default:
                        break;
                    }
                }
                else
                {
                    output.Write(elem.ToString(), TextTokenType.XmlDocSummary);
                }
            }
        }
Ejemplo n.º 4
0
        static void WriteXmlDocParameter(IXmlDocOutput output, XElement xml)
        {
            foreach (var elem in xml.DescendantNodes())
            {
                if (elem is XText)
                {
                    output.Write(XmlDocRenderer.WhitespaceRegex.Replace(((XText)elem).Value, " "), BoxedTextColor.Text);
                }
                else if (elem is XElement xelem)
                {
                    switch (xelem.Name.ToString().ToUpperInvariant())
                    {
                    case "SEE":
                        var cref = (string?)xelem.Attribute("cref");
                        if (cref is not null)
                        {
                            output.Write(XmlDocRenderer.GetCref(cref), BoxedTextColor.Text);
                        }
                        var langword = (string?)xelem.Attribute("langword");
                        if (langword is not null)
                        {
                            output.Write(langword.Trim(), BoxedTextColor.Keyword);
                        }
                        break;

                    case "PARAMREF":
                        var nameAttr = (string?)xml.Attribute("name");
                        if (nameAttr is not null)
                        {
                            output.Write(nameAttr.Trim(), BoxedTextColor.Parameter);
                        }
                        break;

                    case "BR":
                    case "PARA":
                        output.WriteNewLine();
                        break;

                    default:
                        break;
                    }
                }
                else
                {
                    output.Write(elem.ToString(), BoxedTextColor.Text);
                }
            }
        }