The brittany package

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain]

Warnings:

See the README If you are interested in the implementation, have a look at this document; The implementation is documented in more detail here.


[Skip to ReadMe]

Properties

Versions0.8.0.2, 0.8.0.2
Change logChangeLog.md
Dependenciesaeson (>=1.0.1.0 && <1.3), base (==4.9.*), brittany, butcher (>=1.1.0.0 && <1.2), bytestring (>=0.10.8.1 && <0.11), cmdargs (>=0.10.14 && <0.11), containers (>=0.5.7.1 && <0.6), czipwith (>=1.0.0.0 && <1.1), data-tree-print, deepseq (>=1.4.2.0 && <1.5), directory (>=1.2.6.2 && <1.4), either (>=4.4.1.1 && <4.5), extra (>=1.4.10 && <1.6), filepath (>=1.4.1.0 && <1.5), ghc (>=8.0.1 && <8.1), ghc-boot-th (>=8.0.1 && <8.1), ghc-exactprint (>=0.5.3.0 && <0.6), ghc-paths (>=0.1.0.9 && <0.2), hspec (>=2.4.1 && <2.5), monad-memo (>=0.4.1 && <0.5), mtl (>=2.2.1 && <2.3), multistate (>=0.7.1.1 && <0.8), neat-interpolation (>=0.3.2 && <0.4), pretty (>=1.1.3.3 && <1.2), safe (>=0.3.9 && <0.4), semigroups (>=0.18.2 && <0.19), strict (>=0.3.2 && <0.4), syb (==0.6.*), text (==1.2.*), transformers (>=0.5.2.0 && <0.6), uniplate (>=1.6.12 && <1.7), unsafe (==0.0.*), yaml (>=0.8.18 && <0.9) [details]
LicenseAGPL-3
CopyrightCopyright (C) 2016-2017 Lennart Spitzner
AuthorLennart Spitzner
MaintainerLennart Spitzner <hexagoxel@hexagoxel.de>
CategoryLanguage
Home pagehttps://github.com/lspitzner/brittany/
Bug trackerhttps://github.com/lspitzner/brittany/issues
Source repositoryhead: git clone https://github.com/lspitzner/brittany.git
Executablesbrittany
UploadedFri Aug 4 09:15:52 UTC 2017 by lspitzner

Modules

[Index]

Flags

NameDescriptionDefaultType
brittany-dev

dev options

DisabledManual
brittany-dev-lib

set buildable false for anything but lib

DisabledManual

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainers' corner

For package maintainers and hackage trustees

Readme for brittany-0.8.0.2

brittany

haskell source code formatter

Output sample

(see more examples and comparisons)

This project's goals roughly are to:

In theory, the core algorithm inside brittany reaches these goals. It is rather clever about making use of horizontal space while still being linear in the size of the input (although the constant factor is not small). See these examples of clever layouting.

But brittany is not finished yet, and there are some open issues that yet require fixing:

Other usage notes

Installation

Usage

Implementation/High-level Documentation

See the documentation index

License

Copyright (C) 2016-2017 Lennart Spitzner

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License, version 3, as published by the Free Software Foundation.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see http://www.gnu.org/licenses/.