IDE-like features for Scala in Neovim - powered by scalavista-server
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
doc
rplugin/python3
.flake8
.gitignore
LICENSE
README.md
demo.gif

README.md

neovim-scalavista

A Neovim plugin that provides basic IDE-like functionality for the Scala language (2.11 and 2.12):

  • Show type under cursor (:ScalavistaType);
  • Jump to definition (:ScalavistaGoto - does not currently work for external dependencies);
  • Show Scaladoc (:ScalavistaDoc);
  • Auto-completion (via omni completion - i_CTRL-X_CTRL-O);
  • Linting (compiler errors/warnings show up as you type).

Scalavista is not as feature-complete as ENSIME but instead aims to be minimalistic and lightweight.

The Neovim plugin is a front-end to the scalavista-server language-server, which in turn is a thin wrapper around Scala's presentation compiler.

Prerequisites

  • Neovim with Python3 support and the pynvim package installed (pip3 install pynvim);
  • scalavista-server;
  • sbt and the sbt-scalavista plugin are recommended.

Install

Using vim-plug:

Plug 'buntec/neovim-scalavista', { 'do': ':UpdateRemotePlugins' }

Usage

See scalavista-server on how to set up and launch scalavista-server. Once a server is running, the Neovim plugin will connect to it upon opening any Scala source file.

Disclaimer

This project is in alpha stage and should be considered unstable.