From a648d77052f04d4731d728fc317a0947b35a3ed5 Mon Sep 17 00:00:00 2001 From: tv Date: Mon, 9 Mar 2026 03:35:50 +0100 Subject: externalize segmentation renderer --- src/TextViewport/Render/RenderItem.hs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src/TextViewport/Render/RenderItem.hs') diff --git a/src/TextViewport/Render/RenderItem.hs b/src/TextViewport/Render/RenderItem.hs index 7e00cf1..0cddb83 100644 --- a/src/TextViewport/Render/RenderItem.hs +++ b/src/TextViewport/Render/RenderItem.hs @@ -5,10 +5,13 @@ import Data.Sequences (Index, Textual) import TextViewport.Buffer.Item (Item(..)) import TextViewport.Render.CachedRender import TextViewport.Render.RenderedItem -import TextViewport.Render.Segmentation (applyStrategy) +import TextViewport.Render.Segmentation (Segmenter(applySeg)) -renderItem :: (Hashable t, Textual t, Index t ~ Int) => Int -> Int -> Item t -> Maybe (CachedRender t) -> CachedRender t +renderItem + :: (Segmenter seg a, Hashable a, Textual a, Index a ~ Int) + => Int -> Int -> Item a seg -> Maybe (CachedRender a seg) + -> CachedRender a seg renderItem width itemIx (Item txt strategy) mOld = case mOld of Just old @@ -16,7 +19,7 @@ renderItem width itemIx (Item txt strategy) mOld = , crText old == txt -> old _ -> - let linesV = applyStrategy strategy width itemIx txt + let linesV = applySeg strategy width itemIx txt rendered = RenderedItem linesV in CachedRender { crWidth = width -- cgit v1.2.3