All Projects → myfreeweb → Intero.nvim

myfreeweb / Intero.nvim

Licence: unlicense
Haskell+Neovim lightning fast autocompletion and other IDE functionality

Programming Languages

haskell
3896 projects

Projects that are alternatives of or similar to Intero.nvim

Vim Packager
Vim plugin manager that utilizes "jobs" and "pack" features.
Stars: ✭ 197 (+159.21%)
Mutual labels:  viml, neovim
Vim Hemisu
A Vim color scheme with dark and light variants
Stars: ✭ 271 (+256.58%)
Mutual labels:  viml, neovim
Vim Yoink
Vim plugin that maintains a yank history to cycle between when pasting
Stars: ✭ 225 (+196.05%)
Mutual labels:  viml, neovim
Vim Subversive
Vim plugin providing operator motions to quickly replace text
Stars: ✭ 168 (+121.05%)
Mutual labels:  viml, neovim
Vim Startify
🔗 The fancy start screen for Vim.
Stars: ✭ 4,479 (+5793.42%)
Mutual labels:  viml, neovim
Neovim Config
Neovim configuration
Stars: ✭ 180 (+136.84%)
Mutual labels:  viml, neovim
Vim Language Server
VImScript language server, LSP for vim script
Stars: ✭ 264 (+247.37%)
Mutual labels:  viml, neovim
nvim-lsp-compl
A fast and asynchronous auto-completion plugin for Neovim >= 0.5, focused on LSP.
Stars: ✭ 46 (-39.47%)
Mutual labels:  autocompletion, neovim
Vim Dadbod Ui
Simple UI for https://github.com/tpope/vim-dadbod
Stars: ✭ 315 (+314.47%)
Mutual labels:  viml, neovim
Blamer.nvim
A git blame plugin for neovim inspired by VS Code's GitLens plugin
Stars: ✭ 283 (+272.37%)
Mutual labels:  viml, neovim
Vim Galore
🎓 All things Vim!
Stars: ✭ 12,610 (+16492.11%)
Mutual labels:  viml, neovim
Vim Grepper
👾 Helps you win at grep.
Stars: ✭ 1,030 (+1255.26%)
Mutual labels:  viml, neovim
Vim Follow My Lead
Vim plugin for showing all your <Leader> mappings in a readable table including the descriptions.
Stars: ✭ 100 (+31.58%)
Mutual labels:  viml, neovim
Vim Sneak
The missing motion for Vim 👟
Stars: ✭ 2,467 (+3146.05%)
Mutual labels:  viml, neovim
Vim Terraform Completion
A (Neo)Vim Autocompletion and linter for Terraform, a HashiCorp tool
Stars: ✭ 280 (+268.42%)
Mutual labels:  neovim, autocompletion
Vim Dirvish
Directory viewer for Vim ⚡️
Stars: ✭ 929 (+1122.37%)
Mutual labels:  viml, neovim
Vim Lookup
Jump to the definition of variables or functions in VimL code.
Stars: ✭ 51 (-32.89%)
Mutual labels:  viml, neovim
Vim Spotifysearch
Search spotify in Vim and play songs.
Stars: ✭ 71 (-6.58%)
Mutual labels:  viml
Moonscript Vim
MoonScript support for vim
Stars: ✭ 73 (-3.95%)
Mutual labels:  viml
Neoline.vim
Status Line for Neovim focused on beauty and performance ✅
Stars: ✭ 69 (-9.21%)
Mutual labels:  neovim

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].