@@ -279,25 +279,7 @@ protected override void Write(LlmMarkdownRenderer renderer, Table table)
279279 // Render table header
280280 if ( table . Count > 0 && table [ 0 ] is TableRow headerRow )
281281 {
282- renderer . Writer . Write ( "|" ) ;
283- var cellIndex = 0 ;
284- foreach ( var cell in headerRow . Cast < TableCell > ( ) )
285- {
286- renderer . Writer . Write ( " " ) ;
287-
288- // Capture cell content
289- var content = DocumentationObjectPoolProvider . UseLlmMarkdownRenderer ( renderer . BuildContext , cell . Descendants ( ) . OfType < Inline > ( ) , static ( tmpRenderer , obj ) =>
290- {
291- foreach ( var inline in obj )
292- tmpRenderer . Write ( inline ) ;
293- } ) ;
294- // Write padded content
295- renderer . Writer . Write ( content . PadRight ( columnWidths [ cellIndex ] ) ) ;
296- renderer . Writer . Write ( " |" ) ;
297- cellIndex ++ ;
298- }
299-
300- renderer . WriteLine ( ) ;
282+ RenderTableRowCells ( renderer , headerRow , columnWidths ) ;
301283
302284 // Render separator row with proper alignment
303285 renderer . Writer . Write ( "|" ) ;
@@ -313,27 +295,26 @@ protected override void Write(LlmMarkdownRenderer renderer, Table table)
313295 // Render table body with aligned columns
314296 foreach ( var row in table . Skip ( 1 ) . Cast < TableRow > ( ) )
315297 {
316- renderer . Writer . Write ( "|" ) ;
317- var cellIndex = 0 ;
318- foreach ( var cell in row . Cast < TableCell > ( ) )
319- {
320- renderer . Writer . Write ( " " ) ;
321-
322- // Capture cell content
323- var content = DocumentationObjectPoolProvider . UseLlmMarkdownRenderer ( renderer . BuildContext , cell . Descendants ( ) . OfType < Inline > ( ) , static ( tmpRenderer , obj ) =>
324- {
325- foreach ( var inline in obj )
326- tmpRenderer . Write ( inline ) ;
327- } ) ;
328-
329- // Write padded content
330- renderer . Writer . Write ( content . PadRight ( columnWidths [ cellIndex ] ) ) ;
331- renderer . Writer . Write ( " |" ) ;
332- cellIndex ++ ;
333- }
298+ RenderTableRowCells ( renderer , row , columnWidths ) ;
299+ }
300+ }
334301
335- renderer . WriteLine ( ) ;
302+ /// <summary>
303+ /// Renders a table row with proper cell alignment and padding
304+ /// </summary>
305+ private static void RenderTableRowCells ( LlmMarkdownRenderer renderer , TableRow row , int [ ] columnWidths )
306+ {
307+ renderer . Writer . Write ( "|" ) ;
308+ var cellIndex = 0 ;
309+ foreach ( var cell in row . Cast < TableCell > ( ) )
310+ {
311+ renderer . Writer . Write ( " " ) ;
312+ var content = RenderTableCellContent ( renderer , cell ) ;
313+ renderer . Writer . Write ( content . PadRight ( columnWidths [ cellIndex ] ) ) ;
314+ renderer . Writer . Write ( " |" ) ;
315+ cellIndex ++ ;
336316 }
317+ renderer . WriteLine ( ) ;
337318 }
338319
339320 /// <summary>
@@ -352,24 +333,32 @@ private static int[] CalculateColumnWidths(LlmMarkdownRenderer renderer, Table t
352333 // Process all rows to find maximum width for each column
353334 foreach ( var row in table . Cast < TableRow > ( ) )
354335 {
355- var cellIndex = 0 ;
356- foreach ( var cell in row . Cast < TableCell > ( ) )
336+ for ( var cellIndex = 0 ; cellIndex < row . Count ; cellIndex ++ )
357337 {
338+ var cell = row [ cellIndex ] as TableCell ;
358339 // Capture cell content
359- var content = DocumentationObjectPoolProvider . UseLlmMarkdownRenderer ( renderer . BuildContext , cell . Descendants ( ) . OfType < Inline > ( ) , static ( tmpRenderer , obj ) =>
360- {
361- foreach ( var inline in obj )
362- tmpRenderer . Write ( inline ) ;
363- } ) ;
340+ var content = RenderTableCellContent ( renderer , cell ! ) ;
364341
365342 // Update width if this cell is wider
366343 widths [ cellIndex ] = Math . Max ( widths [ cellIndex ] , content . Length ) ;
367- cellIndex ++ ;
368344 }
369345 }
370346
371347 return widths ;
372348 }
349+
350+ /// <summary>
351+ /// Renders the inline content of a table cell to plain text
352+ /// </summary>
353+ private static string RenderTableCellContent ( LlmMarkdownRenderer renderer , TableCell cell ) =>
354+ DocumentationObjectPoolProvider . UseLlmMarkdownRenderer (
355+ renderer . BuildContext ,
356+ cell . Descendants ( ) . OfType < Inline > ( ) ,
357+ static ( tmpRenderer , obj ) =>
358+ {
359+ foreach ( var inline in obj )
360+ tmpRenderer . Write ( inline ) ;
361+ } ) ;
373362}
374363
375364public class LlmDirectiveRenderer : MarkdownObjectRenderer < LlmMarkdownRenderer , DirectiveBlock >
0 commit comments