public static StandardGlyphItem getGlyphItem(this IXSymbol elt)
        {
            StandardGlyphItem imgI = StandardGlyphItem.GlyphItemPublic;

            switch (elt.Visibility)
            {
            case Modifiers.Public:
                imgI = StandardGlyphItem.GlyphItemPublic;
                break;

            case Modifiers.Protected:
                imgI = StandardGlyphItem.GlyphItemProtected;
                break;

            case Modifiers.Private:
                imgI = StandardGlyphItem.GlyphItemPrivate;
                break;

            case Modifiers.Internal:
                imgI = StandardGlyphItem.GlyphItemInternal;
                break;

            case Modifiers.ProtectedInternal:
                imgI = StandardGlyphItem.GlyphItemProtected;
                break;
            }
            if (elt.IsStatic)
            {
                imgI = StandardGlyphItem.GlyphItemShortcut;
            }
            return(imgI);
        }
示例#2
0
        public static string GetDoc(XAssembly asm, IXSymbol symbol)
        {
            var    file = XSharpXMLDocTools.GetXmlDocFile(asm, null);
            string key  = null;

            if (symbol is IXTypeSymbol type)
            {
                key = type.XMLSignature;
            }
            else if (symbol is IXMemberSymbol member)
            {
                key = member.XMLSignature;
            }
            if (file == null)
            {
                return(null);
            }
            if (!string.IsNullOrEmpty(key))
            {
                uint   id  = 0;
                string xml = "";
                return(ThreadHelper.JoinableTaskFactory.Run(async delegate
                {
                    await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync();
                    StringBuilder sb = new StringBuilder();

                    var result = file.ParseMemberSignature(key, out id);
                    result = file.GetMemberXML(id, out xml);
                    var summary = GetSummary(xml, out var returns, out var remarks);
                    if (!string.IsNullOrWhiteSpace(summary))
                    {
                        sb.Append(addXml("summary", summary));
                    }
                    if (symbol is IXMemberSymbol member && member.Parameters.Count > 0)
                    {
                        var names = new List <string>();
                        var desc = new List <string>();
                        GetParameterInfo(file, xml, names, desc);
                        if (names.Count > 0 && desc.Count > 0 && names.Count == desc.Count)
                        {
                            for (int i = 0; i < names.Count; i++)
                            {
                                var temp = addXml("param", desc[i]);
                                temp = temp.Replace("<param>", $"<param name=\"{names[i]}\">");
                                sb.Append(temp);
                            }
                        }
                    }
                    if (!String.IsNullOrWhiteSpace(returns))
                    {
                        sb.Append(addXml("returns", returns));
                    }
                    if (!String.IsNullOrWhiteSpace(remarks))
                    {
                        sb.Append(addXml("remarks", remarks));
                    }
                    return sb.ToString();
                }));
示例#3
0
 internal XAnalysis(IXSymbol sym)
 {
     if (sym == null)
     {
         return;
     }
     symbol = sym;
     Name   = sym.FullName;
 }
        public static StandardGlyphGroup getGlyphGroup(this IXSymbol elt)
        {
            StandardGlyphGroup imgG = StandardGlyphGroup.GlyphGroupClass;

            switch (elt.Kind)
            {
            case Kind.Class:
                imgG = StandardGlyphGroup.GlyphGroupClass;
                break;

            case Kind.Constructor:
            case Kind.Destructor:
            case Kind.Method:
            case Kind.Function:
            case Kind.Procedure:
            case Kind.LocalFunc:
            case Kind.LocalProc:
            case Kind.VODLL:
                imgG = StandardGlyphGroup.GlyphGroupMethod;
                break;

            case Kind.Structure:
                imgG = StandardGlyphGroup.GlyphGroupStruct;
                break;

            case Kind.Access:
            case Kind.Assign:
            case Kind.Property:
                imgG = StandardGlyphGroup.GlyphGroupProperty;
                break;

            case Kind.Local:
            case Kind.MemVar:
            case Kind.DbField:
            case Kind.Parameter:
                imgG = StandardGlyphGroup.GlyphGroupVariable;
                break;

            case Kind.Event:
                imgG = StandardGlyphGroup.GlyphGroupEvent;
                break;

            case Kind.Delegate:
                imgG = StandardGlyphGroup.GlyphGroupDelegate;
                break;

            case Kind.Enum:
                imgG = StandardGlyphGroup.GlyphGroupEnum;
                break;

            case Kind.EnumMember:
                imgG = StandardGlyphGroup.GlyphGroupEnumMember;
                break;

            case Kind.Operator:
                imgG = StandardGlyphGroup.GlyphGroupOperator;
                break;

            case Kind.Interface:
                imgG = StandardGlyphGroup.GlyphGroupInterface;
                break;

            case Kind.Namespace:
                imgG = StandardGlyphGroup.GlyphGroupNamespace;
                break;

            case Kind.Field:
            case Kind.VOGlobal:
                imgG = StandardGlyphGroup.GlyphGroupField;
                break;

            case Kind.Union:
                imgG = StandardGlyphGroup.GlyphGroupUnion;
                break;

            case Kind.VODefine:
            case Kind.Define:
            case Kind.Undefine:
                imgG = StandardGlyphGroup.GlyphGroupConstant;
                break;

            case Kind.VOStruct:
                imgG = StandardGlyphGroup.GlyphGroupValueType;
                break;

            case Kind.Keyword:
                imgG = StandardGlyphGroup.GlyphKeyword;
                break;

            case Kind.Using:
                imgG = StandardGlyphGroup.GlyphReference;
                break;

            case Kind.Attribute:
                imgG = StandardGlyphGroup.GlyphGroupIntrinsic;

                break;

            case Kind.Command:
            case Kind.XCommand:
            case Kind.Translate:
            case Kind.XTranslate:
                imgG = StandardGlyphGroup.GlyphGroupMacro;
                break;

            case Kind.TypeParameter:
                imgG = StandardGlyphGroup.GlyphGroupType;
                break;

            case Kind.Unknown:
            case Kind.Ignore:
            case Kind.Undeclared:
                imgG = StandardGlyphGroup.GlyphGroupUnknown;
                break;
            }
            return(imgG);
        }
 internal QuickInfoBase(IXSymbol symbol)
 {
     _symbol = symbol;
 }
示例#6
0
 private static string LookupXml(IXSymbol key)
 {
     return(XSharpXMLDocMember.GetDoc(asmName, key));
 }