‹ jan0sch.de

Fix neovim coc-metals for Scala installation under FreeBSD

2020-05-19

For some time now the usage of metals for Scala development is no longer a choice for the brave but could be considered the “should be default” variant. However the installation for the neovim plugins has changed from using coursier bootstrap to something supposed to be easier. But at least under FreeBSD I ran into some issues. So here is a workaround to get a clean installation.

I won’t talk about setup here because I assume that you already have that and know what you’re doing.

The documentation says you should install the coc-metals plugin directly via coc which means entering :CocInstall coc-metals in your neovim command line. Another approach is to include it directly in your Vim-Plug configuration and use the :PlugInstall command of it.

Both approaches failed for me under FreeBSD, each one with a different error message.

The CocInstall way bailed out with something like this:

[coc.nvim] Error on install coc-metals: Error: EPERM: operation not permitted, unlink '/tmp/coc-metals-s4W6ca'

Using Vim-Plug gives some more messages ending in the following:

[coc-nvim] extension "coc-metals" doesn't contain main file ~/.config/nvim/bundle/coc-metals/lib/index.js.

Install via yarn

To get it working I had to manually install the plugin via the yarn command. This is done the following way:

% cd ~/.config/coc/extensions
% yarn add coc-metals

If you get weird errors then please read on. ;-)

Cleaning your installation in case of errors

Please note that if you get errors you might need to clean your installation beforehand. The cleaning can be done this way:

% rm -rf ~/.config/coc
% rm -rf ~/.config/nvim/bundle

Afterwards start neovim and initialise your plugins (for example :PlugInstall if using Vim-Plug). Then you can try again.