All Projects → scalameta → nvim-metals

scalameta / nvim-metals

Licence: Apache-2.0 license
A Metals plugin for Neovim

Programming Languages

lua
6591 projects

Projects that are alternatives of or similar to nvim-metals

lspactions
handlers for required lsp actions
Stars: ✭ 44 (-83.4%)
Mutual labels:  nvim, lsp
Lsp Status.nvim
Utility functions for getting diagnostic status and progress messages from LSP servers, for use in the Neovim statusline
Stars: ✭ 201 (-24.15%)
Mutual labels:  nvim, lsp
vimrc
My neovim config
Stars: ✭ 43 (-83.77%)
Mutual labels:  nvim, lsp
aerial.nvim
Neovim plugin for a code outline window
Stars: ✭ 485 (+83.02%)
Mutual labels:  nvim, lsp
nvim-config
My neovim config
Stars: ✭ 63 (-76.23%)
Mutual labels:  nvim, lsp
virtual-types.nvim
Neovim plugin that shows type annotations as virtual text
Stars: ✭ 171 (-35.47%)
Mutual labels:  nvim, nvim-lsp
Nvim Lspconfig
Quickstart configurations for the Nvim LSP client
Stars: ✭ 3,410 (+1186.79%)
Mutual labels:  nvim, lsp
Thinkvim
Vim configuration in the 21st century
Stars: ✭ 832 (+213.96%)
Mutual labels:  nvim, lsp
lsp spinner.nvim
neovim plugin to retrieve the name of the running LSP client(s) and display a spinner when there are wip job
Stars: ✭ 23 (-91.32%)
Mutual labels:  nvim, lsp
nvim-fennel-lsp-conjure-as-clojure-ide
Basic config to transform your NVIM in a powerful Clojure IDE using fennel, clojure-lsp and conjure.
Stars: ✭ 144 (-45.66%)
Mutual labels:  nvim, lsp
vim-lamp
💡Language Server Protocol client for Vim.
Stars: ✭ 34 (-87.17%)
Mutual labels:  nvim, lsp
coc-java-debug
An extension for coc.nvim to enable Java debugging via jdt.ls
Stars: ✭ 92 (-65.28%)
Mutual labels:  nvim, lsp
neovimfiles
My Neovim configuration written in Lua
Stars: ✭ 52 (-80.38%)
Mutual labels:  nvim, lsp
fzf-lsp.nvim
Enable the power of fzf fuzzy search for the neovim built in lsp
Stars: ✭ 143 (-46.04%)
Mutual labels:  nvim, lsp
Coc.nvim
Nodejs extension host for vim & neovim, load extensions like VSCode and host language servers.
Stars: ✭ 18,268 (+6793.58%)
Mutual labels:  nvim, lsp
lsp-command
Command interface for neovim LSP
Stars: ✭ 48 (-81.89%)
Mutual labels:  nvim, lsp
py lsp.nvim
Lsp Plugin for working with Python virtual environments
Stars: ✭ 58 (-78.11%)
Mutual labels:  nvim, lsp
nvim-base16
Neovim plugin for building a sync base16 colorscheme. Includes support for Treesitter and LSP highlight groups.
Stars: ✭ 307 (+15.85%)
Mutual labels:  nvim
vim-lighthaus
A Lighthaus theme for (n)vim, vim-airline and lightline
Stars: ✭ 33 (-87.55%)
Mutual labels:  nvim
nvim-lsp-ts-utils
Utilities to improve the TypeScript development experience for Neovim's built-in LSP client.
Stars: ✭ 437 (+64.91%)
Mutual labels:  lsp

nvim-metals logo

nvim-metals

nvim-metals is a Lua plugin built to provide a better experience while using Metals, the Scala Language Server, with Neovim's built-in LSP support.1 You can see all the available features here.

link to discord link to help docs

Prerequisites

  • Before you get started you need to ensure that you are using nvim v.0.8.0 or newer. If you're still on v0.7.x then you'll want to target the v0.7.x tag.
  • Ensure Coursier is installed locally.2
  • Ensure that you have all the LSP mappings for the core functionality you want setup.3
  • Ensure plenary.nvim is installed.4
  • Subscribe to this discussion which will notify you of any breaking changes.
  • Unfamiliar with Lua and Neovim? Check out the great nanotee/nvim-lua-guide.

Installation

NOTE: This plugin works without needing to install neovim/nvim-lspconfig. If you have it installed for other languages, that's not a problem, but make sure you do not have Metals configured through nvim-lspconfig while using this plugin.1

Example if using packer:

use({'scalameta/nvim-metals', requires = { "nvim-lua/plenary.nvim" }})

Getting started

Settings and Commands

To view all of the available commands, check out :help metals-commands in the help docs. Similarly, to see the available configuration settings check out :help metals-settings.

Integrations

To see the full details on the available configurations, checkout out :help metals-integrations. The currently available integrations are:

Footnotes

  1. If you're familiar with nvim and LSP you'll probably know of nvim-lspconfig which also has a Metals configuration. Note that this is a very minimal version with no specific Metals commands and no Metals extensions. You can see more info on this here. DO NOT try to use Metals both with nvim-lspconfig and with nvim-metals as stuff will not work right. 2

  2. nvim-metals uses Coursier to download and update Metals. NOTE: On Windows, you should run coursier or cs.exe once from the command line as this is how it will install itself. Once this is done you should add C:\Users\YOURNAME\AppData\Coursier\data\bin to your path. To verify that it is properly installed you can run cs --help from a new shell.

  3. By default methods for things like goto definition, find references, etc are there, but not automatically mapped. You can find a minimal example configuration here.

  4. You're more than likely already relying on for other plugins. However, make sure to also have this installed as Metals uses it for things like Jobs, popups, and paths.

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