pub struct LineWrapper { /* private fields */ }Expand description
The GPUI line wrapper, used to wrap lines of text to a given width.
Implementations§
Source§impl LineWrapper
impl LineWrapper
Sourcepub const MAX_INDENT: u32 = 256
pub const MAX_INDENT: u32 = 256
The maximum indent that can be applied to a line.
Sourcepub fn new(
font_id: FontId,
font_size: Pixels,
text_system: Arc<dyn TextSystem>,
) -> Self
pub fn new( font_id: FontId, font_size: Pixels, text_system: Arc<dyn TextSystem>, ) -> Self
Creates a wrapper that measures and truncates text through text_system.
Sourcepub fn wrap_line<'a>(
&'a mut self,
fragments: &'a [LineFragment<'_>],
wrap_width: Pixels,
) -> impl Iterator<Item = Boundary> + 'a
pub fn wrap_line<'a>( &'a mut self, fragments: &'a [LineFragment<'_>], wrap_width: Pixels, ) -> impl Iterator<Item = Boundary> + 'a
Wrap a line of text to the given width with this wrapper’s font and font size.
Sourcepub fn should_truncate_line(
&mut self,
line: &str,
truncate_width: Pixels,
truncation_affix: &str,
truncate_from: TruncateFrom,
) -> Option<usize>
pub fn should_truncate_line( &mut self, line: &str, truncate_width: Pixels, truncation_affix: &str, truncate_from: TruncateFrom, ) -> Option<usize>
Determines if a line should be truncated based on its width.
Returns the truncation index in line.
Sourcepub fn truncate_line<'a>(
&mut self,
line: SharedString,
truncate_width: Pixels,
truncation_affix: &str,
runs: &'a [TextRun],
truncate_from: TruncateFrom,
) -> (SharedString, Cow<'a, [TextRun]>)
pub fn truncate_line<'a>( &mut self, line: SharedString, truncate_width: Pixels, truncation_affix: &str, runs: &'a [TextRun], truncate_from: TruncateFrom, ) -> (SharedString, Cow<'a, [TextRun]>)
Truncate a line of text to the given width with this wrapper’s font and font size.
Sourcepub fn truncate_wrapped_line<'a>(
&mut self,
text: SharedString,
wrap_width: Pixels,
max_lines: usize,
truncation_affix: &str,
runs: &'a [TextRun],
truncate_from: TruncateFrom,
) -> (SharedString, Cow<'a, [TextRun]>)
pub fn truncate_wrapped_line<'a>( &mut self, text: SharedString, wrap_width: Pixels, max_lines: usize, truncation_affix: &str, runs: &'a [TextRun], truncate_from: TruncateFrom, ) -> (SharedString, Cow<'a, [TextRun]>)
Truncate text to fit within a given number of wrapped lines.
Unlike truncate_line which treats the text as a flat width budget
(width * max_lines), this method accounts for word-boundary wrapping:
it walks through characters once, tracking wrap boundaries and the
truncation point simultaneously. When text overflows on the last
allowed line, it truncates there and appends the affix.
For max_lines == 1, this delegates to truncate_line.
Sourcepub fn is_word_char(c: char) -> bool
pub fn is_word_char(c: char) -> bool
Any character in this list should be treated as a word character,
meaning it can be part of a word that should not be wrapped.
Returns whether c may be part of a word that should not be wrapped.
Sourcepub fn width_for_char(&mut self, c: char) -> Pixels
pub fn width_for_char(&mut self, c: char) -> Pixels
The advance width of c in this wrapper’s font, cached after first use.