intero-0.1.37: README.md
# intero [](https://travis-ci.org/chrisdone/intero) [](https://melpa.org/#/intero) [](https://stable.melpa.org/#/intero) [](https://ci.appveyor.com/project/chrisdone/intero)
Complete interactive development program for Haskell
## Intero for Emacs
Please see
[the homepage for Intero for Emacs](http://chrisdone.github.io/intero).
#### Default key bindings
Key binding | Description
--- | ---
`M-.` | Jump to definition
`C-c C-i` | Show information of identifier at point
`C-c C-t` | Show the type of thing at point, or the selection
`C-u C-c C-t` | Insert a type signature for the thing at point
`C-c C-l` | Load this module in the REPL
`C-c C-c` | Evaluate the selected region in the REPL
`C-c C-r` | Apply suggestions from GHC
`C-c C-k` | Clear REPL
`C-c C-z` | Switch to and from the REPL
## Install requirements
Make sure you have this package installed on Linux:
libtinfo-dev
(People on other platforms please contribute the equivalent
dependency.)
## Enabling intero
To enable `intero` in all `haskell-mode` buffers by default, enable
`intero-global-mode`, by using `M-x customize` or by adding
`(intero-global-mode 1)` to your Emacs start-up files.
Intero will then activate for all projects, and for files without a
stack.yaml, it will assume the "global" project. If you want to use an
alternate stack yaml configuration file (for example, when developing
for multiple GHC versions), use `M-x intero-stack-yaml` to switch
file. When switching configuration, you will asked whether you want to
preserve this choice across emacs sessions for the given project.
## Whitelisting/blacklisting projects
Some users prefer to enable Intero selectively. The custom variables
`intero-blacklist` and `intero-whitelist` are provided for this
purpose, and are honoured by `intero-global-mode`:
If the parent directory of a Haskell file is listed in
`intero-blacklist`, then `intero` will not be enabled for that file,
unless a parent directory of that file is also listed in
`intero-whitelist`. In other words, whitelist entries take
precedence. You can therefore blacklist `/` to disable `intero` in all
projects unless they are whitelisted.
## Intero support for other editors and IDEs
Although not supported by the Intero maintainers, integrations with other editors exist:
* [intero-neovim](https://github.com/parsonsmatt/intero-neovim)
* [haskero](https://gitlab.com/vannnns/haskero) (vscode)
* [Haskelly](https://github.com/haskelly-dev/Haskelly) (vscode)
* [sublime-intero](https://github.com/dariusf/sublime-intero)
If you would like to build support into a new editor or IDE, please see
[TOOLING.md](https://github.com/commercialhaskell/intero/blob/master/TOOLING.md).