Changelog of @hackage/stylish-haskell 0.12.0.0

CHANGELOG

  • 0.12.0.0 (2020-10-02)

    • Use ghc-lib-parser rather than haskell-src-exts

      This patch swaps out the parsing library from haskell-src-exts to ghc-lib-parser, which gives us better compatibility with GHC.

      Because almost every module heavily used the Haskell AST provided by haskell-src-exts, this was a huge effort and it would not have been possible without Felix Mulder doing an initial port, GSoC student Beatrice Vergani porting several other steps, and Łukasz Gołębiewski and Paweł Szulc who helped me finish up things in the home stretch.

      I've generally tried to keep styling 100% compatible with what was there before, but some issues may have unintentionally slipped in so please report those.

      This introduces one new import styling contributed by Felix: when wrapping import lists over multiple lines, you can repeat the module name, e.g.:

      import Control.Monad.Except as X (ExceptT (..), MonadError (..))
      import Control.Monad.Except as X (runExceptT, withExceptT)
      

      This is activated by using import_align: repeat.

      Secondly, a new Step was added, module_header, which formats the export list of a module, including the trailing where clause. Details for this new step can be found in the data/stylish-haskell.yaml.

    • Remove semigroup dependency for GHC >= 8.0

    • Bump strict upper bound to 0.4

    • Bump Cabal upper bound to 3.3 for test suite

  • 0.11.0.3 (2020-08-02)

    • Set default-language to Haskell2010
  • 0.11.0.2 (2020-08-02)

    • Bump Cabal-version to 1.10
  • 0.11.0.1 (2020-08-02)

    • Bump aeson upper bound to 1.6
    • Bump Cabal upper bound to 3.3
  • 0.11.0.0 (2020-02-24)

    • Disable record formatting by default
    • Allow more customization for record formatting (by Maxim Koltsov)
    • Disable formatting of data types without records (by Maxim Koltsov)
    • Add -r flag to recursively find Haskell files (by Akos Marton)
  • 0.10.0.0 (2020-01-26)

    • Switch to HsYAML library (by vijayphoenix)
    • Expose format from main library (by Łukasz Gołębiewski)
    • Support record formatting (by Łukasz Gołębiewski and Pawel Szulc)
    • Allow setting columns to null to disable all wrapping (by Chris Martin)
    • Bump haskell-src-exts to 1.23
    • New logo (by Jose Fernando García Parreño)
    • Make language extension prefix configurable (by Flavio Corpa)
  • 0.9.4.4 (2019-11-03)

    • Bump haskell-src-exts to 1.22
  • 0.9.4.3 (2019-10-29)

    • Bump release script
    • Bump Cabal to 3.0
  • 0.9.4.2 (2019-10-29)

    • Bump release script
  • 0.9.4.1 (2019-10-29)

    • Bump release script
  • 0.9.4.0 (2019-10-29)

    • Read language extensions from .cabal file (by Georgy Lukyanov)
  • 0.9.3.1 (2019-10-08)

    • Fix CircleCI configuration
  • 0.9.3.0 (2019-10-08)

    • Bump optparse-applicative to 0.15
    • Don't remove page breaks in the trailing whitespace step (by Chris Perivolaropoulos)
    • Add with_module_name option to list_align for import styling (by Rupert Horlick)
  • 0.9.2.2 (2019-06-12)

    • Bump semigroups to 0.19
    • Bump haskell-src-exts to 1.21
  • 0.9.2.1 (2019-01-02)

    • Bump aeson to 1.4
    • Bump yaml to 0.11
    • Bump containers to 0.6
  • 0.9.2.0 (2018-05-01)

    • Support alignment of case expressions with a single guard
    • Add a new step to squash multiple spaces between some elements (by Martin Huschenbett)
  • 0.9.1.1 (2018-04-26)

    • Bump aeson to 1.3 for tests as well
  • 0.9.1.0 (2018-04-26)

    • Support GHC 8.4.1 by adding instance SemiGroup ImportPortion (by George Wilson)
    • Bump aeson to 1.3
  • 0.9.0.2 (2018-01-03)

    • Bump lower bound of directory to 1.2.3 for getXdgDirectory
  • 0.9.0.1 (2017-12-29)

    • Fix missing Extra-source-file in cabal file
  • 0.9.0.0 (2017-12-26)

    • Embed the default configuration
    • Add platform-specific configuration paths (by Jan Tojnar)
    • Bump haskell-src-exts to 0.20
    • Avoid unpaired parenthesis when import doesn't specify any items (by Matthew Kennerly)
    • Remove shebang lines at the beginning of file (by Vaibhav Sagar)
  • 0.8.1.0 (2017-06-19)

    • Add pad_module_names option (by Yuriy Syrovetskiy)
    • Add space_surround option to import styling (by Linus Arver)
    • Bump optparse-applicative to 0.14
  • 0.8.0.0

    • Remove MagicHash from whitelisted language extensions, since it was causing parsing errors (by Artyom Kazak)
    • Don't leave a #-} hanging on the next line when language_pragmas is set to compact and the #-} doesn't fit into character limit (by Artyom Kazak)
    • Deduplicate import specs (i.e. import Foo (a, a, b) becomes import Foo (a, b)) (by Artyom Kazak)
    • Take package imports into account when prettifying imports (by Artyom Kazak)
    • Bump aeson to 1.2
    • Bump syb to 0.7
    • Bump HUnit to 1.6
  • 0.7.1.0

    • Keep safe and {-# SOURCE #-} import annotations (by Moritz Drexl)
  • 0.7.0.0

    • If there's parse errors, show these and exit with code 1
    • Bump aeson to 1.1
    • Bump directory to 1.3
    • Bump haskell-src-exts to 1.19
  • 0.6.5.0

    • Fix issue with unit records (by Mizunashi Mana)
    • Bump HUnit to 1.5
  • 0.6.4.0

    • Remove XmlSyntax from whitelisted language extensions, since it was causing parsing errors
  • 0.6.3.0

    • Bump optparse-applicative to 0.13.0.0
    • Export Import options & add a default
    • Add list_padding: module_name option (by Oleg Grenrus)
    • Bump aeson to 1.0 (by Oleg Grenrus)
    • Special setting for empty import lists (by Oleg Grenrus)
  • 0.6.2.0

    • Bump haskell-src-exts to 1.18
  • 0.6.1.0

    • Fix line patching issue in Editor
  • 0.6.0.0

    • Add a simple_align step
    • Move records step into simple_align
    • Use a set of default language extensions for parsing (by Langston Barrett)
    • Add a newline format option (by Svyatolslav Gryaznov)
    • Add more symbols from UnicodeSyntax (by Langston Barrett)
    • Add a --version option (by Ondra Pelech)
  • 0.5.17.0

    • Remove shebang from input before attempting to extract pragmas
    • Set stdin and stdout encoding to UTF-8 by default
  • 0.5.16.0

    • Fail if the default configuration file is not found.
  • 0.5.15.2

    • Bump aeson to 0.11
  • 0.5.15.1

    • Fix error that caused haddock to bail on this package
  • 0.5.15.0

    • Add new options for import list alignment (by Ondřej Janošík)
  • 0.5.14.4

    • Bump stylish-haskell to 1.17.0
  • 0.5.14.3

    • Bump HUnit to 1.13
  • 0.5.14.2

    • Bump aeson to 0.10
    • Bump syb to 0.6
  • 0.5.14.1

    • Bump aeson to 0.9
  • 0.5.14.0

    • Bump syb to 0.5
    • Slight refactoring in align code
  • 0.5.13.0

    • Fix issue with shebang code
  • 0.5.12.0

    • Add support for shebang at start of file
  • 0.5.11.2

    • Bump filepath dependency to 1.5
  • 0.5.11.1

    • Fix -Wall compilation with GHC 7.10
  • 0.5.11.0

    • Bump haskell-src-exts dependency to 1.16
  • 0.5.10.2

    • Bump mtl dependency to 2.2
  • 0.5.10.1

    • Bump aeson dependency to 0.8
  • 0.5.10.0

    • Bump haskell-src-exts dependency to 1.15
    • Fix test which was not run before
  • 0.5.9.0

    • Add compact_line setting for Language Pragma styling