78 lines
1.9 KiB
Lua
78 lines
1.9 KiB
Lua
return {
|
|
{
|
|
"nvim-treesitter/nvim-treesitter",
|
|
opts = function(_, opts)
|
|
vim.list_extend(opts.ensure_installed, {
|
|
"go",
|
|
"gomod",
|
|
"gowork",
|
|
"gosum",
|
|
})
|
|
end,
|
|
},
|
|
{
|
|
"neovim/nvim-lspconfig",
|
|
opts = {
|
|
servers = {
|
|
gopls = {
|
|
settings = {
|
|
gopls = {
|
|
semanticTokens = true,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
setup = {
|
|
gopls = function()
|
|
-- workaround for gopls not supporting semantictokensprovider
|
|
-- https://github.com/golang/go/issues/54531#issuecomment-1464982242
|
|
require("lazyvim.util").on_attach(function(client, _)
|
|
if client.name == "gopls" then
|
|
if not client.server_capabilities.semanticTokensProvider then
|
|
local semantic = client.config.capabilities.textDocument.semanticTokens
|
|
client.server_capabilities.semanticTokensProvider = {
|
|
full = true,
|
|
legend = {
|
|
tokenTypes = semantic.tokenTypes,
|
|
tokenModifiers = semantic.tokenModifiers,
|
|
},
|
|
range = true,
|
|
}
|
|
end
|
|
end
|
|
end)
|
|
-- end workaround
|
|
end,
|
|
},
|
|
},
|
|
},
|
|
{
|
|
"mfussenegger/nvim-dap",
|
|
optional = true,
|
|
dependencies = {
|
|
{
|
|
"mason.nvim",
|
|
opts = function(_, opts)
|
|
opts.ensure_installed = opts.ensure_installed or {}
|
|
table.insert(opts.ensure_installed, "delve")
|
|
end,
|
|
},
|
|
},
|
|
},
|
|
{
|
|
"nvim-neotest/neotest",
|
|
optional = true,
|
|
dependencies = {
|
|
"nvim-neotest/neotest-go",
|
|
},
|
|
opts = {
|
|
adapters = {
|
|
["neotest-go"] = {
|
|
-- Here we can set options for neotest-go, e.g.
|
|
-- args = { "-tags=integration" }
|
|
},
|
|
},
|
|
},
|
|
},
|
|
}
|