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); }
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); }
// 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); }
/// <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); }