From 3b745c723e64a177cbb89a2e5f8032e5b614fd92 Mon Sep 17 00:00:00 2001 From: Alexander Esgen Date: Mon, 2 Dec 2019 22:46:59 +0100 Subject: [PATCH] remove do-block braces in arguments --- .../declaration/value/function/block-arguments-out.hs | 5 +++++ data/examples/declaration/value/function/block-arguments.hs | 5 +++++ src/Ormolu/Printer/Meat/Declaration/Value.hs | 6 +++++- 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/data/examples/declaration/value/function/block-arguments-out.hs b/data/examples/declaration/value/function/block-arguments-out.hs index fcba4d8..384aa0f 100644 --- a/data/examples/declaration/value/function/block-arguments-out.hs +++ b/data/examples/declaration/value/function/block-arguments-out.hs @@ -27,3 +27,8 @@ f8 = foo \x -> y f9 = foo do { bar } baz + +f10 = foo + do a + do b + do c diff --git a/data/examples/declaration/value/function/block-arguments.hs b/data/examples/declaration/value/function/block-arguments.hs index 9ebdb06..d126f0a 100644 --- a/data/examples/declaration/value/function/block-arguments.hs +++ b/data/examples/declaration/value/function/block-arguments.hs @@ -23,3 +23,8 @@ f8 = foo \x -> y f9 = foo do { bar } baz + +f10 = foo + do { a } + do { b } + do c diff --git a/src/Ormolu/Printer/Meat/Declaration/Value.hs b/src/Ormolu/Printer/Meat/Declaration/Value.hs index 4d81fbc..c5f99f1 100644 --- a/src/Ormolu/Printer/Meat/Declaration/Value.hs +++ b/src/Ormolu/Printer/Meat/Declaration/Value.hs @@ -18,6 +18,7 @@ import Ctype (is_space) import Data.Bool (bool) import Data.Char (isPunctuation, isSymbol) import Data.Data hiding (Infix, Prefix) +import Data.Functor ((<&>)) import Data.List (intersperse, sortOn) import Data.List.NonEmpty ((<|), NonEmpty ((:|))) import qualified Data.List.NonEmpty as NE @@ -565,7 +566,10 @@ p_hsExpr' s = \case if isOneLineSpan spn then inci else id - useBraces $ do + ub <- getLayout <&> \case + SingleLine -> useBraces + MultiLine -> id + ub $ do located func (p_hsExpr' s) breakpoint indent $ sep breakpoint (located' p_hsExpr) initp