return { -- lspconfig { "neovim/nvim-lspconfig", opts = { config = function(_, opts) local lsp = require("lspconfig") lsp.gopls.setup({ settings = { gopls = { gofumpt = true, codelenses = { gc_details = false, generate = true, regenerate_cgo = true, run_govulncheck = true, test = true, tidy = true, upgrade_dependency = true, vendor = true, }, hints = { assignVariableTypes = true, compositeLiteralFields = true, compositeLiteralTypes = true, constantValues = true, functionTypeParameters = true, parameterNames = true, rangeVariableTypes = true, }, analyses = { fieldalignment = true, shadow = true, unusedvariable = true, unusedwrite = true, useany = true, }, usePlaceholders = true, completeUnimported = true, staticcheck = true, directoryFilters = { "-.git", "-.vscode", "-.idea", "-.vscode-test", "-node_modules" }, semanticTokens = true, }, }, }) lsp.clangd.setup({ settings = { clangd = { cmd = { "clangd", "--background-index", "--clang-tidy", "--header-insertion=iwyu", "--completion-style=detailed", "--function-arg-placeholders", "--fallback-style=llvm", }, init_options = { usePlaceholders = true, completeUnimported = true, clangdFileStatus = true, }, }, }, }) lsp.lua_ls.setup({ settings = { Lua = { workspace = { checkThirdParty = false, }, codeLens = { enable = true, }, completion = { callSnippet = "Replace", }, diagnostics = { globals = { "vim" }, }, }, }, }) end, }, }, }