# CHANGELOG

- 0.12.2.0 (2020-10-08)
     *  align: Add a new option for aligning only adjacent items (by 1Computer1)
     *  align: Add support for aligning MultiWayIf syntax (by 1Computer1)
     *  data: Fix some issues with record field padding
     *  module_header: Add separate_lists option
     *  imports: Respect separate_lists for (..) imports
     *  data: Make sorting deriving list optional (by Maxim Koltsov)

- 0.12.1.0 (2020-10-05)
     *  Bump Cabal-version to 2.4 (by Łukasz Gołębiewski)
     *  Fix "group" import sort with multi-line imports (by Maxim Koltsov)

- 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
