Пример #1
0
        public static string GeneratePrototype(AbstractType t, int currentParameter = -1, bool isInTemplateArgInsight = false)
        {
            var ms = t as MemberSymbol;

            if (ms != null)
            {
                if (ms.Definition is DVariable)
                {
                    var bt = DResolver.StripAliasSymbol(ms.Base);
                    if (bt is DelegateType)
                    {
                        return(VDServerCompletionDataGenerator.GeneratePrototype(bt as DelegateType, currentParameter));
                    }
                }
                else if (ms.Definition is DMethod)
                {
                    return(VDServerCompletionDataGenerator.GeneratePrototype(ms.Definition as DMethod, isInTemplateArgInsight, currentParameter));
                }
            }
            else if (t is TemplateIntermediateType)
            {
                return(VDServerCompletionDataGenerator.GeneratePrototype(t as TemplateIntermediateType, currentParameter));
            }

            return(null);
        }
Пример #2
0
        public static string GeneratePrototype(DelegateType dt, int currentParam = -1)
        {
            var dd = dt.TypeDeclarationOf as DelegateDeclaration;

            if (dd != null)
            {
                return(VDServerCompletionDataGenerator.GeneratePrototype(dd, currentParam));
            }

            return(null);
        }
Пример #3
0
 // generate prototype
 public static string GeneratePrototype(INode node, int currentParameter = -1, bool isInTemplateArgInsight = false)
 {
     if (node is DMethod)
     {
         return(VDServerCompletionDataGenerator.GeneratePrototype(node as DMethod, isInTemplateArgInsight, currentParameter));
     }
     if (node is DVariable)
     {
         return(VDServerCompletionDataGenerator.GeneratePrototype(node as DVariable));
     }
     if (node is DelegateType)
     {
         return(VDServerCompletionDataGenerator.GeneratePrototype(node as DelegateType, currentParameter));
     }
     if (node is DelegateDeclaration)
     {
         return(VDServerCompletionDataGenerator.GeneratePrototype(node as DelegateDeclaration, currentParameter));
     }
     if (node is AbstractType)
     {
         return(VDServerCompletionDataGenerator.GeneratePrototype(node as AbstractType, currentParameter, isInTemplateArgInsight));
     }
     return(null);
 }
Пример #4
0
        /// <summary>
        /// Adds a node to the completion data
        /// </summary>
        /// <param name="Node"></param>
        public void Add(INode Node)
        {
            string name = Node.Name;

            if (string.IsNullOrEmpty(name) || !name.StartsWith(prefix))
            {
                return;
            }

            string type = "I";             // Node.GetType().ToString()

            if (Node is DMethod)
            {
                type = "MTHD";
            }
            else if (Node is DClassLike)
            {
                var ctype = (Node as DClassLike).ClassType;
                if (ctype == DTokens.Struct)
                {
                    type = "STRU";
                }
                else if (ctype == DTokens.Class)
                {
                    type = "CLSS";
                }
                else if (ctype == DTokens.Interface)
                {
                    type = "IFAC";
                }
                else if (ctype == DTokens.Template)
                {
                    type = "TMPL";
                }
                else if (ctype == DTokens.Union)
                {
                    type = "UNIO";
                }
            }
            else if (Node is DEnum)
            {
                type = "ENUM";
            }
            else if (Node is DEnumValue)
            {
                type = "EVAL";
            }
            else if (Node is NamedTemplateMixinNode)
            {
                type = "NMIX";
            }
            else if (Node is DVariable)
            {
                type = "VAR";
            }
            else if (Node is DModule)
            {
                type = "MOD";
            }

            string desc  = Node.Description.Trim();
            string proto = VDServerCompletionDataGenerator.GeneratePrototype(Node);

            if (!string.IsNullOrEmpty(proto) && !string.IsNullOrEmpty(desc))
            {
                proto = proto + "\n\n";
            }
            desc = proto + desc;
            addExpansion(name, type, desc);
        }