public ExtParameter Dupe(string type) { ExtParameter p = new ExtParameter(); p.Type = type; p.Name = Name; p.Usage = Usage; p.Description = Description; return p; }
public static ExtParameter ParseParameter(string member) { /** * @param {String/HTMLElement/Ext.Element} el The id of or container element */ member = member.Substring("@param".Length).Trim(); // leaving "{String/HTMLElement/Ext.Element} el The id of or container element" ExtParameter ep = new ExtParameter(); ep.Type = "Object"; ep.Name = "obj"; ep.Description = new ExtDescription(); if (member.StartsWith("{")) { int i = member.IndexOf("}"); if (i < 0) i = member.IndexOf(")"); ep.Type = member.Substring(1, i - 1); member = member.Substring(i + 1).Trim(); // leaving "el The id of or container element" i = member.IndexOf(" "); if (i < 0) { ep.Name = member; // only one word left } else { ep.Name = member.Substring(0, i); member = member.Substring(i).Trim(); // leaving "The id of or container element" ep.Description.Value = member; } } else { string[] data = member.Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); ep.Type = "Object"; ep.Name = data.Length > 0 ? data[0] : "obj"; for (int i = 1; i < data.Length; i++) { if (i > 1) ep.Description.Value += " "; ep.Description.Value += data[i]; } } ep.Name = ExtType.ParseParameterName(ep.Name); if (ep.Type.Contains("...")) { ep.Type = ep.Type.Replace("...", ""); ep.Name = "etc"; // many args expected } // if (ep.Type.Contains("@link ")) ep.Type = ep.Type.Replace("@link ", ""); return ep; }