brittany/ChangeLog.md

135 lines
4.8 KiB
Markdown

# Revision history for brittany
## 0.9.0.1 -- February 2018
* Support `TupleSections` (thanks to Matthew Piziak)
* Bugfixes:
- Fix Shebang handling with stdin input (#92)
- Fix bug that effectively deleted strict/lazy matches (BangPatterns) (#116)
- Fix infix operator whitespace bug (#101, #114)
- Fix help command output and its layouting (#103)
- Fix crash when config dir does not exist yet (#115)
* Layouting changes:
- no space after opening non-tuple parenthesis even for multi-line case
- use spaces around infix operators (applies to sections and in pattern
matches)
- Let-in is layouted more flexibly in fewer lines, if possible
(thanks to Evan Borden)
## 0.9.0.0 -- December 2017
* Change default global config path (use XDG spec)
Existing config should still be respected, so this should not break
compatibility
* Support per-project config
* ! Slight rework of the commandline interface:
- Support multiple inputs and outputs
- Support inplace-transformation for multiple files via
`--write-mode=inplace`
* Implement `IndentPolicyLeft` - the indentation mode that never adds more
than the base indentation for nested parts (no hanging indentation)
(thanks to Evan Borden)
* Fix bug that manifested in bad output for (top-level) template haskell splices
* Extension support:
- RecordWildCards
- RecursiveDo (was only partially supported previously)
* Layouting Bugfixes:
- Properly reproduce parentheses around kind signatures
- Fix issue around promoted lists
(example good: `'[ 'True]` bad: `'['True]`)
- Trim text from exactprint used as workaround for unknown nodes
(unsupported extension workaround)
* Layouting changes
- Insert spaces around operator in sections
## 0.8.0.3 -- September 2017
* Support for ghc-8.2.1
* Bugfixes:
- Fix quadratic performance issue
- Fix special "where" indentation with indentAmount /= 2
- Fix negative literals in patterns
- Support type applications
* Accept `-h` for `--help` and improve help layouting (via butcher-1.1.0.2)
* Add continuous integration via travis (cabal, cabal-new, stack)
(brittle due compilation time limit)
* Reduce compilation memory usage a bit
## 0.8.0.2 -- August 2017
* Add library interface, to be used by `haskell-ide-engine`.
* Publish to hackage.
## 0.8.0.1 -- May 2017
* Document the high-level design of the program
* Improve layouting for many different cases, too many to list here. Brittany
still does only reformat top-level type signatures and bindings.
* Publish all dependencies on hackage; `ghc-exactprint ` adaptions got merged
upstream as well.
* Reduce the aggressiveness of horizontal alignment; this is configurable
via the `lconfig_alignmentLimit` and `lconfig_alignmentBreakOnMultiline`
values (config file only for now).
* (!) Breaking change to the config file format: The keys previously contained
underscore (e.g. `_econf_Werror`) but do not anymore (`econf_Werror`).
Add config version; also
* Move config value `conf_errorHandling.econf_CPPMode` to
`conf_preprocessor.ppconf_CPPMode`.
* Cope with unhandled syntactical constructs more gracefully by falling back
on the ghc-exactprint output; Brittany simply won't touch certain
subexpressions instead of aborting. This is further configurable via the
`econf_omit_output_valid_check` config value.
* Due to improvements to the `butcher` library: Accept `--key=value` on
commandline (only `--key value` was supported previously).
* Improve testsuite setup: The `tests.blt` file contains many different
testcases that allow quick addition - feel free to report bugs directly
by making PRs with additions to that file.
* Release under the terms of the AGPLv3
## 0.7.1.0 -- 2016-09-06
* Support stack
* Fix --ghc-options handling
* Add commandline param to allow shortcut `brittany Foo.hs`
meaning `brittany -i Foo.hs`
## 0.7.0.0 -- 2016-09-04
* First official alpha release
* Fix commandline flag parsing
* Implement/Improve horizontal aligning
* Various minor fixes and layouting improvements
## 0.6.0.0 -- 2016-08-12
* Add check that output is syntactically valid
* (!) Change config format, breaking previous configs
* Various layouting additions/imporements
* Various minor fixes
## 0.5.0.0 -- 2016-08-08
* Support --ghc-options
* Support user and local config files: Local config file is not mandatory
anymore.
## 0.4.0.0 -- 2016-08-06
* Make comment handling a bit more clever
* Various layouting additions/imporements
## 0.3.0.0 -- 2016-08-04
* Various layouting additions/imporements
## 0.2.0.0 -- 2016-07-30
* Basic and partial implementation for
expression/decl/statement/pattern layouting
* Prevent exponential behaviour using manual stablenames
## 0.1.0.0 -- 2016-06-05
* First working code for type signature layouting