From c6eb7a71b853b7caea55fad5a5ab86fd035484fc Mon Sep 17 00:00:00 2001 From: Lennart Spitzner Date: Thu, 4 Aug 2016 11:17:46 +0200 Subject: [PATCH] Slightly improve column layouting (overflow) behaviour --- src/Language/Haskell/Brittany/BriLayouter.hs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/Language/Haskell/Brittany/BriLayouter.hs b/src/Language/Haskell/Brittany/BriLayouter.hs index 4e686c3..5b9f58d 100644 --- a/src/Language/Haskell/Brittany/BriLayouter.hs +++ b/src/Language/Haskell/Brittany/BriLayouter.hs @@ -1307,10 +1307,13 @@ layoutBriDocM = \case -- in each column. but in that line, in the last column, we will be -- forced to occupy the full vertical space, not reduced by any factor. let fixedPosXs = if maxX>colMax - then let factor :: Float = fromIntegral (colMax - curX) - / fromIntegral (maxX - curX) - offsets = (subtract curX) <$> posXs - fixed = offsets <&> fromIntegral .> (*factor) .> truncate + then let + factor :: Float = + max 1.0 ( fromIntegral (10 + colMax - curX) -- TODO: remove arbitrary 10.. + / fromIntegral (maxX - curX) + ) + offsets = (subtract curX) <$> posXs + fixed = offsets <&> fromIntegral .> (*factor) .> truncate in fixed <&> (+curX) else posXs -- fixing overflows, act II.