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
Installation instructions
- 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 install
it. See the stackage nightly badge above.
User manuals
- 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.
Contribute
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.
- Limitations
Write other tools working with Haskell-tools
(Comming soon...)
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.
Help to improve the framework
This section is for those of you who want to improve the framework to help your refactorings and tools. The limitations section could be a good start where to improve the system.