nvim: refactor scala configuration

This commit is contained in:
Primrose 2025-07-08 23:56:16 +02:00
parent 83a83630db
commit 35787ab423
Signed by: primrose
GPG key ID: 4E887A4CA9714ADA
4 changed files with 26 additions and 43 deletions

View file

@ -0,0 +1,2 @@
local metals_config = require("lsp.scala")
require("metals").initialize_or_attach(metals_config)

View file

@ -0,0 +1,2 @@
local metals_config = require("lsp.scala")
require("metals").initialize_or_attach(metals_config)

View file

@ -0,0 +1,22 @@
local mylsp = require("lsp")
local capabilities = mylsp.capabilities
local on_attach = mylsp.on_attach
local metals = require("metals")
local config = metals.bare_config()
config.capabilities = capabilities
-- I think this is for nix
config.settings.useGlobalExecutable = true
config.on_attach = function(client, bufnr)
-- local function nnoremap(bind, callback, userargs)
-- local args = userargs or {}
-- args.buffer = bufnr
-- vim.keymap.set("n", bind, callback, args)
-- end
-- nnoremap("<leader>ws", metals.hover_worksheet)
on_attach(client, bufnr)
end

View file

@ -143,46 +143,3 @@ vim.api.nvim_create_autocmd("FileType", {
callback = function() require("jdtls").start_or_attach(config) end, callback = function() require("jdtls").start_or_attach(config) end,
group = jdtls_group, group = jdtls_group,
}) })
-- Scala
local metals = require("metals")
local metals_config = metals.bare_config()
metals_config.capabilities = mylsp.capabilities
metals_config.settings.useGlobalExecutable = true
require("dap").configurations.scala = {
{
type = "scala",
request = "launch",
name = "RunOrTest",
metals = { runType = "runOrTestFile" },
},
{
type = "scala",
request = "launch",
name = "Test Target",
metals = { runType = "testTarget" },
},
}
metals_config.on_attach = function(client, bufnr)
metals.setup_dap()
map("n", "<leader>ws", metals.hover_worksheet)
map("n", "<leader>dc", require("dap").continue)
map("n", "<leader>dr", require("dap").repl.toggle)
map("n", "<leader>dK", require("dap.ui.widgets").hover)
map("n", "<leader>dt", require("dap").toggle_breakpoint)
map("n", "<leader>dso", require("dap").step_over)
map("n", "<leader>dsi", require("dap").step_into)
map("n", "<leader>dl", require("dap").run_last)
mylsp.on_attach(client, bufnr)
end
local nvim_metals_group = vim.api.nvim_create_augroup("nvim-metals", { clear = true })
vim.api.nvim_create_autocmd("FileType", {
pattern = { "scala", "sbt" },
callback = function() require("metals").initialize_or_attach(metals_config) end,
group = nvim_metals_group,
})