protected override void Visit([NotNull] InjectChunk chunk) { Writer.WriteLine(_activateAttribute); // Some of the chunks that we visit are either InjectDescriptors that are added by default or // are chunks from _ViewStart files and are not associated with any Spans. Invoking // CreateExpressionMapping to produce line mappings on these chunks would fail. We'll skip // generating code mappings for these chunks. This makes sense since the chunks do not map // to any code in the current view. if (Context.Host.DesignTimeMode && chunk.Association != null) { Writer.WriteLine("public"); var code = string.IsNullOrEmpty(chunk.MemberName) ? chunk.TypeName : chunk.TypeName + " " + chunk.MemberName; var csharpVisitor = new CSharpCodeVisitor(Writer, Context); csharpVisitor.CreateExpressionCodeMapping(code, chunk); Writer.WriteLine("{ get; private set; }"); } else { Writer.Write("public ") .Write(chunk.TypeName) .Write(" ") .Write(chunk.MemberName) .WriteLine(" { get; private set; }"); } InjectChunks.Add(chunk); }
public RazorLightCSharpDesignTimeCodeVisitor( CSharpCodeVisitor csharpCodeVisitor, CSharpCodeWriter writer, CodeGeneratorContext context) : base(csharpCodeVisitor, writer, context) { }
protected override void Visit([NotNull] InjectChunk chunk) { Writer.WriteLine(_activateAttribute); // Some of the chunks that we visit are either InjectDescriptors that are added by default or // are chunks from _ViewStart files and are not associated with any Spans. Invoking // CreateExpressionMapping to produce line mappings on these chunks would fail. We'll skip // generating code mappings for these chunks. This makes sense since the chunks do not map // to any code in the current view. if (Context.Host.DesignTimeMode && chunk.Association != null) { Writer.WriteLine("public"); var code = string.IsNullOrEmpty(chunk.MemberName) ? chunk.TypeName : chunk.TypeName + ' ' + chunk.MemberName; var csharpVisitor = new CSharpCodeVisitor(Writer, Context); csharpVisitor.CreateExpressionCodeMapping(code, chunk); Writer.WriteLine("{ get; private set; }"); } else { Writer.Write("public ") .Write(chunk.TypeName) .Write(" ") .Write(chunk.MemberName) .WriteLine(" { get; private set; }"); } _injectChunks.Add(chunk); }
public MvcCSharpDesignTimeCodeVisitor( CSharpCodeVisitor csharpCodeVisitor, CSharpCodeWriter writer, CodeGeneratorContext context) : base(csharpCodeVisitor, writer, context) { }
protected override void Visit(ModelChunk chunk) { var csharpVisitor = new CSharpCodeVisitor(Writer, Context); Writer.Write(chunk.BaseType).Write("<"); csharpVisitor.CreateExpressionCodeMapping(chunk.ModelType, chunk); Writer.Write(">"); }
private static TrackingUniqueIdsTagHelperCodeRenderer CreateCodeRenderer() { var writer = new CSharpCodeWriter(); var codeGeneratorContext = CreateContext(); var visitor = new CSharpCodeVisitor(writer, codeGeneratorContext); var codeRenderer = new TrackingUniqueIdsTagHelperCodeRenderer( visitor, writer, codeGeneratorContext); visitor.TagHelperRenderer = codeRenderer; return(codeRenderer); }
protected Result <string> GetEmiterText(string source, Func <SdmapParser, IParseTree> partAccessor, CodeEmiterConfig config = null) { var ais = new AntlrInputStream(source); var lexer = new SdmapLexer(ais); var cts = new CommonTokenStream(lexer); var parser = new SdmapParser(cts); using (var ms = new MemoryStream()) using (var writer = new StreamWriter(ms)) { config = config ?? new CodeEmiterConfig(); var visitor = new CSharpCodeVisitor(writer, config, new CSharpDefine()); return(visitor.Visit(partAccessor(parser)) .OnSuccess(() => writer.Flush()) .OnSuccess(() => ms.ToArray()) .OnSuccess(Encoding.UTF8.GetString)); } }
protected override CSharpDesignTimeCodeVisitor CreateCSharpDesignTimeCodeVisitor( CSharpCodeVisitor csharpCodeVisitor, CSharpCodeWriter writer, CodeGeneratorContext context) { if (csharpCodeVisitor == null) { throw new ArgumentNullException(nameof(csharpCodeVisitor)); } if (writer == null) { throw new ArgumentNullException(nameof(writer)); } if (context == null) { throw new ArgumentNullException(nameof(context)); } return(new MvcCSharpDesignTimeCodeVisitor(csharpCodeVisitor, writer, context)); }
private static TrackingUniqueIdsTagHelperCodeRenderer CreateCodeRenderer() { var writer = new CSharpCodeWriter(); var codeGeneratorContext = CreateContext(); var visitor = new CSharpCodeVisitor(writer, codeGeneratorContext); var codeRenderer = new TrackingUniqueIdsTagHelperCodeRenderer( visitor, writer, codeGeneratorContext); visitor.TagHelperRenderer = codeRenderer; return codeRenderer; }
protected override CSharpDesignTimeCodeVisitor CreateCSharpDesignTimeCodeVisitor( CSharpCodeVisitor csharpCodeVisitor, CSharpCodeWriter writer, CodeGeneratorContext context) { if (csharpCodeVisitor == null) { throw new ArgumentNullException(nameof(csharpCodeVisitor)); } if (writer == null) { throw new ArgumentNullException(nameof(writer)); } if (context == null) { throw new ArgumentNullException(nameof(context)); } return new MvcCSharpDesignTimeCodeVisitor(csharpCodeVisitor, writer, context); }