Skip to content
This repository has been archived by the owner on Jul 4, 2022. It is now read-only.
/ intero.nvim Public archive

Haskell+Neovim lightning fast autocompletion and other IDE functionality

License

Notifications You must be signed in to change notification settings

valpackett/intero.nvim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

intero.nvim unlicense

Do you use Neovim to work on Haskell code? Do you want really, really fast autocompletion and stuff? Do you already use GHCi a lot?

Well, this project is for you.

So,

  • GHCi is the Haskell REPL. It has a :complete command.
  • Intero is a fork of GHCi that adds :uses, :loc-at, :type-at.
  • 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.

Installation

  1. Clone https://github.com/myfreeweb/intero.git with git and install with stack install
  2. Install this plugin (https://github.com/myfreeweb/intero.nvim.git) with your favorite Vim package manager
  3. Run the REPL at your project root with stack ghci --with-ghc intero
  4. 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.

Example ftplugin/haskell.vim:

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.)

Contributing

Please feel free to submit pull requests!

By participating in this project you agree to follow the Contributor Code of Conduct.

The list of contributors is available on GitHub.

License

This is free and unencumbered software released into the public domain. For more information, please refer to the UNLICENSE file or unlicense.org.

About

Haskell+Neovim lightning fast autocompletion and other IDE functionality

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published