40 lines
921 B
Lua
40 lines
921 B
Lua
local M = {}
|
|
|
|
function M.setup()
|
|
local map = vim.keymap.set
|
|
|
|
local capabilities = require("blink.cmp").get_lsp_capabilities()
|
|
|
|
vim.lsp.config("gopls", {
|
|
capabilities = capabilities,
|
|
})
|
|
|
|
vim.lsp.config("ols", {
|
|
capabilities = capabilities,
|
|
})
|
|
|
|
vim.lsp.enable({
|
|
"gopls",
|
|
"ols",
|
|
})
|
|
|
|
map("n", "gd", vim.lsp.buf.definition)
|
|
map("n", "gD", vim.lsp.buf.declaration)
|
|
map("n", "gi", vim.lsp.buf.implementation)
|
|
map("n", "gr", vim.lsp.buf.references)
|
|
|
|
map("n", "K", vim.lsp.buf.hover)
|
|
map("i", "<C-h>", vim.lsp.buf.signature_help)
|
|
|
|
map("n", "<leader>rn", vim.lsp.buf.rename)
|
|
map("n", "<leader>ca", vim.lsp.buf.code_action)
|
|
|
|
map("n", "[d", vim.diagnostic.goto_prev)
|
|
map("n", "]d", vim.diagnostic.goto_next)
|
|
|
|
map("n", "<leader>d", vim.diagnostic.open_float)
|
|
map("n", "<leader>q", vim.diagnostic.setloclist)
|
|
end
|
|
|
|
return M
|