Changelog for stylish-haskell-0.12.2.0

# 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