6.2.1 - 2024-11-28
- Support for GHC 9.0 (#967)
6.2.0 - 2024-09-07
- Support for GHC 9.8 (#775) and GHC 9.10(#904).
- Support for
ImportPostQualified
(#875). - HIndent now formats multiple files in parallel (#914).
- The formatting style of import declarations with constructors (#829).
- HIndent no longer inserts an empty line after a standalone kind signature (#873).
- Bumped Stack LTS to 22.26 (#918).
- HIndent re-assumes the default extensions are enabled (#904).
- Wrong default HIndent configuration in
README.md
(#750). - Fix the bug of panicking when the given source code has CPP lines and space-prefixed lines (#780).
- Fix not pretty-printing multiple signatures in a
SPECIALISE
(#784). - Fix the bug of not pretty-printing multiple module-level warning messages (#822)
- Fix the bug of wrongly converting a
newtype
instance to adata
one (#839) - Fix the bug of not pretty-printing multiple functional dependencies in a typeclass (#843)
- Fix the bug of not pretty-printing data declarations with records and typeclass constraints (#849)
- Fix the bug of not pretty-printing unboxed tuples (#868)
- Support for GHC 8.10 (#950)
6.1.0 - 2023-05-17
reformat
now takes a list ofExtension
s instead of aMaybe
value containing the list (#712).reformat
andtestAst
now return aParseError
on error (#715).reformat
now returns the formatted code as aByteString
instead of aBuilder
. (#720).- HIndent now assumes no extensions are enabled by default (#728).
- All modules except for
HIndent
are now private, and the minimum necessary definitions are exposed from the module (#729). - HIndent now prints all
do
expressions in a unified style (#739). - HIndent now formats operators based on their fixities (#741, #742).
- Fixed module names being removed from uses of qualified
do
(#696). - Misplaced haddocks for class declarations (#706).
- Misplaced comments in do expressions (#707).
- Misplaced comments in case expressions (#708).
- The bug of extensions specified via pragmas not enabling implied ones (#727).
- Language extensions enabled via pragmas were not effective across CPP boundaries (#731).
6.0.0 - 2023-02-20
- The getConfig function is exported.
- Switched the parser from
haskell-src-exts
toghc-lib-parser
. This switch causes changes in the formatting results in some cases. - Changed how to format a data type with a record constructor to follow the Johan Tibell's Haskell Style Guide. (#662).
- A newline is no longer inserted after a pattern signature (#663).
- A type with many type applications are now broken into multiple lines. (#664).
- A long type-level list is broken into multiple lines. (#665).
- Spaces around typed expression brackets are removed (#666).
- HIndent no longer breaks short class constraints in function signautres into multiple lines (#669).
- Fixed the wrong formatting of data family instances inside class instances (#667).
- Fixed the bug of removing the space before the enclosing parenthesis of a record syntax in a signature in a GADT declaration (#670).
- Fixed the bug of inserting unnecessary empty lines if a file contains only comments (#672).
- Test functions except
testAst
. - Atom support (#671).
5.3.4 - 2022-07-07
This version is accidentally pushlished, and is the same as 5.3.3.
5.3.3 - 2022-07-07
- Support for GHC 9.2.2.
- Test CI with GitHub Actions (WIP).
- Fixed a broken link to Servant by @mattfbacon in #579.
- Fixed a build with Cabal 3.6 by @uhbif19 in #584.
- Fixed a compile error for GHC 9.2.2 by @toku-sa-n in #588.
5.3.2 - 2022-02-02
MonadFix
issues to support newer GHC versions.
5.3.1 - 2019-06-28
- Comment relocations in where clauses of top-level function declarations.
5.3.0 - 2019-04-29
- Allow batch processing of multiple files.
- You can now specify default extensions in the configuration file.
- Handle multiple deriving clauses in the
DerivingStrategies
scenario. - Ignore non-files in
findCabalFiles
. - Prevent HIndent from trying to open non-files when searching for
.cabal
files. - Fix the bad output for
[p|Foo|]
pattern quasi-quotes. - Fix pretty-printing of
'(:)
. - Fix parsing C preprocessor line continuations.
- Add parentheses around symbols
(:|)
when required. - Support
$p
pattern splices. - Fix formatting of associated type families.
- Fix formatting of non-dependent record constructors.
5.2.7 - 2019-03-16
- A bug in the
-X
option
5.2.6 - 2019-03-16
- Switched to
optparse-applicative
.
5.2.5 - 2018-01-04
- Support getting extensions from a
.cabal
file
- Improved the indentation with record constructions and updates
- Updated
haskell-src-exts
dependency to version>= 1.20.0
- Fix the
let ... in
bug - Fix formatting top-level lambda expressions in
TemplateHaskell
slices
5.2.4 - 2017-10-20
- Improved pretty-printing unboxed tuples.
- Support the
--validate
option for checking the format without reformatting - Support parsing
#include
,#error
, and#warning
directives. - Support reading
LANGUAGE
pragmas and parse the declared extensions from sources. - Support the
EmptyCases
extension - Optimize pretty-printing for many functional dependencies.
- The
TypeApplications
extension is now disabled-by-default due to the@
symbol
- Fixed pretty-printing imports
- Fixed pretty-printing string literals for
DataKinds
- Fixed many issues related to infix operators including TH name quotes,
INLINE
/NOINLINE
pragmas, infix type operators, and infix constructors. - Fix extra linebreaks after short identifiers.
5.2.3 - 2017-05-07
- HIndent now reports where a parse happened.
- Added
--line-breaks
parameter to support custom line breaks. - Added the
RecStmt
support
- Explicit import lists are now sorted.
- Improved pretty-printing long type signatures.
- Improved pretty-printing GADT records.
- Improved pretty-printing data declaration records.
- The
RecursiveDo
andDoRec
extensions are now disabled-by-default.
- Fixed pretty-printing for infix data constructors.
- Fixed pretty-printing of quasi-quoter names.
- Fixed pretty-printing of complicated type aliases.
- Fixed pretty-printing of complicated type signatures.
5.2.2 - 2017-01-16
- HIndent now leaves
do
, lambda (\x->
), and lambda-case (\case->
) on the previous line of$
.
- Fixed pretty-printing of parallel list comprehensions.
- Miscellaneous fixes.
5.2.1 - 2016-09-01
- The
--tab-size
option is renamed to--indent-size
. - The
PatternSynonyms
extension is now disabled by default. - HIndent now puts a newline before the closing bracket on a list.
- Fixed handling of paragraph overhang when using large constraints.
- Fixed pretty-printing of multi-line comments.
- Fixed bug resulting in adding a spurious space for comments at the end of a file.
- Fixed bug which results in adding a trailing white space on
<-
5.2.0 - 2016-08-30
- Support the
.hindent.yaml
file to specify alternative tab width and max column numbers. - Implement the tab-size support in Emacs Lisp.
- The default number of spaces for a tab is changed to 2.
5.1.1 - 2016-08-29
- Add shebang support (Fixes #208).
- Output the filename for parse errors (Fixes #179).
- Added a document of the
-X
option (Fixes #212).
- HIndent now preserves spaces between groups of imports (Fixes #200).
- HIndent now preserves the last newline if the input ends with one (Fixes #211).
- HIndent now puts the last parenthesis of an export list on a new line (Fixes #227).
- Fixed pretty-printing explicit
forall
s in instances (Fixes #218).
5.1.0 - 2016-08-25
- Add
--tab-size
parameter to control indentation spaces.
- Rewrote comment association for more reliability.
- Some miscellaneous bugs.
5.0.1 - 2016-08-20
- Made HIndent compatible with GHC 7.8 through GHC 8.0
- Added test suites and benchmarks in
TESTS.md
andBENCHMARKS.md
- Re-implement using
bytestring
instead oftext
5.0.0 - 2016-08-11
- Support for styles
4.6.4 - 2016-07-15
- The formatted file is now created by coping/deleting a file instead of renaming.
4.6.3 - 2016-04-18
- Accept a filename to reformat.
- Fixed the whole module printer.
4.5.4 - 2015-06-22
- Improvements to Tibell style.
- 6x speed up on rendering operators.
4.4.5 - 2015-11-10
- Fixed a bug in infix patterns.
4.4.2 - 2015-04-05
- Support for CPP.
- Bunch of Gibiansky style bugs.
- Tibell style bugs.
4.3.8 - 2015-02-06
- A bug in printing operators in statements.