The fix-imports package

[Tags: bsd3, program]

fix-imports is a small standalone program to manage the import block of a haskell program. It will try to add import lines for qualified names with no corresponding import, remove unused import lines, and sort the import block according to some heuristic you can define. This only works for qualified imports! Unqualified imports are left untouched.

It's most convenient if bound to an editor key.

Recent major changes: * version 1.0.3 and 1.0.4

[Skip to ReadMe]


Versions0.1.0, 0.1.1, 0.1.2, 0.1.3, 1.0.0, 1.0.1, 1.0.2, 1.0.3, 1.0.4
Change logNone available
Dependenciesbase (>=3 && <5), containers, cpphs, directory, filepath, haskell-src-exts (>=1.16.0 && <1.17), process, split, text, uniplate [details]
AuthorEvan Laforge
MaintainerEvan Laforge <>
CategoryEditor, Haskell, IDE
Source repositoryhead: darcs get
UploadedMon Sep 22 02:10:26 UTC 2014 by EvanLaforge
Downloads1598 total (44 in last 30 days)
0 []
StatusDocs not available [build log]
Last success reported on 2015-09-28 [all 4 reports]


Maintainers' corner

For package maintainers and hackage trustees

Readme for fix-imports-1.0.4

There are a few things which can be configured.  Edit src/Main.hs and mess with
the Config it passes in.  There isn't much configurability but what there is
should be documented in the modules in which it is defined.

See the vimrc for an exmaple of how it can be bound to a key in vim.

It'll reformat the import lines, including an import list if you have one.
Sorry about that.  The formatting style of Language.Haskell.Exts.prettyPrint
is not my personal style.  If it ever bothers me enough maybe I'll write my
own formatter, or come up with a way to not reformat unqualified imports.

Also, it will search for modules starting from '.', so you should be in the
root of the module hierarchy.  It wouldn't be hard to add a -i flag though.

haskell-src-exts will crash the program if it gets an ambigious operator
fixity parse.  I don't know why it does that, but if you get a crash like that
you can add your custom operators to the Config.

It can be a little slow.  Most of this is probably that it rebuilds the
package index on every run.  So if you have a large package db and it's too
slow, caching the package index would probably help.