Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'helix-tui/src/widgets/paragraph.rs')
| -rw-r--r-- | helix-tui/src/widgets/paragraph.rs | 36 |
1 files changed, 2 insertions, 34 deletions
diff --git a/helix-tui/src/widgets/paragraph.rs b/helix-tui/src/widgets/paragraph.rs index 2b4ccfbd..9c8ae127 100644 --- a/helix-tui/src/widgets/paragraph.rs +++ b/helix-tui/src/widgets/paragraph.rs @@ -37,7 +37,7 @@ fn get_line_offset(line_width: u16, text_area_width: u16, alignment: Alignment) /// Spans::from(Span::styled("Second line", Style::default().fg(Color::Red))), /// ]); /// Paragraph::new(&text) -/// .block(Block::bordered().title("Paragraph")) +/// .block(Block::default().title("Paragraph").borders(Borders::ALL)) /// .style(Style::default().fg(Color::White).bg(Color::Black)) /// .alignment(Alignment::Center) /// .wrap(Wrap { trim: true }); @@ -127,41 +127,9 @@ impl<'a> Paragraph<'a> { self.alignment = alignment; self } - - pub fn required_size(&self, max_text_width: u16) -> (u16, u16) { - let style = self.style; - let mut styled = self.text.lines.iter().flat_map(|spans| { - spans - .0 - .iter() - .flat_map(|span| span.styled_graphemes(style)) - // Required given the way composers work but might be refactored out if we change - // composers to operate on lines instead of a stream of graphemes. - .chain(iter::once(StyledGrapheme { - symbol: "\n", - style: self.style, - })) - }); - let mut line_composer: Box<dyn LineComposer> = if let Some(Wrap { trim }) = self.wrap { - Box::new(WordWrapper::new(&mut styled, max_text_width, trim)) - } else { - let mut line_composer = Box::new(LineTruncator::new(&mut styled, max_text_width)); - if self.alignment == Alignment::Left { - line_composer.set_horizontal_offset(self.scroll.1); - } - line_composer - }; - let mut text_width = 0; - let mut text_height = 0; - while let Some((_, line_width)) = line_composer.next_line() { - text_width = line_width.max(text_width); - text_height += 1; - } - (text_width, text_height) - } } -impl Widget for Paragraph<'_> { +impl<'a> Widget for Paragraph<'a> { fn render(mut self, area: Rect, buf: &mut Buffer) { buf.set_style(area, self.style); let text_area = match self.block.take() { |