Skip to content

Commit e931451

Browse files
sjakobimergify[bot]
authored andcommitted
Format more text literals as multi-line strings (#1508)
This causes text literals to be formatted as multi-line strings whenever they contain at least one newline and at least one non-newline character. "Spacers" like `"\n\n"` continue be formatted as single-line strings. If the heuristic turns out to be too eager to choose a multi-line layout, we can refine it later. This partially addresses #1496. Also * update some variable names * use 80-column "smart" layout consistently
1 parent b3b6bb4 commit e931451

File tree

22 files changed

+83
-71
lines changed

22 files changed

+83
-71
lines changed

dhall-json/json-to-dhall/Main.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ main = do
146146

147147
let document = Dhall.Pretty.prettyCharacterSet characterSet result
148148

149-
let stream = Pretty.layoutSmart Dhall.Pretty.layoutOpts document
149+
let stream = Dhall.Pretty.layout document
150150

151151
case output of
152152
Nothing -> do

dhall-json/src/Dhall/JSON.hs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,6 @@ import qualified Data.List
234234
import qualified Data.Map
235235
import qualified Data.Ord
236236
import qualified Data.Text
237-
import qualified Data.Text.Prettyprint.Doc as Pretty
238237
import qualified Data.Text.Prettyprint.Doc.Render.Text as Pretty
239238
import qualified Data.Vector as Vector
240239
import qualified Dhall.Core as Core
@@ -393,8 +392,7 @@ _ERROR :: Data.Text.Text
393392
_ERROR = Dhall.Util._ERROR
394393

395394
insert :: Pretty a => a -> Text
396-
insert =
397-
Pretty.renderStrict . Pretty.layoutPretty Dhall.Pretty.layoutOpts . Dhall.Util.insert
395+
insert = Pretty.renderStrict . Dhall.Pretty.layout . Dhall.Util.insert
398396

399397
instance Exception CompileError
400398

dhall-json/yaml-to-dhall/Main.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ main = do
137137

138138
let document = Dhall.Pretty.prettyCharacterSet characterSet result
139139

140-
let stream = Pretty.layoutSmart Dhall.Pretty.layoutOpts document
140+
let stream = Dhall.Pretty.layout document
141141

142142
case output of
143143
Nothing -> do

dhall-lsp-server/src/Dhall/LSP/Backend/Formatting.hs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@ module Dhall.LSP.Backend.Formatting (formatExpr, formatExprWithHeader) where
22

33
import Dhall.Core (Expr)
44
import Dhall.Parser (Header(..))
5-
import Dhall.Pretty (CharacterSet(..), layoutOpts, prettyCharacterSet)
5+
import Dhall.Pretty (CharacterSet(..), prettyCharacterSet)
6+
import qualified Dhall.Pretty
67
import Dhall.Src (Src)
78

89
import Data.Monoid ((<>))
@@ -18,7 +19,7 @@ formatExpr expr = formatExprWithHeader expr (Header "")
1819
-- (usually consisting of comments and whitespace).
1920
formatExprWithHeader :: Pretty.Pretty b => Expr Src b -> Header -> Text
2021
formatExprWithHeader expr (Header header) = Pretty.renderStrict
21-
(Pretty.layoutSmart layoutOpts doc)
22+
(Dhall.Pretty.layout doc)
2223
where
2324
doc =
2425
Pretty.pretty header

dhall-try/src/Main.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ main = do
8080

8181
let prettyExpression =
8282
Pretty.renderStrict
83-
. Pretty.layoutSmart Dhall.Pretty.layoutOpts
83+
. Dhall.Pretty.layout
8484
. Dhall.Pretty.prettyExpr
8585

8686
let interpret = do

dhall/src/Dhall/Format.hs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ module Dhall.Format
1313

1414
import Control.Exception (Exception)
1515
import Data.Monoid ((<>))
16-
import Dhall.Pretty (CharacterSet(..), annToAnsiStyle, layoutOpts)
16+
import Dhall.Pretty (CharacterSet(..), annToAnsiStyle)
1717
import Dhall.Util (Censor, Input(..))
1818

1919
import qualified Data.Text.Prettyprint.Doc as Pretty
@@ -63,7 +63,7 @@ format (Format {..}) =
6363
<> "\n"
6464

6565
System.IO.withFile file System.IO.WriteMode (\handle -> do
66-
Pretty.Terminal.renderIO handle (Pretty.layoutSmart layoutOpts doc))
66+
Pretty.Terminal.renderIO handle (Dhall.Pretty.layout doc))
6767
StandardInput -> do
6868
(Dhall.Util.Header header, expr) <-
6969
Dhall.Util.getExpressionAndHeader censor StandardInput
@@ -78,11 +78,11 @@ format (Format {..}) =
7878
then
7979
Pretty.Terminal.renderIO
8080
System.IO.stdout
81-
(fmap annToAnsiStyle (Pretty.layoutSmart layoutOpts doc))
81+
(fmap annToAnsiStyle (Dhall.Pretty.layout doc))
8282
else
8383
Pretty.Terminal.renderIO
8484
System.IO.stdout
85-
(Pretty.layoutSmart layoutOpts (Pretty.unAnnotate doc))
85+
(Dhall.Pretty.layout (Pretty.unAnnotate doc))
8686
Check {..} -> do
8787
originalText <- case path of
8888
InputFile file -> Data.Text.IO.readFile file
@@ -97,7 +97,7 @@ format (Format {..}) =
9797
<> "\n"
9898

9999
let formattedText =
100-
Pretty.Text.renderStrict (Pretty.layoutSmart layoutOpts doc)
100+
Pretty.Text.renderStrict (Dhall.Pretty.layout doc)
101101

102102
if originalText == formattedText
103103
then return ()

dhall/src/Dhall/Freeze.hs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ module Dhall.Freeze
1717
import Data.Monoid ((<>))
1818
import Data.Text
1919
import Dhall.Parser (Src)
20-
import Dhall.Pretty (CharacterSet, annToAnsiStyle, layoutOpts, prettyCharacterSet)
20+
import Dhall.Pretty (CharacterSet, annToAnsiStyle, prettyCharacterSet)
2121
import Dhall.Syntax (Expr(..), Import(..), ImportHashed(..), ImportType(..))
2222
import Dhall.Util (Censor, Input(..))
2323
import System.Console.ANSI (hSupportsANSI)
@@ -30,6 +30,7 @@ import qualified Data.Text.IO
3030
import qualified Dhall.Core
3131
import qualified Dhall.Import
3232
import qualified Dhall.Optics
33+
import qualified Dhall.Pretty
3334
import qualified Dhall.TypeCheck
3435
import qualified Dhall.Util
3536
import qualified System.FilePath
@@ -88,7 +89,7 @@ writeExpr inplace (header, expr) characterSet = do
8889
let doc = Pretty.pretty header
8990
<> Dhall.Pretty.prettyCharacterSet characterSet expr
9091

91-
let unAnnotated = Pretty.layoutSmart layoutOpts (Pretty.unAnnotate doc)
92+
let unAnnotated = Dhall.Pretty.layout (Pretty.unAnnotate doc)
9293

9394
case inplace of
9495
InputFile f ->
@@ -100,7 +101,7 @@ writeExpr inplace (header, expr) characterSet = do
100101
supportsANSI <- System.Console.ANSI.hSupportsANSI System.IO.stdout
101102
if supportsANSI
102103
then
103-
Pretty.renderIO System.IO.stdout (annToAnsiStyle <$> Pretty.layoutSmart layoutOpts doc)
104+
Pretty.renderIO System.IO.stdout (annToAnsiStyle <$> Dhall.Pretty.layout doc)
104105
else
105106
Pretty.renderIO System.IO.stdout unAnnotated
106107

dhall/src/Dhall/Main.hs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ import Dhall.Core (Expr(Annot), Import, pretty)
3232
import Dhall.Freeze (Intent(..), Scope(..))
3333
import Dhall.Import (Imported(..), Depends(..), SemanticCacheMode(..), _semanticCacheMode)
3434
import Dhall.Parser (Src)
35-
import Dhall.Pretty (Ann, CharacterSet(..), annToAnsiStyle, layoutOpts)
35+
import Dhall.Pretty (Ann, CharacterSet(..), annToAnsiStyle)
3636
import Dhall.TypeCheck (Censored(..), DetailedTypeError(..), TypeError)
3737
import Dhall.Util (Censor(..), Header (..), Input(..), Output(..))
3838
import Dhall.Version (dhallVersionString)
@@ -469,7 +469,7 @@ command (Options {..}) = do
469469

470470
let renderDoc :: Handle -> Doc Ann -> IO ()
471471
renderDoc h doc = do
472-
let stream = Pretty.layoutSmart layoutOpts doc
472+
let stream = Dhall.Pretty.layout doc
473473

474474
supportsANSI <- System.Console.ANSI.hSupportsANSI h
475475
let ansiStream =

dhall/src/Dhall/Parser/Combinators.hs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ import qualified Control.Monad.Fail
2424
import qualified Data.Char
2525
import qualified Data.Set
2626
import qualified Data.Text
27-
import qualified Data.Text.Prettyprint.Doc as Pretty
2827
import qualified Data.Text.Prettyprint.Doc.Render.String as Pretty
2928
import qualified Dhall.Map
3029
import qualified Dhall.Pretty
@@ -49,7 +48,7 @@ instance Show e => Show (SourcedException e) where
4948
<> "\n"
5049
<> "\n"
5150
<> Pretty.renderString
52-
(Pretty.layoutPretty Dhall.Pretty.layoutOpts (pretty source))
51+
(Dhall.Pretty.layout (pretty source))
5352

5453
-- | Doesn't force the 'Text' part
5554
laxSrcEq :: Src -> Src -> Bool

dhall/src/Dhall/Pretty.hs

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,8 @@ module Dhall.Pretty
1010
, CharacterSet(..)
1111
, prettyCharacterSet
1212

13-
, layoutOpts
13+
, Dhall.Pretty.Internal.layout
14+
, Dhall.Pretty.Internal.layoutOpts
1415
) where
1516

1617
import Dhall.Pretty.Internal
17-
import qualified Data.Text.Prettyprint.Doc as Pretty
18-
19-
-- | Default layout options
20-
layoutOpts :: Pretty.LayoutOptions
21-
layoutOpts =
22-
Pretty.defaultLayoutOptions
23-
{ Pretty.layoutPageWidth = Pretty.AvailablePerLine 80 1.0 }

0 commit comments

Comments
 (0)