Well, this project is for you.
- GHCi is the Haskell REPL. It has a
- Intero is a fork of GHCi that adds
- My fork of intero adds a MessagePack RPC server that exposes those commands!
- This plugin connects to that server using Neovim's built-in MessagePack RPC client.
As a result, you get very robust and lightning fast omni-completion, go-to-definition, go-to-uses, type-of-expression.
gitand install with
- Install this plugin (
https://github.com/myfreeweb/intero.nvim.git) with your favorite Vim package manager
- Run the REPL at your project root with
stack ghci --with-ghc intero
- Configure your Neovim!
Note for Linux users: make sure you are using the openbsd netcat variant, which supports connecting to UNIX sockets. For Arch Linux use the openbsd-netcat package.
setlocal omnifunc=intero#omnifunc vnoremap <buffer> <Leader>G :InteroGoto<CR> vnoremap <buffer> <Leader>T :InteroType<CR> vnoremap <buffer> <Leader>U :InteroUses<CR> nnoremap <buffer> <Leader>m :call intero#ensurebufmodule()<CR>:call VimuxSendText(":m + ".b:intero_module."\n:reload\n")<CR>
(The last line uses Vimux to tell Intero to load the current module.)
Please feel free to submit pull requests!
By participating in this project you agree to follow the Contributor Code of Conduct.
This is free and unencumbered software released into the public domain.
For more information, please refer to the
UNLICENSE file or unlicense.org.