2024-08-08 01:47:41 +02:00
|
|
|
return {
|
2025-10-08 01:32:23 +02:00
|
|
|
recommended = function()
|
|
|
|
|
return LazyVim.extras.wants({
|
|
|
|
|
ft = "scala",
|
|
|
|
|
root = { "build.sbt", "build.mill", "build.sc", "build.gradle", "pom.xml" },
|
|
|
|
|
})
|
|
|
|
|
end,
|
|
|
|
|
{
|
|
|
|
|
"scalameta/nvim-metals",
|
|
|
|
|
ft = { "scala", "sbt", "mill" },
|
|
|
|
|
config = function() end,
|
|
|
|
|
},
|
2024-08-08 01:47:41 +02:00
|
|
|
{
|
|
|
|
|
"neovim/nvim-lspconfig",
|
|
|
|
|
opts = {
|
|
|
|
|
servers = {
|
|
|
|
|
metals = {
|
|
|
|
|
settings = {
|
|
|
|
|
showImplicitArguments = false,
|
2025-12-13 02:05:16 +01:00
|
|
|
startMcpServer = true,
|
2024-08-08 01:47:41 +02:00
|
|
|
},
|
|
|
|
|
},
|
2025-08-04 00:28:29 +02:00
|
|
|
elixirls = {
|
|
|
|
|
cmd = { "elixir-ls" },
|
|
|
|
|
},
|
2024-08-08 01:47:41 +02:00
|
|
|
},
|
2025-10-08 01:32:23 +02:00
|
|
|
setup = {
|
|
|
|
|
metals = function(_, opts)
|
|
|
|
|
local metals = require("metals")
|
|
|
|
|
local metals_config = vim.tbl_deep_extend("force", metals.bare_config(), opts)
|
|
|
|
|
metals_config.on_attach = LazyVim.has("nvim-dap") and metals.setup_dap or nil
|
|
|
|
|
|
|
|
|
|
local nvim_metals_group = vim.api.nvim_create_augroup("nvim-metals", { clear = true })
|
|
|
|
|
vim.api.nvim_create_autocmd("FileType", {
|
|
|
|
|
pattern = { "scala", "sbt", "mill" },
|
|
|
|
|
callback = function()
|
|
|
|
|
metals.initialize_or_attach(metals_config)
|
|
|
|
|
end,
|
|
|
|
|
group = nvim_metals_group,
|
|
|
|
|
})
|
|
|
|
|
return true
|
|
|
|
|
end,
|
|
|
|
|
},
|
2024-08-08 01:47:41 +02:00
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
}
|