public TemplateDirectiveInfo([NotNull] T4Environment environment) : base("template") { bool isAtLeastVs2012 = environment.VsVersion2.Major >= VsVersions.Vs2012; LanguageAttribute = new EnumDirectiveAttributeInfo("language", DirectiveAttributeOptions.None, "C#", "VB"); HostSpecificAttribute = isAtLeastVs2012 ? new EnumDirectiveAttributeInfo("hostspecific", DirectiveAttributeOptions.None, "true", "false", "trueFromBase") : new BooleanDirectiveAttributeInfo("hostspecific", DirectiveAttributeOptions.None); 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 EnumDirectiveAttributeInfo("visibility", DirectiveAttributeOptions.None, "public", "internal"); var attributes = new List <DirectiveAttributeInfo>(8) { LanguageAttribute, HostSpecificAttribute, DebugAttribute, InheritsAttribute, CultureAttribute, CompilerOptionsAttribute }; if (isAtLeastVs2012) { attributes.Add(LinePragmasAttribute); attributes.Add(VisibilityAttribute); } SupportedAttributes = attributes.ToImmutableArray(); }
public IncludeDirectiveInfo([NotNull] T4Environment environment) : base("include") { FileAttribute = new DirectiveAttributeInfo("file", DirectiveAttributeOptions.Required | DirectiveAttributeOptions.DisplayInCodeStructure); OnceAttribute = new BooleanDirectiveAttributeInfo("once", DirectiveAttributeOptions.None); SupportedAttributes = ImmutableArray.FromArguments( environment.VsVersion2.Major >= 12 ? new[] { FileAttribute, OnceAttribute } : new[] { FileAttribute } ); }