2022-11-08 22:44:29 +00:00
|
|
|
-- Setup mason and language servers
|
|
|
|
require("mason").setup()
|
|
|
|
|
|
|
|
|
|
|
|
require("mason-lspconfig").setup({
|
2023-12-05 21:30:27 +00:00
|
|
|
ensure_installed = { "rust_analyzer" }
|
2022-11-08 22:44:29 +00:00
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
local lspconfig = require('lspconfig')
|
|
|
|
require("mason-lspconfig").setup_handlers({
|
|
|
|
-- default handler
|
|
|
|
function(server_name) -- default handler (optional)
|
2022-11-13 01:00:45 +00:00
|
|
|
require("lspconfig")[server_name].setup {
|
|
|
|
on_attach = function()
|
|
|
|
vim.keymap.set("n", "K", vim.lsp.buf.hover, { buffer = 0 })
|
|
|
|
vim.keymap.set("n", "gd", vim.lsp.buf.definition, { buffer = 0, desc = "Go to definition"})
|
2022-11-13 02:27:51 +00:00
|
|
|
vim.keymap.set("n", "gr", ":Telescope lsp_references<CR>", { buffer = 0, desc = "Go to references"})
|
|
|
|
vim.keymap.set("n", "gt", vim.lsp.buf.type_definition, { buffer = 0, desc = "Go to type definition"})
|
|
|
|
vim.keymap.set("n", "gI", vim.lsp.buf.implementation, { buffer = 0, desc = "Go to implementation"})
|
|
|
|
vim.keymap.set("n", "<leader>r", vim.lsp.buf.rename, { buffer = 0, desc = "Refactor/Rename" })
|
|
|
|
vim.keymap.set("n", "<leader>df", vim.diagnostic.goto_next, { buffer = 0, desc = "Go to next diagnostic"})
|
|
|
|
vim.keymap.set("n", "<leader>db", vim.diagnostic.goto_prev, { buffer = 0, desc = "Go to previous diagnostic"})
|
2022-11-13 01:00:45 +00:00
|
|
|
end
|
|
|
|
}
|
2022-11-08 22:44:29 +00:00
|
|
|
end,
|
|
|
|
-- Overrides
|
2023-02-28 08:04:44 +00:00
|
|
|
-- ["sumneko_lua"] = function()
|
|
|
|
-- lspconfig.sumneko_lua.setup {
|
|
|
|
-- settings = {
|
|
|
|
-- Lua = {
|
|
|
|
-- runtime = {
|
|
|
|
-- -- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim)
|
|
|
|
-- version = 'LuaJIT',
|
|
|
|
-- },
|
|
|
|
-- diagnostics = {
|
|
|
|
-- -- Get the language server to recognize the `vim` global
|
|
|
|
-- globals = { 'vim' },
|
|
|
|
-- },
|
|
|
|
-- workspace = {
|
|
|
|
-- -- Make the server aware of Neovim runtime files
|
|
|
|
-- library = vim.api.nvim_get_runtime_file("", true),
|
|
|
|
-- },
|
|
|
|
-- -- Do not send telemetry data containing a randomized but unique identifier
|
|
|
|
-- telemetry = {
|
|
|
|
-- enable = false,
|
|
|
|
-- },
|
|
|
|
-- },
|
|
|
|
-- },
|
|
|
|
-- }
|
|
|
|
-- end,
|
2022-11-08 22:44:29 +00:00
|
|
|
})
|
|
|
|
|