From 35787ab423e3a791224ccc88e9e118c6f069f2b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Tue, 8 Jul 2025 23:56:16 +0200 Subject: [PATCH] nvim: refactor scala configuration --- .config/nvim/ftplugin/sbt.lua | 2 ++ .config/nvim/ftplugin/scala.lua | 2 ++ .config/nvim/lua/lsp/scala.lua | 22 +++++++++++++++++ .config/nvim/plugin/lsp.lua | 43 --------------------------------- 4 files changed, 26 insertions(+), 43 deletions(-) create mode 100644 .config/nvim/ftplugin/sbt.lua create mode 100644 .config/nvim/ftplugin/scala.lua create mode 100644 .config/nvim/lua/lsp/scala.lua diff --git a/.config/nvim/ftplugin/sbt.lua b/.config/nvim/ftplugin/sbt.lua new file mode 100644 index 00000000..d1399403 --- /dev/null +++ b/.config/nvim/ftplugin/sbt.lua @@ -0,0 +1,2 @@ +local metals_config = require("lsp.scala") +require("metals").initialize_or_attach(metals_config) diff --git a/.config/nvim/ftplugin/scala.lua b/.config/nvim/ftplugin/scala.lua new file mode 100644 index 00000000..d1399403 --- /dev/null +++ b/.config/nvim/ftplugin/scala.lua @@ -0,0 +1,2 @@ +local metals_config = require("lsp.scala") +require("metals").initialize_or_attach(metals_config) diff --git a/.config/nvim/lua/lsp/scala.lua b/.config/nvim/lua/lsp/scala.lua new file mode 100644 index 00000000..424b9c75 --- /dev/null +++ b/.config/nvim/lua/lsp/scala.lua @@ -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("ws", metals.hover_worksheet) + + on_attach(client, bufnr) +end + diff --git a/.config/nvim/plugin/lsp.lua b/.config/nvim/plugin/lsp.lua index e39c932c..44fbe8ef 100644 --- a/.config/nvim/plugin/lsp.lua +++ b/.config/nvim/plugin/lsp.lua @@ -143,46 +143,3 @@ vim.api.nvim_create_autocmd("FileType", { callback = function() require("jdtls").start_or_attach(config) end, 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", "ws", metals.hover_worksheet) - - map("n", "dc", require("dap").continue) - map("n", "dr", require("dap").repl.toggle) - map("n", "dK", require("dap.ui.widgets").hover) - map("n", "dt", require("dap").toggle_breakpoint) - map("n", "dso", require("dap").step_over) - map("n", "dsi", require("dap").step_into) - map("n", "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, -})