MCPcopy
hub / github.com/Textualize/toolong / render_lines

Method render_lines

src/toolong/log_lines.py:571–594  ·  view source on GitHub ↗
(self, crop: Region)

Source from the content-addressed store, hash-verified

569 )
570
571 def render_lines(self, crop: Region) -> list[Strip]:
572 self.update_virtual_size()
573
574 page_height = self.scrollable_content_region.height
575 scroll_y = self.scroll_offset.y
576 line_count = self.line_count
577 index_to_span = self.index_to_span
578 for index in range(
579 max(0, scroll_y - page_height),
580 min(line_count, scroll_y + page_height + page_height),
581 ):
582 log_file_span = index_to_span(index)
583 if log_file_span not in self._line_cache:
584 log_file, *span = log_file_span
585 self._line_reader.request_line(log_file, index, *span)
586 if self.show_line_numbers:
587 max_line_no = self.scroll_offset.y + page_height
588 self._gutter_width = len(f"{max_line_no+1} ")
589 else:
590 self._gutter_width = 0
591 if self.pointer_line is not None:
592 self._gutter_width += 3
593
594 return super().render_lines(crop)
595
596 def render_line(self, y: int) -> Strip:
597 scroll_x, scroll_y = self.scroll_offset

Callers

nothing calls this directly

Calls 2

update_virtual_sizeMethod · 0.95
request_lineMethod · 0.80

Tested by

no test coverage detected