public IEnumerable <CompletionData> GetControlCompletionData(IType baseType) { bool isSWC = baseType.FullName == "System.Web.UI.Control"; string aspPrefix = "asp:"; foreach (IType cls in WebTypeContext.ListSystemControlClasses(baseType, Project)) { yield return(new AspTagCompletionData(aspPrefix, cls)); } foreach (var rd in RegisteredTags) { if (!rd.IsValid()) { continue; } var ard = rd as AssemblyRegisterDirective; if (ard != null) { var dom = TypeCtx.ResolveAssembly(ard.Assembly); if (dom == null) { continue; } string prefix = ard.TagPrefix + ":"; foreach (IType cls in WebTypeContext.ListControlClasses(baseType, dom, ard.Namespace)) { yield return(new AspTagCompletionData(prefix, cls)); } continue; } if (!isSWC) { continue; } ControlRegisterDirective cd = rd as ControlRegisterDirective; if (cd != null) { yield return(new CompletionData(string.Concat(cd.TagPrefix, ":", cd.TagName), Gtk.Stock.GoForward)); } } //return controls from web.config foreach (var cd in TypeCtx.GetRegisteredTypeCompletionData(DirectoryPath, baseType)) { yield return(cd); } }
public string GetRegisterDirectives() { var sb = new System.Text.StringBuilder(); foreach (var directive in RegisteredTags) { var ard = directive as AssemblyRegisterDirective; if (ard != null) { sb.AppendFormat("<%@ Register {0}=\"{1}\" {2}=\"{3}\" {4}=\"{5}\" %>", "TagPrefix", ard.TagPrefix, "Namespace", ard.Namespace, "Assembly", ard.Assembly); } else { ControlRegisterDirective crd = (ControlRegisterDirective)directive; sb.AppendFormat("<%@ Register {0}=\"{1}\" {2}=\"{3}\" {4}=\"{5}\" %>", "TagPrefix", crd.TagPrefix, "TagName", crd.TagName, "Src", crd.Src); } } return(sb.ToString()); }