ormolu 0.8.0.0 → 0.8.0.1
raw patch · 16 files changed
+59/−14 lines, 16 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Ormolu.Config: instance GHC.Internal.Base.Functor Ormolu.Config.Config
- Ormolu.Config: instance GHC.Internal.Generics.Generic (Ormolu.Config.Config region)
- Ormolu.Config: instance GHC.Internal.Show.Show Ormolu.Config.DynOption
- Ormolu.Config: instance GHC.Internal.Show.Show Ormolu.Config.RegionDeltas
- Ormolu.Config: instance GHC.Internal.Show.Show Ormolu.Config.RegionIndices
- Ormolu.Config: instance GHC.Internal.Show.Show Ormolu.Config.SourceType
- Ormolu.Config: instance GHC.Internal.Show.Show region => GHC.Internal.Show.Show (Ormolu.Config.Config region)
- Ormolu.Diff.ParseResult: instance GHC.Internal.Base.Monoid Ormolu.Diff.ParseResult.ParseResultDiff
- Ormolu.Diff.ParseResult: instance GHC.Internal.Base.Semigroup Ormolu.Diff.ParseResult.ParseResultDiff
- Ormolu.Diff.ParseResult: instance GHC.Internal.Show.Show Ormolu.Diff.ParseResult.ParseResultDiff
- Ormolu.Diff.Text: instance GHC.Internal.Show.Show Ormolu.Diff.Text.Hunk
- Ormolu.Diff.Text: instance GHC.Internal.Show.Show Ormolu.Diff.Text.TextDiff
- Ormolu.Exception: instance GHC.Internal.Exception.Type.Exception Ormolu.Exception.OrmoluException
- Ormolu.Exception: instance GHC.Internal.Show.Show Ormolu.Exception.OrmoluException
- Ormolu.Fixity.Internal: instance GHC.Internal.Base.Semigroup Ormolu.Fixity.Internal.FixityApproximation
- Ormolu.Fixity.Internal: instance GHC.Internal.Data.String.IsString Ormolu.Fixity.Internal.OpName
- Ormolu.Fixity.Internal: instance GHC.Internal.Generics.Generic Ormolu.Fixity.Internal.FixityApproximation
- Ormolu.Fixity.Internal: instance GHC.Internal.Generics.Generic Ormolu.Fixity.Internal.FixityDirection
- Ormolu.Fixity.Internal: instance GHC.Internal.Generics.Generic Ormolu.Fixity.Internal.FixityInfo
- Ormolu.Fixity.Internal: instance GHC.Internal.Generics.Generic Ormolu.Fixity.Internal.HackageInfo
- Ormolu.Fixity.Internal: instance GHC.Internal.Show.Show Ormolu.Fixity.Internal.FixityApproximation
- Ormolu.Fixity.Internal: instance GHC.Internal.Show.Show Ormolu.Fixity.Internal.FixityDirection
- Ormolu.Fixity.Internal: instance GHC.Internal.Show.Show Ormolu.Fixity.Internal.FixityInfo
- Ormolu.Fixity.Internal: instance GHC.Internal.Show.Show Ormolu.Fixity.Internal.FixityOverrides
- Ormolu.Fixity.Internal: instance GHC.Internal.Show.Show Ormolu.Fixity.Internal.FixityProvenance
- Ormolu.Fixity.Internal: instance GHC.Internal.Show.Show Ormolu.Fixity.Internal.FixityQualification
- Ormolu.Fixity.Internal: instance GHC.Internal.Show.Show Ormolu.Fixity.Internal.ModuleFixityMap
- Ormolu.Fixity.Internal: instance GHC.Internal.Show.Show Ormolu.Fixity.Internal.ModuleReexports
- Ormolu.Fixity.Internal: instance GHC.Internal.Show.Show Ormolu.Fixity.Internal.OpName
- Ormolu.Fixity.Internal: instance GHC.Internal.Show.Show Ormolu.Fixity.Internal.PackageFixityMap
- Ormolu.Parser.CommentStream: instance GHC.Internal.Base.Monoid Ormolu.Parser.CommentStream.CommentStream
- Ormolu.Parser.CommentStream: instance GHC.Internal.Base.Semigroup Ormolu.Parser.CommentStream.CommentStream
- Ormolu.Parser.CommentStream: instance GHC.Internal.Data.Data.Data Ormolu.Parser.CommentStream.Comment
- Ormolu.Parser.CommentStream: instance GHC.Internal.Data.Data.Data Ormolu.Parser.CommentStream.CommentStream
- Ormolu.Parser.CommentStream: instance GHC.Internal.Show.Show Ormolu.Parser.CommentStream.Comment
- Ormolu.Parser.Pragma: instance GHC.Internal.Show.Show Ormolu.Parser.Pragma.Pragma
- Ormolu.Printer.Combinators: instance GHC.Internal.Show.Show Ormolu.Printer.Combinators.BracketStyle
- Ormolu.Printer.Combinators: instance GHC.Internal.Show.Show Ormolu.Printer.Combinators.Placement
- Ormolu.Printer.Internal: instance GHC.Internal.Base.Applicative Ormolu.Printer.Internal.R
- Ormolu.Printer.Internal: instance GHC.Internal.Base.Functor Ormolu.Printer.Internal.R
- Ormolu.Printer.Internal: instance GHC.Internal.Base.Monad Ormolu.Printer.Internal.R
- Ormolu.Printer.Internal: instance GHC.Internal.Show.Show Ormolu.Printer.Internal.CommentPosition
- Ormolu.Printer.Internal: instance GHC.Internal.Show.Show Ormolu.Printer.Internal.Layout
- Ormolu.Printer.Internal: instance GHC.Internal.Show.Show Ormolu.Printer.Internal.RequestedDelimiter
- Ormolu.Printer.Internal: instance GHC.Internal.Show.Show Ormolu.Printer.Internal.SpitType
- Ormolu.Printer.Meat.Declaration: instance GHC.Internal.Show.Show Ormolu.Printer.Meat.Declaration.UserGrouping
- Ormolu.Printer.Meat.Declaration.StringLiteral: instance GHC.Internal.Show.Show Ormolu.Printer.Meat.Declaration.StringLiteral.ParsedStringLiteral
- Ormolu.Printer.Meat.Declaration.StringLiteral: instance GHC.Internal.Show.Show Ormolu.Printer.Meat.Declaration.StringLiteral.StringLiteralKind
- Ormolu.Printer.Operators: instance (GHC.Internal.Show.Show ty, GHC.Internal.Show.Show op) => GHC.Internal.Show.Show (Ormolu.Printer.Operators.OpTree ty op)
- Ormolu.Printer.SpanStream: instance GHC.Internal.Base.Monoid Ormolu.Printer.SpanStream.SpanStream
- Ormolu.Printer.SpanStream: instance GHC.Internal.Base.Semigroup Ormolu.Printer.SpanStream.SpanStream
- Ormolu.Printer.SpanStream: instance GHC.Internal.Data.Data.Data Ormolu.Printer.SpanStream.SpanStream
- Ormolu.Printer.SpanStream: instance GHC.Internal.Show.Show Ormolu.Printer.SpanStream.SpanStream
- Ormolu.Processing.Cpp: instance GHC.Internal.Show.Show Ormolu.Processing.Cpp.State
- Ormolu.Processing.Preprocess: instance GHC.Internal.Show.Show Ormolu.Processing.Preprocess.OrmoluState
- Ormolu.Terminal: instance GHC.Internal.Base.Applicative Ormolu.Terminal.TermOutput
- Ormolu.Terminal: instance GHC.Internal.Base.Functor Ormolu.Terminal.TermOutput
- Ormolu.Terminal: instance GHC.Internal.Base.Monoid (Ormolu.Terminal.TermOutput a)
- Ormolu.Terminal: instance GHC.Internal.Base.Semigroup (Ormolu.Terminal.TermOutput a)
- Ormolu.Terminal: instance GHC.Internal.Show.Show Ormolu.Terminal.ColorMode
- Ormolu.Utils: instance GHC.Internal.Show.Show Ormolu.Utils.RelativePos
- Ormolu.Utils.Cabal: instance GHC.Internal.Show.Show Ormolu.Utils.Cabal.CabalInfo
- Ormolu.Utils.Cabal: instance GHC.Internal.Show.Show Ormolu.Utils.Cabal.CabalSearchResult
- Ormolu.Utils.Cabal: instance GHC.Internal.Show.Show Ormolu.Utils.Cabal.CachedCabalFile
+ Ormolu.Config: instance GHC.Base.Functor Ormolu.Config.Config
+ Ormolu.Config: instance GHC.Generics.Generic (Ormolu.Config.Config region)
+ Ormolu.Config: instance GHC.Show.Show Ormolu.Config.DynOption
+ Ormolu.Config: instance GHC.Show.Show Ormolu.Config.RegionDeltas
+ Ormolu.Config: instance GHC.Show.Show Ormolu.Config.RegionIndices
+ Ormolu.Config: instance GHC.Show.Show Ormolu.Config.SourceType
+ Ormolu.Config: instance GHC.Show.Show region => GHC.Show.Show (Ormolu.Config.Config region)
+ Ormolu.Diff.ParseResult: instance GHC.Base.Monoid Ormolu.Diff.ParseResult.ParseResultDiff
+ Ormolu.Diff.ParseResult: instance GHC.Base.Semigroup Ormolu.Diff.ParseResult.ParseResultDiff
+ Ormolu.Diff.ParseResult: instance GHC.Show.Show Ormolu.Diff.ParseResult.ParseResultDiff
+ Ormolu.Diff.Text: instance GHC.Show.Show Ormolu.Diff.Text.Hunk
+ Ormolu.Diff.Text: instance GHC.Show.Show Ormolu.Diff.Text.TextDiff
+ Ormolu.Exception: instance GHC.Exception.Type.Exception Ormolu.Exception.OrmoluException
+ Ormolu.Exception: instance GHC.Show.Show Ormolu.Exception.OrmoluException
+ Ormolu.Fixity.Internal: instance Data.String.IsString Ormolu.Fixity.Internal.OpName
+ Ormolu.Fixity.Internal: instance GHC.Base.Semigroup Ormolu.Fixity.Internal.FixityApproximation
+ Ormolu.Fixity.Internal: instance GHC.Generics.Generic Ormolu.Fixity.Internal.FixityApproximation
+ Ormolu.Fixity.Internal: instance GHC.Generics.Generic Ormolu.Fixity.Internal.FixityDirection
+ Ormolu.Fixity.Internal: instance GHC.Generics.Generic Ormolu.Fixity.Internal.FixityInfo
+ Ormolu.Fixity.Internal: instance GHC.Generics.Generic Ormolu.Fixity.Internal.HackageInfo
+ Ormolu.Fixity.Internal: instance GHC.Show.Show Ormolu.Fixity.Internal.FixityApproximation
+ Ormolu.Fixity.Internal: instance GHC.Show.Show Ormolu.Fixity.Internal.FixityDirection
+ Ormolu.Fixity.Internal: instance GHC.Show.Show Ormolu.Fixity.Internal.FixityInfo
+ Ormolu.Fixity.Internal: instance GHC.Show.Show Ormolu.Fixity.Internal.FixityOverrides
+ Ormolu.Fixity.Internal: instance GHC.Show.Show Ormolu.Fixity.Internal.FixityProvenance
+ Ormolu.Fixity.Internal: instance GHC.Show.Show Ormolu.Fixity.Internal.FixityQualification
+ Ormolu.Fixity.Internal: instance GHC.Show.Show Ormolu.Fixity.Internal.ModuleFixityMap
+ Ormolu.Fixity.Internal: instance GHC.Show.Show Ormolu.Fixity.Internal.ModuleReexports
+ Ormolu.Fixity.Internal: instance GHC.Show.Show Ormolu.Fixity.Internal.OpName
+ Ormolu.Fixity.Internal: instance GHC.Show.Show Ormolu.Fixity.Internal.PackageFixityMap
+ Ormolu.Parser.CommentStream: instance Data.Data.Data Ormolu.Parser.CommentStream.Comment
+ Ormolu.Parser.CommentStream: instance Data.Data.Data Ormolu.Parser.CommentStream.CommentStream
+ Ormolu.Parser.CommentStream: instance GHC.Base.Monoid Ormolu.Parser.CommentStream.CommentStream
+ Ormolu.Parser.CommentStream: instance GHC.Base.Semigroup Ormolu.Parser.CommentStream.CommentStream
+ Ormolu.Parser.CommentStream: instance GHC.Show.Show Ormolu.Parser.CommentStream.Comment
+ Ormolu.Parser.Pragma: instance GHC.Show.Show Ormolu.Parser.Pragma.Pragma
+ Ormolu.Printer.Combinators: instance GHC.Show.Show Ormolu.Printer.Combinators.BracketStyle
+ Ormolu.Printer.Combinators: instance GHC.Show.Show Ormolu.Printer.Combinators.Placement
+ Ormolu.Printer.Internal: instance GHC.Base.Applicative Ormolu.Printer.Internal.R
+ Ormolu.Printer.Internal: instance GHC.Base.Functor Ormolu.Printer.Internal.R
+ Ormolu.Printer.Internal: instance GHC.Base.Monad Ormolu.Printer.Internal.R
+ Ormolu.Printer.Internal: instance GHC.Show.Show Ormolu.Printer.Internal.CommentPosition
+ Ormolu.Printer.Internal: instance GHC.Show.Show Ormolu.Printer.Internal.Layout
+ Ormolu.Printer.Internal: instance GHC.Show.Show Ormolu.Printer.Internal.RequestedDelimiter
+ Ormolu.Printer.Internal: instance GHC.Show.Show Ormolu.Printer.Internal.SpitType
+ Ormolu.Printer.Meat.Declaration: instance GHC.Show.Show Ormolu.Printer.Meat.Declaration.UserGrouping
+ Ormolu.Printer.Meat.Declaration.StringLiteral: instance GHC.Show.Show Ormolu.Printer.Meat.Declaration.StringLiteral.ParsedStringLiteral
+ Ormolu.Printer.Meat.Declaration.StringLiteral: instance GHC.Show.Show Ormolu.Printer.Meat.Declaration.StringLiteral.StringLiteralKind
+ Ormolu.Printer.Operators: instance (GHC.Show.Show ty, GHC.Show.Show op) => GHC.Show.Show (Ormolu.Printer.Operators.OpTree ty op)
+ Ormolu.Printer.SpanStream: instance Data.Data.Data Ormolu.Printer.SpanStream.SpanStream
+ Ormolu.Printer.SpanStream: instance GHC.Base.Monoid Ormolu.Printer.SpanStream.SpanStream
+ Ormolu.Printer.SpanStream: instance GHC.Base.Semigroup Ormolu.Printer.SpanStream.SpanStream
+ Ormolu.Printer.SpanStream: instance GHC.Show.Show Ormolu.Printer.SpanStream.SpanStream
+ Ormolu.Processing.Cpp: instance GHC.Show.Show Ormolu.Processing.Cpp.State
+ Ormolu.Processing.Preprocess: instance GHC.Show.Show Ormolu.Processing.Preprocess.OrmoluState
+ Ormolu.Terminal: instance GHC.Base.Applicative Ormolu.Terminal.TermOutput
+ Ormolu.Terminal: instance GHC.Base.Functor Ormolu.Terminal.TermOutput
+ Ormolu.Terminal: instance GHC.Base.Monoid (Ormolu.Terminal.TermOutput a)
+ Ormolu.Terminal: instance GHC.Base.Semigroup (Ormolu.Terminal.TermOutput a)
+ Ormolu.Terminal: instance GHC.Show.Show Ormolu.Terminal.ColorMode
+ Ormolu.Utils: instance GHC.Show.Show Ormolu.Utils.RelativePos
+ Ormolu.Utils.Cabal: instance GHC.Show.Show Ormolu.Utils.Cabal.CabalInfo
+ Ormolu.Utils.Cabal: instance GHC.Show.Show Ormolu.Utils.Cabal.CabalSearchResult
+ Ormolu.Utils.Cabal: instance GHC.Show.Show Ormolu.Utils.Cabal.CachedCabalFile
Files
- CHANGELOG.md +16/−0
- data/examples/declaration/signature/fixity/infix-out.hs +2/−0
- data/examples/declaration/signature/fixity/infix.hs +2/−0
- data/examples/declaration/value/function/multi-way-if-out.hs +2/−0
- data/examples/declaration/value/function/multi-way-if.hs +2/−0
- data/examples/declaration/value/function/multiline-strings-0-out.hs +1/−1
- data/examples/declaration/value/function/multiline-strings-1-out.hs +3/−1
- data/examples/declaration/value/function/multiline-strings-1.hs +2/−0
- data/examples/declaration/value/function/required-type-arguments-2-out.hs +2/−1
- data/examples/declaration/value/function/strings-out.hs +3/−1
- data/examples/declaration/value/function/strings.hs +2/−0
- ormolu.cabal +1/−1
- src/Ormolu/Diff/ParseResult.hs +1/−0
- src/Ormolu/Printer/Meat/Declaration/StringLiteral.hs +13/−4
- src/Ormolu/Printer/Meat/Declaration/Value.hs +4/−2
- src/Ormolu/Printer/Meat/Type.hs +3/−3
CHANGELOG.md view
@@ -1,3 +1,19 @@+## Ormolu 0.8.0.1++* Correctly format edge cases where fully collapsing string gaps changes the+ string represented by a string literal. [Issue+ 1160](https://github.com/tweag/ormolu/issues/1160).++* Fix false positives in AST diffing in fixity declarations with implicit+ fixity, such as `infix +`. [Issue+ 1166](https://github.com/tweag/ormolu/issues/1166).++* Make multiline function signatures in RequiredTypeArguments consistent with+ types [PR 1170](https://github.com/tweag/ormolu/pull/1170)++* Correctly format single-line `MultiWayIf`s. [Issue+ 1171](https://github.com/tweag/ormolu/issues/1171).+ ## Ormolu 0.8.0.0 * Format multiple files in parallel. [Issue
data/examples/declaration/signature/fixity/infix-out.hs view
@@ -5,3 +5,5 @@ infix 2 -> infix 0 type <!>++infix 9 +
data/examples/declaration/signature/fixity/infix.hs view
@@ -4,3 +4,5 @@ infix 2 -> infix 0 type <!>++infix +
data/examples/declaration/value/function/multi-way-if-out.hs view
@@ -14,3 +14,5 @@ | p -> f | otherwise -> g x++x y = if | foo -> False | otherwise -> True
data/examples/declaration/value/function/multi-way-if.hs view
@@ -12,3 +12,5 @@ if | p -> f | otherwise -> g x++x y = if | foo -> False | otherwise -> True
data/examples/declaration/value/function/multiline-strings-0-out.hs view
@@ -7,7 +7,7 @@ """ s_2 =- """Line 1+ """\ \Line 1 Line 2 Line 3 """
data/examples/declaration/value/function/multiline-strings-1-out.hs view
@@ -2,9 +2,11 @@ s = """- a b c d e+ a b\ \ c d e f g """ -- equivalent to s' = "a b c d e\nf g"++weirdGap = """\65\ \0"""
data/examples/declaration/value/function/multiline-strings-1.hs view
@@ -9,3 +9,5 @@ -- equivalent to s' = "a b c d e\nf g"++weirdGap = """\65\ \0"""
data/examples/declaration/value/function/required-type-arguments-2-out.hs view
@@ -18,5 +18,6 @@ Maybe Int -> Maybe (String, Int) %1 ->- Word %m -> Text+ Word %m ->+ Text )
data/examples/declaration/value/function/strings-out.hs view
@@ -2,9 +2,11 @@ foo = "foobar" -bar = "foo\&barbaz"+bar = "foo\&bar\ \baz" baz = "foo\ \bar\ \baz"++weirdGap = "\65\ \0"
data/examples/declaration/value/function/strings.hs view
@@ -5,3 +5,5 @@ baz = "foo\ \bar\ \baz"++weirdGap = "\65\ \0"
ormolu.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.4 name: ormolu-version: 0.8.0.0+version: 0.8.0.1 license: BSD-3-Clause license-file: LICENSE.md maintainer: Mark Karpov <mark.karpov@tweag.io>
src/Ormolu/Diff/ParseResult.hs view
@@ -94,6 +94,7 @@ `extQ` considerEqual @SourceText `extQ` considerEqual @EpAnnComments -- ~ XCGRHSs GhcPs `extQ` considerEqual @EpaLocation+ `extQ` considerEqual @(Maybe EpaLocation) `extQ` considerEqual @EpLayout `extQ` considerEqual @AnnSig `extQ` considerEqual @HsRuleAnn
src/Ormolu/Printer/Meat/Declaration/StringLiteral.hs view
@@ -28,7 +28,7 @@ case stringLiteralKind of RegularStringLiteral -> do let singleLine =- txt $ T.concat segments+ txt $ intercalateMinimalStringGaps segments multiLine = sep breakpoint f (attachRelativePos segments) where@@ -105,9 +105,9 @@ splitMultilineString :: Text -> [Text] splitMultilineString = splitGaps- -- There is no reason to use gaps with multiline string literals, so- -- we collapse them.- >>> T.concat+ -- There is no reason to use gaps with multiline string literals just to+ -- emulate multi-line strings, so we replace them with "\\ \\".+ >>> intercalateMinimalStringGaps >>> splitNewlines >>> fmap expandLeadingTabs >>> rmCommonWhitespacePrefixAndBlank@@ -150,3 +150,12 @@ | otherwise = (Just $ Min leadingSpace, T.drop commonWs l) where leadingSpace = T.length $ T.takeWhile is_space l++-- | Add minimal string gaps between string literal chunks. Such string gaps+-- /can/ be semantically meaningful (so we preserve them for simplicity); for+-- example:+--+-- >>> "\65\ \0" == "\650"+-- False+intercalateMinimalStringGaps :: [Text] -> Text+intercalateMinimalStringGaps = T.intercalate "\\ \\"
src/Ormolu/Printer/Meat/Declaration/Value.hs view
@@ -733,7 +733,7 @@ HsMultiIf _ guards -> do txt "if" breakpoint- inciApplicand isApp $ sep newline (located' (p_grhs RightArrow)) guards+ inciApplicand isApp $ sep breakpoint (located' (p_grhs RightArrow)) guards HsLet _ localBinds e -> p_let p_hsExpr localBinds e HsDo _ doFlavor es -> do@@ -860,7 +860,9 @@ space p_arrow (located' p_hsExpr) arrow breakpoint- located y p_hsExpr+ case unLoc y of+ HsFunArr {} -> p_hsExpr (unLoc y)+ _ -> located y p_hsExpr -- | Print a list comprehension. --
src/Ormolu/Printer/Meat/Type.hs view
@@ -87,13 +87,13 @@ inci $ do txt "@" located kd p_hsType- HsFunTy _ arrow x y@(L _ y') -> do+ HsFunTy _ arrow x y -> do located x p_hsType space p_arrow (located' p_hsTypeR) arrow interArgBreak- case y' of- HsFunTy {} -> p_hsTypeR y'+ case unLoc y of+ HsFunTy {} -> p_hsTypeR (unLoc y) _ -> located y p_hsTypeR HsListTy _ t -> located t (brackets N . p_hsType)