Tools.md
March 17, 2018 ยท View on GitHub
Tools in the ecosystem
Linters / Refactoring
hlint: suggests changes to simplify code and make it easier to read - (github, hackage, website)HaRe: Haskell Refactoring Tool - (github, website)- :skull:
dead-code-detection: Detects dead code in haskell projects - (github, hackage) weeder: Detect dead exports or package imports - (github, hackage)- :skull:
argon: Monitor cyclomatic complexity in Haskell programs - (github, hackage) - :skull:
style-scanner: Lexical style suggestions for source code - (darcs, hackage, website) stylish-haskell: Haskell code prettifier - (github, hackage)hindent: Extensible Haskell pretty printer - (github, hackage)apply-refact: Refactoring tool. Can apply the suggestions fromhlint. (github, hackage, blog post)- :skull:
pointfree: Tool for refactoring expressions into pointfree form - (hackage haskell wiki github) pointful: Tool for refactoring expressions into pointfull form - (github, hackage)hfmt: Code reformatter, using hlint, hindent, and stylish-haskell - (hackage, github)hsimport: extend imports list, only if the given symbol is not already imported (github, hackage)refact-global-hse: - Global haskell source code refactorings (e.g. move declarations between modules) - (github- :skull:
module-management: Clean up module imports, split and merge modules (hackage, github)
Documentation generation / lookup
haddock: A Haskell Documentation generation Tool - (github, website)hayoo: Search Hackage by function, signature or package - (app, github, hackage)hoogle: Haskell API search engine - (haskell wiki, haskell.org app, stackage.org app, hackage, github)doctest- checks examples in source code comments and include them in generated documentation- (github, hackage)haskell-indexer- Emits code crossreference data for Haskell sources - (github)
console / REPL
ghci: ...ghci-ng: ...ghc-vis- Visualize live data structures in GHCi - (github, hackage)intero- Complete interactive development program for Haskell in Emacs built around an ghci fork - (github, hackage, site)dante- Lightweight alternative tointerobased around similar approach (github)
Ide backends
ghc-mod: Haskell ide-backend - (github, hackage, website)hsdev: ide backend: autocompletion, symbol info, go-to declaration, find references etc. - (hackage, github)hint: a huge subset of the GHC API wrapped in a simpler API - (github, hackage)- :skull:
ide-backend: drives the GHC API to build, query, and run your code - (github, hackage) - :skull:
buildwrapper: A library and an executable that provide an easy API for a Haskell IDE (github, hackage) - :skull:
scion: Haskell IDE library - (hackage)
Ctags generation
haskdogs: generate tags file for a project and its dependencies (github, hackage)codex: A ctags file generator for cabal/stack project dependencies - (github, hackage)hasktags: Produces ctags tags and etags TAGS files for Haskell programs - (github, hackage)fast-tags: Produces ctags and etags for Haskell with quick addenda for changes when using vim - (github, hackage)- :skull:
lushtags: ... - (github) - :skull:
gasbag: ... - (github) - :skull:
hothasktags: ... - (github)
Code Generation
- :skull:
djinn: Generate Haskell code from a type - (github, hackage, lambda-the-ultimate) - :skull:
exference: Haskell tool to generate expressions from types. github pdf
Others...
liquid haskell: Refinement Types: static verifier for Haskell, based on Liquid Types - (github, website)sbv: Express properties about Haskell programs and automatically prove them using SMT solvers - (github, hackage, website)ghc-proofs: GHC plugin to prove program equations by simplification - (github, hackage)mote: (Agda Style programmer's assistant for Vim) - (github)flycheck-haskell: Improved Haskell support for Emacs Flycheck - (github)- :skull:
illuminate: source-code syntax highlighting library and a command-line highlighting tool - (github, hackage) - :skull:
hscope: partial cscope line oriented mode reimplementation for Haskell code - (github, hackage)