protected virtual void WriteHelperTrailer(BlockContext block, HelperFooterSpan endSequenceSpan) { CurrentHelper.TrailerWritten = true; // Write the helper trailer if (CurrentHelper.WroteHelperPrefix) { block.SourceCodeStart = null; block.Writer.WriteEndLambdaDelegate(); block.Writer.WriteEndConstructor(); block.Writer.WriteEndStatement(); WriteBlockToHelperContent(block); block.ResetBuffer(); } if (endSequenceSpan != null) { block.VisitSpan(endSequenceSpan); } // If block contains end sequence, write it, otherwise get the code writer to do it if (endSequenceSpan != null) { block.WriteLinePragma = DesignTimeMode; block.MarkStartGeneratedCode(); block.Writer.WriteSnippet(endSequenceSpan.Content); block.MarkEndGeneratedCode(); block.Writer.InnerWriter.WriteLine(); } else { block.Writer.WriteHelperTrailer(); } }
// Called after the end of a sub-block within the specified block protected virtual void ResumeBlock(BlockContext block, BlockContext previousBlock) { if (previousBlock.BlockType == BlockType.Template) { block.Writer.WriteEndLambdaDelegate(); block.Writer.WriteEndConstructor(); block.Writer.WriteEndLambdaExpression(); } block.MarkStartGeneratedCode(); }