public override void VisitSpan(Span span) { base.VisitSpan(span); if (span.Hidden) { WriteBlock(CurrentBlock); } else { CurrentBlock.VisitSpan(span); if (!TryVisitSpecialSpanCore(span)) { switch (span.Kind) { case SpanKind.Code: CurrentBlock.Writer.WriteSnippet(span.Content); if (CurrentBlock.BlockType == BlockType.Functions) { // Write the block immediately WriteBlock(CurrentBlock); } else if (CurrentBlock.BlockType == BlockType.Statement && CurrentBlock.VisitedSpans.Count == 2 && CurrentBlock.VisitedSpans[0].Kind == SpanKind.Transition) { CurrentBlock.GeneratedColumnOffset = -1; } return; case SpanKind.Markup: if (!String.IsNullOrEmpty(span.Content)) { CurrentBlock.Writer.WriteStartMethodInvoke(CurrentWriteLiteralMethod); if (InNestedWriterBlock) { CurrentBlock.Writer.WriteIdentifier(CurrentWriterName); CurrentBlock.Writer.WriteParameterSeparator(); } CurrentBlock.Writer.WriteStringLiteral(span.Content); CurrentBlock.Writer.WriteEndMethodInvoke(); CurrentBlock.Writer.WriteEndStatement(); WriteBlock(CurrentBlock); } return; } } } }