@@ -23,9 +23,9 @@ public static class LlmRenderingHelpers
2323{
2424 public static void RenderBlockWithIndentation ( LlmMarkdownRenderer renderer , MarkdownObject block , string indentation = " " )
2525 {
26- var content = DocumentationObjectPoolProvider . UseLlmMarkdownRenderer ( renderer . BuildContext , tempRenderer =>
26+ var content = DocumentationObjectPoolProvider . UseLlmMarkdownRenderer ( renderer . BuildContext , block , static ( obj , tmpRenderer ) =>
2727 {
28- _ = tempRenderer . Render ( block ) ;
28+ _ = tmpRenderer . Render ( obj ) ;
2929 } ) ;
3030
3131 if ( string . IsNullOrEmpty ( content ) )
@@ -190,11 +190,10 @@ private static string GetContinuationIndent(string baseIndent, bool isOrdered) =
190190
191191 private static void RenderBlockWithIndentation ( LlmMarkdownRenderer renderer , Block block , string baseIndent , bool isOrdered )
192192 {
193- var blockOutput = DocumentationObjectPoolProvider . UseLlmMarkdownRenderer ( renderer . BuildContext , tempRenderer =>
193+ var blockOutput = DocumentationObjectPoolProvider . UseLlmMarkdownRenderer ( renderer . BuildContext , block , static ( obj , tmpRenderer ) =>
194194 {
195- _ = tempRenderer . Render ( block ) ;
195+ _ = tmpRenderer . Render ( obj ) ;
196196 } ) ;
197-
198197 var continuationIndent = GetContinuationIndent ( baseIndent , isOrdered ) ;
199198 var lines = blockOutput . Split ( '\n ' ) ;
200199 for ( var i = 0 ; i < lines . Length ; i ++ )
@@ -287,15 +286,11 @@ protected override void Write(LlmMarkdownRenderer renderer, Table table)
287286 renderer . Writer . Write ( " " ) ;
288287
289288 // Capture cell content
290- var content = DocumentationObjectPoolProvider . UseLlmMarkdownRenderer ( renderer . BuildContext , tempRenderer =>
289+ var content = DocumentationObjectPoolProvider . UseLlmMarkdownRenderer ( renderer . BuildContext , cell . Descendants ( ) . OfType < Inline > ( ) , static ( obj , tmpRenderer ) =>
291290 {
292- // Render cell content to temporary writer
293- foreach ( var inline in cell . Descendants ( ) . OfType < Inline > ( ) )
294- {
295- tempRenderer . Write ( inline ) ;
296- }
291+ foreach ( var inline in obj )
292+ tmpRenderer . Write ( inline ) ;
297293 } ) ;
298-
299294 // Write padded content
300295 renderer . Writer . Write ( content . PadRight ( columnWidths [ cellIndex ] ) ) ;
301296 renderer . Writer . Write ( " |" ) ;
@@ -325,13 +320,10 @@ protected override void Write(LlmMarkdownRenderer renderer, Table table)
325320 renderer . Writer . Write ( " " ) ;
326321
327322 // Capture cell content
328- var content = DocumentationObjectPoolProvider . UseLlmMarkdownRenderer ( renderer . BuildContext , tempRenderer =>
323+ var content = DocumentationObjectPoolProvider . UseLlmMarkdownRenderer ( renderer . BuildContext , cell . Descendants ( ) . OfType < Inline > ( ) , static ( obj , tmpRenderer ) =>
329324 {
330- // Render cell content to temporary writer
331- foreach ( var inline in cell . Descendants ( ) . OfType < Inline > ( ) )
332- {
333- tempRenderer . Write ( inline ) ;
334- }
325+ foreach ( var inline in obj )
326+ tmpRenderer . Write ( inline ) ;
335327 } ) ;
336328
337329 // Write padded content
@@ -364,13 +356,10 @@ private static int[] CalculateColumnWidths(LlmMarkdownRenderer renderer, Table t
364356 foreach ( var cell in row . Cast < TableCell > ( ) )
365357 {
366358 // Capture cell content
367- var content = DocumentationObjectPoolProvider . UseLlmMarkdownRenderer ( renderer . BuildContext , tempRenderer =>
359+ var content = DocumentationObjectPoolProvider . UseLlmMarkdownRenderer ( renderer . BuildContext , cell . Descendants ( ) . OfType < Inline > ( ) , static ( obj , tmpRenderer ) =>
368360 {
369- // Render cell content to temporary writer
370- foreach ( var inline in cell . Descendants ( ) . OfType < Inline > ( ) )
371- {
372- tempRenderer . Write ( inline ) ;
373- }
361+ foreach ( var inline in obj )
362+ tmpRenderer . Write ( inline ) ;
374363 } ) ;
375364
376365 // Update width if this cell is wider
@@ -494,15 +483,15 @@ private void WriteIncludeBlock(LlmMarkdownRenderer renderer, IncludeBlock block)
494483 private static void WriteChildrenWithIndentation ( LlmMarkdownRenderer renderer , Block container , string indent )
495484 {
496485 // Capture output and manually add indentation
497- var content = DocumentationObjectPoolProvider . UseLlmMarkdownRenderer ( renderer . BuildContext , tempRenderer =>
486+ var content = DocumentationObjectPoolProvider . UseLlmMarkdownRenderer ( renderer . BuildContext , container , static ( obj , tmpRenderer ) =>
498487 {
499- switch ( container )
488+ switch ( obj )
500489 {
501490 case ContainerBlock containerBlock :
502- tempRenderer . WriteChildren ( containerBlock ) ;
491+ tmpRenderer . WriteChildren ( containerBlock ) ;
503492 break ;
504493 case LeafBlock leafBlock :
505- tempRenderer . WriteLeafInline ( leafBlock ) ;
494+ tmpRenderer . WriteLeafInline ( leafBlock ) ;
506495 break ;
507496 }
508497 } ) ;
@@ -538,11 +527,10 @@ protected override void Write(LlmMarkdownRenderer renderer, DefinitionItem obj)
538527
539528 private static string GetPlainTextFromLeafBlock ( LlmMarkdownRenderer renderer , LeafBlock leafBlock )
540529 {
541- var markdownText = DocumentationObjectPoolProvider . UseLlmMarkdownRenderer ( renderer . BuildContext , tempRenderer =>
530+ var markdownText = DocumentationObjectPoolProvider . UseLlmMarkdownRenderer ( renderer . BuildContext , leafBlock , static ( obj , tmpRenderer ) =>
542531 {
543- tempRenderer . WriteLeafInline ( leafBlock ) ;
532+ tmpRenderer . WriteLeafInline ( obj ) ;
544533 } ) ;
545-
546534 return markdownText . StripMarkdown ( ) ;
547535 }
548536}
0 commit comments