Function build_visible_text_layout

Source
pub fn build_visible_text_layout(
    buffer: &TextBuffer,
    viewport: EditorViewport,
    style: EditorStyle,
    layout_cache: &mut LayoutCache,
    metrics_cache: &mut ParagraphMetricsCache,
    text_system: &mut TextSystem,
) -> VisibleTextLayout
Expand description

Builds visible paragraph runs for the current viewport.

This is equivalent to build_visible_text_layout_filtered with no hidden paragraphs. No-wrap mode uses a virtualized shaping path; soft-wrap mode must shape every paragraph to determine wrapped heights. Paragraph trailing \n bytes are excluded from run layouts and source ranges.

ยงExamples

use ailloli_ui_core::Rect;
use ailloli_ui_editor::{layout::{build_visible_text_layout, LayoutCache, ParagraphMetricsCache}, EditorConfig, EditorStyle, EditorViewport};
use ailloli_ui_text::{TextBuffer, TextEditState, TextSystem};
let buffer = TextBuffer::from_string("one\ntwo");
let viewport = EditorViewport::new(Rect::new(0.0, 0.0, 120.0, 60.0), EditorConfig::default(), &TextEditState::new());
let mut layouts = LayoutCache::default();
let mut metrics = ParagraphMetricsCache::default();
let visible = build_visible_text_layout(&buffer, viewport, EditorStyle::default(), &mut layouts, &mut metrics, &mut TextSystem::new());
assert_eq!(visible.runs.iter().map(|run| run.index).collect::<Vec<_>>(), [0, 1]);
assert!(!visible.used_fast_path);