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", "", vim.lsp.buf.signature_help) map("n", "rn", vim.lsp.buf.rename) map("n", "ca", vim.lsp.buf.code_action) map("n", "[d", vim.diagnostic.goto_prev) map("n", "]d", vim.diagnostic.goto_next) map("n", "d", vim.diagnostic.open_float) map("n", "q", vim.diagnostic.setloclist) end return M