All Projects → unrelentingtech → intero.nvim

unrelentingtech / intero.nvim

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

Programming Languages

Vim Script
2826 projects

Projects that are alternatives of or similar to intero.nvim

zsh-yarn-completions
Yarn completions for Z-shell that supports yarn workspaces
Stars: ✭ 35 (-56.25%)
Mutual labels:  autocompletion
TheVimIDE
Modern Vim IDE with support for C/C++, Java, Python, Lua, PHP, JavaScript, Ruby and much more ...
Stars: ✭ 33 (-58.75%)
Mutual labels:  autocompletion
fast-autocomplete
Fast Autocomplete: When Elastcsearch suggestions are not fast and flexible enough
Stars: ✭ 201 (+151.25%)
Mutual labels:  autocompletion
autocomplete-haskell
Atom autocomplete-plus provider for haskell
Stars: ✭ 23 (-71.25%)
Mutual labels:  autocompletion
yoda
Experimental: Static Analyzer and Language Server for Ruby
Stars: ✭ 24 (-70%)
Mutual labels:  autocompletion
vscode-allautocomplete
Autocomplete from open files for VSCode
Stars: ✭ 90 (+12.5%)
Mutual labels:  autocompletion
Coc.nvim
Nodejs extension host for vim & neovim, load extensions like VSCode and host language servers.
Stars: ✭ 18,268 (+22735%)
Mutual labels:  autocompletion
ghci-hexcalc
Haskell/GHCi as a Hex-Calculator interactive
Stars: ✭ 24 (-70%)
Mutual labels:  ghci
company-shell
No description or website provided.
Stars: ✭ 89 (+11.25%)
Mutual labels:  autocompletion
AvalonHelper
avalon completion for sublime 3
Stars: ✭ 40 (-50%)
Mutual labels:  autocompletion
nvim-config
My neovim config
Stars: ✭ 63 (-21.25%)
Mutual labels:  autocompletion
UnrealScriptIDE
Auto-completion, Syntax Highlighting, Go to Declaration, Build and Run and more..
Stars: ✭ 86 (+7.5%)
Mutual labels:  autocompletion
pip-bash-completion
bash autocompletion for pip
Stars: ✭ 74 (-7.5%)
Mutual labels:  autocompletion
Sublime-GameMaker-Studio-Language-Bundle
A sublime bundle for GameMaker Language (GML)
Stars: ✭ 32 (-60%)
Mutual labels:  autocompletion
editor
A text editor written in Nim
Stars: ✭ 24 (-70%)
Mutual labels:  autocompletion
sphinx.nvim
Sphinx integrations for Neovim
Stars: ✭ 64 (-20%)
Mutual labels:  autocompletion
haskell-debug
Implements a graphical haskell debugger in atom, using ghci
Stars: ✭ 21 (-73.75%)
Mutual labels:  ghci
STPathTextField
Subclass of NSTextField that supports shell and browser-style path autocompletion
Stars: ✭ 17 (-78.75%)
Mutual labels:  autocompletion
django-search-admin-autocomplete
Simple django app that add autocomplete to search inside admin panel.
Stars: ✭ 28 (-65%)
Mutual labels:  autocompletion
CLI-Autocomplete
Cross-platform flexible autocomplete library for your CLI applications.
Stars: ✭ 21 (-73.75%)
Mutual labels:  autocompletion

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