48 lines
1.1 KiB
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;
|
|
}
|