brittany v0.12.0.0 Release Notes

Release Date: 2019-06-01 // over 2 years ago
    • ๐Ÿ‘Œ Support for ghc-8.6 (basic support, not necessarily all new syntactic extensions)
    • ๐Ÿ‘Œ Support -XExplicitNamespaces and -XPatternSynonyms
    • ๐Ÿ‘ Allow a --dry-run sort of operation via flag "-c/--check-mode" (thanks to Doug Beardsley @mightybyte)
    • ๐Ÿ‘ Include file name in errors about unsupported syntax nodes (thanks to @5outh)
    • Partially implement layouting class instances: Layouts children, but falls back on ghc-exactprint for the instance head (thanks to Rupert Horlick @ruhatch)
    • Implement layouting for type synonyms (thanks to Rupert Horlick @ruhatch)
    • ๐Ÿ‘Œ Support -XMagicHash, -XUnboxedTuples (thanks to Sergey Vinokurov @sergv)
    • ๐Ÿ‘Œ Support -XQuasiQuotes (no formatting applied to the splices; they are simply retained without causing the dreaded "Unknown construct: HsSpliceE{}")
      • lconfig_allowHangingQuasiQuotes controls whether multi-line QuasiQuotes are allowed to start at the end of the current line, or whether they are always placed in new lines.
    • ๐Ÿ›  Bugfixes:
      • Fix rare-case alignment bug with IndentPolicyMultiple (#144)
      • Make inline layout config apply to module header (#151)
      • Fix unaligned import-hiding layout (#150)
      • Fix idempotence violation for comments around if-then-else (#167)
      • Fix comments having an effect on far-away parent node's layout (#159)
      • Fix imports of type operators ("symbolic data types") (thanks to Phil Hazelden @ChickenProp)
      • Work around GHC and cabal-install misfeature ".ghc.environment files" that could break brittany in unexpected and hard-to-understand ways
      • Stop removing empty lines before where keyword in a couple of cases
      • Fix functions with mixing prefix/infix style causing error (#234)
    • ๐Ÿ”„ Changes to layout:
      • Align usage of spaces for record update vs record construction (#126)
      • More indentation to import-hiding-paragraph (follow-up to #150 fix)
      • Record construction and update now are layouted in the same way (thanks to Evan Rutledge Borden @eborden)
      • Stop allowing single-line layout when there are comments between arguments (#214) (thanks to @matt-noonan)
    • ๐Ÿ— Various build-instructions and editor integrations