The goal of this project is to create developer tools for the functional programming language Haskell. Currently this project is about refactoring Haskell programs. We have a couple of refactorings working, with support for using them in your editor, or programmatically from command line.
Demo We have a live online demo that you can try
- The package is available from hackage and stackage
stack install haskell-tools-daemon haskell-tools-cli --resolver=nightly-[current-date]
- When we are not yet on the latest GHC, the only way to install the latest version is to clone this repository and
stack installit. See the stackage nightly badge above.
- Use in editor: Atom, Sublime (Coming soon...)
- Official implemented refactorings: The detailed description of the officialy refactorings supported by Haskell-tools Refactor.
- ht-refact: A command-line refactorer tool for standalone use.
- haskell-tools-demo: An interactive web-based demo tool for Haskell Tools.
How to contribute to the Haskell-tools project?
If you encounter a problem, reporting bugs always helps us.
If you want to help us by making new tools, refactorings or improving existings ones, here are some useful resources for you.
- We have a general overview of the framework, to let you understand the architecture.
- The refactoring packages describes how the functionality of the framework is distributed between several packages.
- A collection of programming tips may help you use the framework as it was intended.
- The project information page tells how to run, test your code, what are the coding and versioning conventions.
- You can access the API documentation of the last build, and the latest release.
Write your own refactorings
- Check out the Tutorials for the know-how of refactorings. Please check the reference tutorial also.
- Guide for writing refactorings.
Write other tools working with Haskell-tools
Integrate the tool with your favourite editor.
By implementing a client to handle a simple protocol you can make your favourite editor work with Haskell-tools. Check out the editor integration tutorial.