nixvim/config/lsp/nvim-metals.nix

48 lines
1.1 KiB
Nix

{ pkgs, helpers, ... }:
{
extraPlugins = [
pkgs.vimPlugins.nvim-metals
pkgs.vimPlugins.plenary-nvim
];
extraPackages = [
pkgs.metals
pkgs.scalafmt
];
autoGroups.nvim_metals_group = {
clear = true;
};
extraConfigLua = ''
metals_config = require("metals").bare_config()
metals_config.init_options.statusBarProvider = "off"
metals_config.settings = {
showInferredType = true,
showImplicitArguments = false,
showImplicitConversionsAndClasses = false,
metalsBinaryPath = "${pkgs.lib.getExe pkgs.metals}",
excludedPackages = { "akka.actor.typed.javadsl", "com.github.swagger.akka.javadsl" },
useGlobalExecutable = true,
verboseCompilation = true
}
metals_config.capabilities = require("cmp_nvim_lsp").default_capabilities()
'';
autoCmd = [
{
event = "FileType";
group = "nvim_metals_group";
desc = "Initialize nvim-metals";
callback = helpers.mkRaw ''
function()
require("metals").initialize_or_attach(metals_config)
end
'';
pattern = [ "scala" "sbt" ];
}
];
plugins.fidget.enable = true;
}