public void AppendContent( T4CSharpCodeGenerationResult destination, IT4ElementAppendFormatProvider provider ) { if (FirstNode != null) { destination.AppendLine(provider.Indent); destination.Append(provider.Indent); provider.AppendLineDirective(destination, FirstNode); } else { destination.Append(provider.Indent); } destination.Append(provider.ExpressionWritingPrefix); destination.Append("\""); destination.Append(Sanitize(Text)); destination.Append("\""); destination.AppendLine(provider.ExpressionWritingSuffix); if (FirstNode != null) { destination.AppendLine(); destination.AppendLine(provider.Indent); destination.Append(provider.Indent); destination.AppendLine("#line default"); destination.Append(provider.Indent); destination.AppendLine("#line hidden"); } }
protected override void AppendContentPrefix( T4CSharpCodeGenerationResult destination, IT4ElementAppendFormatProvider provider ) { destination.Append(provider.ExpressionWritingPrefix); destination.Append(provider.ToStringConversionPrefix); }
public override void AppendLineDirective(T4CSharpCodeGenerationResult destination, IT4TreeNode node) { var sourceFile = node.FindLogicalPsiSourceFile(); int offset = T4UnsafeManualRangeTranslationUtil.GetDocumentStartOffset(node).Offset; int line = (int)sourceFile.Document.GetCoordsByOffset(offset).Line; destination.AppendLine($"#line {line + 1} \"{sourceFile.GetLocation()}\""); }
public void AppendName([NotNull] T4CSharpCodeGenerationResult result) { if (CSharpLexer.IsKeyword(NameToken.GetText())) { result.Append("@"); } result.AppendMapped(NameToken); }
protected T4CSharpIntermediateConverterBase( [NotNull] T4CSharpCodeGenerationIntermediateResult intermediateResult, [NotNull] IT4File file ) { IntermediateResult = intermediateResult; File = file; Result = new T4CSharpCodeGenerationResult(File); }
protected T4CSharpIntermediateConverterBase( [NotNull] IT4File file, [NotNull] IT4GeneratedClassNameProvider classNameProvider ) { File = file; ClassNameProvider = classNameProvider; Result = new T4CSharpCodeGenerationResult(File); }
public T4CSharpCodeGenerationIntermediateResult( [NotNull] IT4File file, [NotNull] IT4CodeGenerationInterrupter interrupter ) { CollectedBaseClass = new T4CSharpCodeGenerationResult(file); MyTransformationDescriptions = new List <IT4AppendableElementDescription>(); MyFeatureDescriptions = new List <IT4AppendableElementDescription>(); MyParameterDescriptions = new List <T4ParameterDescription>(); MyImportDescriptions = new List <T4ImportDescription>(); State = new T4InfoCollectorStateInitial(interrupter); HasHost = false; }
public override void AppendCompilationOffset(T4CSharpCodeGenerationResult destination, IT4TreeNode node) { int documentOffset = T4UnsafeManualRangeTranslationUtil.GetDocumentStartOffset(node).Offset; var lineOffset = node .FindLogicalPsiSourceFile() .Document .GetCoordsByOffset(documentOffset) .Column; for (var i = Int32 <DocColumn> .O; i < lineOffset; i++) { destination.Append(" "); } }
public override void AppendContent( T4CSharpCodeGenerationResult destination, IT4ElementAppendFormatProvider provider ) { destination.Append(provider.Indent); provider.AppendLineDirective(destination, Source); provider.AppendCompilationOffset(destination, Source); destination.Append("using "); destination.AppendMapped(Source); destination.AppendLine(";"); destination.Append(provider.Indent); destination.AppendLine("#line default"); destination.Append(provider.Indent); destination.AppendLine("#line hidden"); }
public void AppendTypeMapped([NotNull] T4CSharpCodeGenerationResult result) { string typeText = TypeToken.GetText(); string keyword = CSharpTypeFactory.GetTypeKeyword(new ClrTypeName(typeText)); if (keyword != null) { result.Append(keyword); return; } result.Append("global::"); if (CSharpLexer.IsKeyword(typeText)) { result.Append("@"); } result.AppendMapped(TypeToken); }
public override void AppendMappedIfNeeded(T4CSharpCodeGenerationResult destination, IT4Code code) => destination.Append(code.GetText().Trim());
public abstract void AppendLineDirective(T4CSharpCodeGenerationResult destination, IT4TreeNode node);
public override void AppendCompilationOffset(T4CSharpCodeGenerationResult destination, IT4TreeNode node) { // In preprocessed file, behave like VS }
public abstract void AppendMappedIfNeeded(T4CSharpCodeGenerationResult destination, IT4Code code);
public override void AppendCompilationOffset(T4CSharpCodeGenerationResult destination, IT4TreeNode node) { }
public override void AppendLineDirective(T4CSharpCodeGenerationResult destination, IT4TreeNode node) { // Line directives in code-behind affect nothing anyway. // The mapping between the code and the document // is handled by document range translators. }
public void AppendType([NotNull] T4CSharpCodeGenerationResult result) => result.Append(TypeString);
public abstract void AppendCompilationOffset(T4CSharpCodeGenerationResult destination, IT4TreeNode node);