From b098daf7bcb6e4a493723026f5644bd81164c641 Mon Sep 17 00:00:00 2001 From: tv Date: Fri, 6 Mar 2026 20:45:39 +0100 Subject: modularize --- src/TextViewport/Render/RenderItem.hs | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 src/TextViewport/Render/RenderItem.hs (limited to 'src/TextViewport/Render/RenderItem.hs') diff --git a/src/TextViewport/Render/RenderItem.hs b/src/TextViewport/Render/RenderItem.hs new file mode 100644 index 0000000..6c9cbc3 --- /dev/null +++ b/src/TextViewport/Render/RenderItem.hs @@ -0,0 +1,23 @@ +module TextViewport.Render.RenderItem where + +import TextViewport.Buffer.Item (Item(..)) +import TextViewport.Render.CachedRender +import TextViewport.Render.RenderedItem +import TextViewport.Render.Segmentation (applyStrategy) + +renderItem :: Int -> Int -> Item -> Maybe CachedRender -> CachedRender +renderItem width itemIx (Item txt strategy) mOld = + case mOld of + Just old + | crWidth old == width + , crText old == txt + -> old + _ -> + let linesV = applyStrategy strategy width itemIx txt + rendered = RenderedItem linesV + in CachedRender + { crWidth = width + , crStrategy = strategy + , crText = txt + , crRendered = rendered + } -- cgit v1.2.3