|
1 | 1 | ## Tools in the ecosystem
|
2 | 2 |
|
3 |
| -* HaRe |
4 |
| -* codex |
5 |
| -* dead code detection (https://github.com/soenkehahn/dead-code-detection) |
6 |
| -* djinn |
7 |
| -* exference (https://github.com/lspitzner/exference/) |
8 |
| -* flycheck |
9 |
| -* ghc-mod |
10 |
| -* ghci / ghci-ng |
11 |
| -* hasktags |
12 |
| -* hayoo |
13 |
| -* hindent |
14 |
| -* hlint (and apply-refact) |
15 |
| -* hoogle |
16 |
| -* hscope |
17 |
| -* liquid haskell |
18 |
| -* mote |
19 |
| -* pointfree |
20 |
| -* pointful |
21 |
| -* scan reformatting tool (http://projects.haskell.org/style-scanner/) |
22 |
| -* scion / scion-tools |
23 |
| -* stylish-haskell |
24 |
| -* argon (https://github.com/rubik/argon) |
| 3 | +#### Linters / Refactoring |
| 4 | + |
| 5 | +* `hlint`: suggests changes to simplify code and make it easier to read - |
| 6 | + ([github](https://github.com/ndmitchell/hlint), |
| 7 | + [hackage](https://hackage.haskell.org/package/hlint), |
| 8 | + [website](http://community.haskell.org/~ndm/hlint/)) |
| 9 | +* `HaRe`: Haskell Refactoring Tool - |
| 10 | + ([github](https://github.com/alanz/HaRe), |
| 11 | + [website](http://www.cs.kent.ac.uk/projects/refactor-fp/)) |
| 12 | +* `dead-code-detection`: Detects dead code in haskell projects - |
| 13 | + ([github](https://github.com/soenkehahn/dead-code-detection), |
| 14 | + [hackage](http://hackage.haskell.org/package/dead-code-detection)) |
| 15 | +* `argon`: Monitor cyclomatic complexity in Haskell programs - |
| 16 | + ([github](https://github.com/rubik/argon), |
| 17 | + [hackage](http://hackage.haskell.org/package/argon)) |
| 18 | +* `style-scanner`: Lexical style suggestions for source code - |
| 19 | + ([darcs](http://code.haskell.org/style-scanner/), |
| 20 | + [hackage](http://hackage.haskell.org/package/scan), |
| 21 | + [website](http://projects.haskell.org/style-scanner/)) |
| 22 | +* `stylish-haskell`: Haskell code prettifier - |
| 23 | + ([github](https://github.com/jaspervdj/stylish-haskell), |
| 24 | + [hackage](http://hackage.haskell.org/package/stylish-haskell)) |
| 25 | +* `hindent`: Extensible Haskell pretty printer - |
| 26 | + ([github](https://github.com/chrisdone/hindent), |
| 27 | + [hackage](https://hackage.haskell.org/package/hindent)) |
| 28 | +* `apply-refact`: ... |
| 29 | +* `pointfree`: Tool for refactoring expressions into pointfree form - |
| 30 | + ([hackage](http://hackage.haskell.org/package/pointfree) |
| 31 | + [haskell wiki](https://wiki.haskell.org/Pointfree) |
| 32 | + [github](https://github.com/bmillwood/pointfree)) |
| 33 | +* `pointful`: Tool for refactoring expressions into pointfull form - |
| 34 | + ([github](https://github.com/23Skidoo/pointful), |
| 35 | + [hackage](http://hackage.haskell.org/package/pointful)) |
| 36 | +* `hfmt`: Code reformatter, using hlint, hindent, and stylish-haskell - |
| 37 | + ([hackage](http://hackage.haskell.org/package/hfmt), |
| 38 | + [github](https://github.com/danstiner/hfmt)) |
| 39 | + |
| 40 | +#### Documentation generation / lookup |
| 41 | + |
| 42 | +* `haddock`: A Haskell Documentation generation Tool - |
| 43 | + ([github](https://github.com/haskell/haddock), |
| 44 | + [website](https://www.haskell.org/haddock/)) |
| 45 | +* `hayoo`: Search Hackage by function, signature or package - |
| 46 | + ([app](http://hayoo.fh-wedel.de/), |
| 47 | + [github](https://github.com/hunt-framework/hayoo), |
| 48 | + [hackage](http://hackage.haskell.org/package/Hayoo)) |
| 49 | +* `hoogle`: Haskell API search engine - |
| 50 | + ([haskell wiki](https://wiki.haskell.org/Hoogle), |
| 51 | + [haskell.org app](https://www.haskell.org/hoogle/), |
| 52 | + [stackage.org app](http://www.stackage.org/), |
| 53 | + [hackage](http://hackage.haskell.org/package/hoogle), |
| 54 | + [github](https://github.com/ndmitchell/hoogle)) |
| 55 | +* `doctest` - checks examples in source code comments and include them in generated documentation- |
| 56 | + ([github](https://github.com/sol/doctest), |
| 57 | + [hackage](https://hackage.haskell.org/package/doctest)) |
| 58 | + |
| 59 | +#### console / REPL |
| 60 | + |
| 61 | +* `ghci`: ... |
| 62 | +* `ghci-ng`: ... |
| 63 | + |
| 64 | +#### Ide backends |
| 65 | + |
| 66 | +* `ide-backend`: drives the GHC API to build, query, and run your code - |
| 67 | + ([github](https://github.com/fpco/ide-backend), |
| 68 | + [hackage](http://hackage.haskell.org/package/ide-backend)) |
| 69 | +* `ghc-mod`: Haskell ide-backend - |
| 70 | + ([github](https://github.com/kazu-yamamoto/ghc-mod), |
| 71 | + [hackage](https://hackage.haskell.org/package/ghc-mod), |
| 72 | + [website](http://www.mew.org/~kazu/proj/ghc-mod/)) |
| 73 | +* `buildwrapper`: A library and an executable that provide an easy API for a Haskell IDE |
| 74 | + ([github](https://github.com/JPMoresmau/BuildWrapper), |
| 75 | + [hackage](https://hackage.haskell.org/package/buildwrapper)) |
| 76 | +* `hsdev`: ide bakcend: autocompletion, symbol info, go-to declaration, find references etc. - |
| 77 | + ([hackage](http://hackage.haskell.org/package/hsdev), |
| 78 | + [github](https://github.com/mvoidex/hsdev)) |
| 79 | +* :skull: `scion`: Haskell IDE library - |
| 80 | + ([hackage](https://hackage.haskell.org/package/scion)) |
| 81 | + |
| 82 | +#### Ctags generation |
| 83 | + |
| 84 | + * `codex`: A ctags file generator for cabal/stack project dependencies - |
| 85 | + ([github](https://github.com/aloiscochard/codex), |
| 86 | + [hackage](https://hackage.haskell.org/package/codex)) |
| 87 | + * `hasktags`: Produces ctags tags and etags TAGS files for Haskell programs - |
| 88 | + ([github](https://github.com/MarcWeber/hasktags), |
| 89 | + [hackage](https://hackage.haskell.org/package/hasktags)) |
| 90 | + * :skull: `lushtags`: ... - |
| 91 | + ([github](https://github.com/bitc/lushtags)) |
| 92 | + * :skull: `gasbag`: ... - |
| 93 | + ([github](http://kingfisher.nfshost.com/sw/gasbag)) |
| 94 | + * :skull: `hothasktags`: ... - |
| 95 | + ([github](http://hackage.haskell.org/package/hothasktags)) |
| 96 | + |
| 97 | +#### Code Generation |
| 98 | + |
| 99 | + * `djinn`: Generate Haskell code from a type - |
| 100 | + ([github](https://github.com/augustss/djinn), |
| 101 | + [hackage](https://hackage.haskell.org/package/djinn), |
| 102 | + [lambda-the-ultimate](http://lambda-the-ultimate.org/node/1178)) |
| 103 | + * `exference`: Haskell tool to generate expressions from types. |
| 104 | + [github](https://github.com/lspitzner/exference/) |
| 105 | + [pdf](https://github.com/lspitzner/exference-paper/raw/master/exference.pdf) |
| 106 | + |
| 107 | +#### Others... |
| 108 | + |
| 109 | +* `hscope`: partial cscope line oriented mode reimplementation for Haskell code - |
| 110 | + ([github](https://github.com/bosu/hscope), |
| 111 | + [hackage](https://hackage.haskell.org/package/hscope)) |
| 112 | +* `liquid haskell`: Refinement Types: static verifier for Haskell, based on Liquid Types - |
| 113 | + ([github](https://github.com/ucsd-progsys/liquidhaskell), |
| 114 | + [website](http://goto.ucsd.edu/~rjhala/liquid/haskell/blog/about/)) |
| 115 | +* `mote`: (Agda Style programmer's assistant for Vim) - |
| 116 | + ([github](https://github.com/imeckler/mote)) |
| 117 | +* `flycheck`: ... |
0 commit comments