Reputation: 21
Please help me with Metals LSP setup. I tried doing that with no luck, so I hope somebody here can help me please. I've been using mason and its lsp-config but now with metals i have trouble to configure it correctly since its not in mason currently my lsp file looks like this:
local servers = { 'rust_analyzer', 'ocamllsp', 'gopls', 'pyright', 'jdtls', 'asm_lsp', 'clangd' }
require("mason").setup()
require("mason-lspconfig").setup({
ensure_installed = servers,
})
local on_attach = function(_, _)
vim.keymap.set('n', '<leader>rn', vim.lsp.buf.rename, {})
vim.keymap.set('n', '<leader>ca', vim.lsp.buf.code_action, {})
vim.keymap.set('n', 'gd', vim.lsp.buf.definition, {})
vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, {})
vim.keymap.set('n', 'gr', require('telescope.builtin').lsp_references, {})
vim.keymap.set('n', 'K', vim.lsp.buf.hover, {})
end
local capabilities = require('cmp_nvim_lsp').default_capabilities()
local lspconfig = require('lspconfig')
for _, lsp in ipairs(servers) do
lspconfig[lsp].setup {
on_attach = on_attach,
capabilities = capabilities,
}
end
i have downloaded these plugins via packer
-- lsp
use {
"williamboman/mason.nvim",
"williamboman/mason-lspconfig.nvim",
"neovim/nvim-lspconfig",
}
-- scala lsp
use({'scalameta/nvim-metals', requires = { "nvim-lua/plenary.nvim" }})
-- completion
use 'hrsh7th/cmp-nvim-lsp'
use 'hrsh7th/cmp-buffer'
use 'hrsh7th/cmp-path'
use 'hrsh7th/cmp-cmdline'
use 'hrsh7th/nvim-cmp'
use 'L3MON4D3/LuaSnip'
use 'saadparwaiz1/cmp_luasnip'
also i tried putting
local metals_config = require('metals').bare_config()
metals_config.setup {
on_attach = on_attach,
capabilities = capabilities,
}
inside my lsp.lua file
Upvotes: 2
Views: 1518