public TemplateDirectiveInfo() : base("template")
        {
            LanguageAttribute     = new LanguageAttributeInfo();
            HostSpecificAttribute = new EnumDirectiveAttributeInfo(
                "hostspecific",
                DirectiveAttributeOptions.None,
                "true",
                "false",
                "trueFromBase"
                );
            DebugAttribute           = new BooleanDirectiveAttributeInfo("debug", DirectiveAttributeOptions.None);
            InheritsAttribute        = new DirectiveAttributeInfo("inherits", DirectiveAttributeOptions.None);
            CultureAttribute         = new CultureDirectiveAttributeInfo("culture", DirectiveAttributeOptions.None);
            CompilerOptionsAttribute = new DirectiveAttributeInfo("compilerOptions", DirectiveAttributeOptions.None);
            LinePragmasAttribute     = new BooleanDirectiveAttributeInfo("linePragmas", DirectiveAttributeOptions.None);
            VisibilityAttribute      = new T4VisibilityDirectiveAttributeInfo(DirectiveAttributeOptions.None);


            SupportedAttributes = new List <DirectiveAttributeInfo>(8)
            {
                LanguageAttribute,
                HostSpecificAttribute,
                DebugAttribute,
                InheritsAttribute,
                CultureAttribute,
                CompilerOptionsAttribute,
                LinePragmasAttribute,
                VisibilityAttribute
            }.ToImmutableArray();
        }
 public IncludeDirectiveInfo() : base("include")
 {
     FileAttribute = new DirectiveAttributeInfo("file",
                                                DirectiveAttributeOptions.Required | DirectiveAttributeOptions.DisplayInCodeStructure);
     OnceAttribute       = new BooleanDirectiveAttributeInfo("once", DirectiveAttributeOptions.None);
     SupportedAttributes = ImmutableArray.FromArguments(FileAttribute, OnceAttribute);
 }