74 lines
2 KiB
Lua
74 lines
2 KiB
Lua
local lsp = vim.lsp
|
|
local diagnostic = vim.diagnostic
|
|
local keymap = vim.keymap
|
|
|
|
keymap.set("n", "gd", lsp.buf.definition)
|
|
keymap.set("n", "<space>rn", lsp.buf.rename)
|
|
keymap.set("n", "gr", lsp.buf.references)
|
|
keymap.set("n", "[d", diagnostic.goto_prev)
|
|
keymap.set("n", "]d", diagnostic.goto_next)
|
|
|
|
diagnostic.config {
|
|
signs = false,
|
|
}
|
|
|
|
local lspconfig = require("lspconfig")
|
|
local capabilities = require("cmp_nvim_lsp").default_capabilities()
|
|
|
|
lspconfig.pylsp.setup { capabilities = capabilities }
|
|
lspconfig.clangd.setup { capabilities = capabilities }
|
|
lspconfig.vimls.setup { capabilities = capabilities }
|
|
lspconfig.bashls.setup { capabilities = capabilities }
|
|
lspconfig.rust_analyzer.setup {
|
|
capabilities = capabilities,
|
|
}
|
|
|
|
lspconfig.gopls.setup {
|
|
settings = {
|
|
gopls = {
|
|
analyses = {
|
|
unusedparams = true,
|
|
},
|
|
staticcheck = true,
|
|
gofumpt = true,
|
|
}
|
|
},
|
|
capabilities = capabilities,
|
|
}
|
|
|
|
lspconfig.lua_ls.setup {
|
|
capabilities = capabilities,
|
|
on_init = function(client)
|
|
if client.workspace_folders then
|
|
local path = client.workspace_folders[1].name
|
|
if vim.uv.fs_stat(path..'/.luarc.json') or vim.uv.fs_stat(path..'/.luarc.jsonc') then
|
|
return
|
|
end
|
|
end
|
|
|
|
client.config.settings.Lua = vim.tbl_deep_extend('force', client.config.settings.Lua, {
|
|
runtime = {
|
|
-- Tell the language server which version of Lua you're using
|
|
-- (most likely LuaJIT in the case of Neovim)
|
|
version = 'LuaJIT'
|
|
},
|
|
-- Make the server aware of Neovim runtime files
|
|
workspace = {
|
|
checkThirdParty = false,
|
|
library = {
|
|
vim.env.VIMRUNTIME
|
|
-- Depending on the usage, you might want to add additional paths here.
|
|
-- "${3rd}/luv/library"
|
|
-- "${3rd}/busted/library",
|
|
}
|
|
-- or pull in all of 'runtimepath'. NOTE: this is a lot slower
|
|
-- library = vim.api.nvim_get_runtime_file("", true)
|
|
}
|
|
})
|
|
end,
|
|
settings = {
|
|
Lua = {}
|
|
}
|
|
}
|
|
|
|
lspconfig.nixd.setup { capabilities = capabilities }
|