protected virtual void AppendClasses([NotNull] T4CSharpCodeGenerationIntermediateResult intermediateResult) { AppendClass(intermediateResult); AppendIndent(); Result.AppendLine(); AppendBaseClass(intermediateResult); }
public virtual T4CSharpCodeGenerationResult Convert( [NotNull] T4CSharpCodeGenerationIntermediateResult intermediateResult ) { string ns = File .LogicalPsiSourceFile .ToProjectFile() .NotNull() .CalculateExpectedNamespace(T4Language.Instance); bool hasNamespace = !string.IsNullOrEmpty(ns); if (hasNamespace) { Result.AppendLine($"namespace {ns}"); Result.AppendLine("{"); PushIndent(); AppendNamespaceContents(intermediateResult); PopIndent(); Result.AppendLine("}"); } else { AppendNamespaceContents(intermediateResult); } return(Result); }
protected override void AppendBaseClass(T4CSharpCodeGenerationIntermediateResult intermediateResult) { if (!IsRoot) { return; } base.AppendBaseClass(intermediateResult); }
protected override T4CSharpIntermediateConverterBase CreateConverter( T4CSharpCodeGenerationIntermediateResult intermediateResult ) { var referenceExtractionManager = File.GetSolution().GetComponent <IT4ReferenceExtractionManager>(); return(new T4CSharpExecutableIntermediateConverter(intermediateResult, File, referenceExtractionManager)); }
protected T4CSharpIntermediateConverterBase( [NotNull] T4CSharpCodeGenerationIntermediateResult intermediateResult, [NotNull] IT4File file ) { IntermediateResult = intermediateResult; File = file; Result = new T4CSharpCodeGenerationResult(File); }
public T4CSharpExecutableIntermediateConverter( [NotNull] T4CSharpCodeGenerationIntermediateResult intermediateResult, [NotNull] IT4File file, [NotNull] IT4ReferenceExtractionManager referenceExtractionManager ) : base(intermediateResult, file) { file.AssertContainsNoIncludeContext(); ReferenceExtractionManager = referenceExtractionManager; }
protected override void AppendTransformMethod(T4CSharpCodeGenerationIntermediateResult intermediateResult) { Result.AppendLine("#line hidden"); AppendIndent(); Result.AppendLine("/// <summary>"); AppendIndent(); Result.AppendLine("/// Create the template output"); AppendIndent(); Result.AppendLine("/// </summary>"); base.AppendTransformMethod(intermediateResult); }
private void AppendFeatures([NotNull] T4CSharpCodeGenerationIntermediateResult intermediateResult) { if (intermediateResult.HasHost) { AppendHost(); } foreach (var description in intermediateResult.FeatureDescriptions) { description.AppendContent(Result, this); } }
private void AppendBaseClassName([NotNull] T4CSharpCodeGenerationIntermediateResult intermediateResult) { if (intermediateResult.HasBaseClass) { Result.Append(intermediateResult.CollectedBaseClass); } else { Result.Append(ClassNameProvider.GeneratedBaseClassFQN); } }
private void AppendMainContainer([NotNull] T4CSharpCodeGenerationIntermediateResult intermediateResult) { string resource = intermediateResult.HasHost ? HostspecificSuffixResource : SuffixResource; var provider = new T4TemplateResourceProvider(resource); string encoding = intermediateResult.Encoding ?? T4EncodingsManager.GetEncoding(File); string suffix = provider.ProcessResource(ClassNameProvider.GeneratedClassName, encoding); Result.Append(suffix); AppendAssemblyRegistering(); // assembly registration code is part of main class, // so resources do not include closing brace Result.Append("}"); }
protected override void AppendClass(T4CSharpCodeGenerationIntermediateResult intermediateResult) { AppendIndent(); Result.AppendLine(); AppendClassSummary(); AppendIndent(); Result.AppendLine(); AppendIndent(); File.AssertContainsNoIncludeContext(); Result.AppendLine($"#line 1 \"{File.PhysicalPsiSourceFile.GetLocation()}\""); AppendIndent(); Result.AppendLine(GeneratedCodeAttribute); base.AppendClass(intermediateResult); }
protected virtual void AppendBaseClass([NotNull] T4CSharpCodeGenerationIntermediateResult intermediateResult) { if (intermediateResult.HasBaseClass) { return; } Result.AppendLine(BaseClassDescription); AppendIndent(); Result.Append(intermediateResult.AccessRightsText); Result.Append(" class "); Result.AppendLine(ClassNameProvider.GeneratedBaseClassName); string resource = BaseClassResourceName; var provider = new T4TemplateResourceProvider(resource); Result.Append(provider.Template); }
protected override void AppendConstructor(T4CSharpCodeGenerationIntermediateResult intermediateResult) { if (!intermediateResult.HasHost) { return; } AppendIndent(); Result.Append($"public GeneratedTextTransformation({T4TextTemplatingFQNs.Lifetime} lifetime)"); AppendIndent(); Result.AppendLine("{"); PushIndent(); AppendHostInitialization(); PopIndent(); AppendIndent(); Result.AppendLine("}"); }
public override T4CSharpCodeGenerationResult Convert( T4CSharpCodeGenerationIntermediateResult intermediateResult ) { Result.Append($@"// ------------------------------------------------------------------------------ // <auto-generated> // This code was generated by a tool. // Runtime Version: {T4TextTemplatingFQNs.RuntimeVersion} // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // </auto-generated> // ------------------------------------------------------------------------------ "); return(base.Convert(intermediateResult)); }
protected override void AppendConstructor(T4CSharpCodeGenerationIntermediateResult intermediateResult) { AppendIndent(); Result.AppendLine("public GeneratedTextTransformation()"); AppendIndent(); Result.AppendLine("{"); PushIndent(); if (intermediateResult.HasHost) { AppendHostInitialization(); } PopIndent(); PopIndent(); AppendIndent(); Result.AppendLine("}"); }
protected virtual void AppendClass([NotNull] T4CSharpCodeGenerationIntermediateResult intermediateResult) { AppendIndent(); Result.Append(intermediateResult.AccessRightsText); Result.Append($" partial class {ClassNameProvider.GeneratedClassName} : "); AppendBaseClassName(intermediateResult); Result.AppendLine(); using (new CodeBlockCookie(this)) { AppendConstructor(intermediateResult); AppendTransformMethod(intermediateResult); AppendFeatures(intermediateResult); if (!intermediateResult.ParameterDescriptions.IsEmpty()) { AppendIndent(); Result.AppendLine(); AppendIndent(); Result.AppendLine($"#line 1 \"{File.LogicalPsiSourceFile.GetLocation()}\""); Result.AppendLine(); } using (new UnindentCookie(this)) { AppendParameterDeclarations(intermediateResult.ParameterDescriptions); AppendTemplateInitialization(intermediateResult.ParameterDescriptions, intermediateResult.HasHost); } if (!intermediateResult.ParameterDescriptions.IsEmpty()) { Result.AppendLine(); Result.AppendLine(); AppendIndent(); Result.AppendLine(); AppendIndent(); Result.AppendLine("#line default"); AppendIndent(); Result.AppendLine("#line hidden"); } } }
private void AppendImports([NotNull] T4CSharpCodeGenerationIntermediateResult intermediateResult) { foreach (var description in intermediateResult.ImportDescriptions) { description.AppendContent(Result, this); } if (ShouldAppendPragmaDirectives) { AppendIndent(); Result.AppendLine("#pragma warning disable 8019"); } AppendIndent(); Result.AppendLine("using System;"); if (ShouldAppendPragmaDirectives) { AppendIndent(); Result.AppendLine("#pragma warning restore 8019"); } }
public virtual T4CSharpCodeGenerationResult Convert( [NotNull] T4CSharpCodeGenerationIntermediateResult intermediateResult ) { string ns = GeneratorKind.ProvideTemplateNamespace(File); bool hasNamespace = !string.IsNullOrEmpty(ns); if (hasNamespace) { Result.AppendLine($"namespace {ns}"); Result.AppendLine("{"); PushIndent(); AppendNamespaceContents(intermediateResult); PopIndent(); Result.AppendLine("}"); } else { AppendNamespaceContents(intermediateResult); } return(Result); }
protected virtual void AppendTransformMethod( [NotNull] T4CSharpCodeGenerationIntermediateResult intermediateResult ) { if (!TransformTextAttributes.IsNullOrEmpty()) { AppendIndent(); Result.AppendLine(TransformTextAttributes); } AppendIndent(); Result.Append("public "); Result.Append(GetTransformTextOverridabilityModifier(intermediateResult.HasBaseClass)); Result.AppendLine($" string {TransformTextMethodName}()"); using (new CodeBlockCookie(this)) { foreach (var description in intermediateResult.TransformationDescriptions) { description.AppendContent(Result, this); } AppendIndent(); Result.AppendLine("return this.GenerationEnvironment.ToString();"); } }
private void AppendNamespaceContents([NotNull] T4CSharpCodeGenerationIntermediateResult intermediateResult) { AppendImports(intermediateResult); AppendClasses(intermediateResult); }
protected override T4CSharpIntermediateConverterBase CreateConverter( T4CSharpCodeGenerationIntermediateResult intermediateResult ) => new T4CSharpIntermediateConverter(intermediateResult, File);
protected override void AppendTransformMethod(T4CSharpCodeGenerationIntermediateResult intermediateResult) { AppendSyntheticAttribute(); base.AppendTransformMethod(intermediateResult); }
// we reference JetBrains.TextTemplating, which already contains the definition for TextTransformation protected override void AppendClasses(T4CSharpCodeGenerationIntermediateResult intermediateResult) => AppendClass(intermediateResult);
protected override void AppendClass(T4CSharpCodeGenerationIntermediateResult intermediateResult) { AppendSyntheticAttribute(); base.AppendClass(intermediateResult); }
// When creating executable, we reference JetBrains.TextTemplating, // which already contains the definition for TextTransformation protected override void AppendClasses(T4CSharpCodeGenerationIntermediateResult intermediateResult) { AppendMainContainer(intermediateResult); AppendClass(intermediateResult); }
public T4CSharpIntermediateConverter( [NotNull] T4CSharpCodeGenerationIntermediateResult intermediateResult, [NotNull] IT4File file ) : base(intermediateResult, file) { }
protected virtual void AppendConstructor([NotNull] T4CSharpCodeGenerationIntermediateResult intermediateResult) { }