local on_attach = require("plugins.configs.lspconfig").on_attach local capabilities = require("plugins.configs.lspconfig").capabilities local lspconfig = require "lspconfig" local util = require "lspconfig/util" -- if you just want default config for the servers then put them in a table local servers = { "html", "cssls", "ts_ls", "clangd" } for _, lsp in ipairs(servers) do lspconfig[lsp].setup { on_attach = on_attach, capabilities = capabilities, } end lspconfig.gopls.setup { cmd = { "gopls" }, filetypes = { "go", "gomod", "gowork", "gotmpl" }, root_dir = util.root_pattern("go.work", "go.mod", ".git"), settings = { gopls = { completeUnimported = true, usePlaceholders = true, analyses = { unusedParameters = true, }, }, }, } lspconfig.ts_ls.setup { filetypes = { "javascript", "typescript", "typescriptreact", "typescript.tsx" }, capabilities = require("cmp_nvim_lsp").default_capabilities(vim.lsp.protocol.make_client_capabilities()), on_attach = function(client, bufnr) local opts = { noremap = true, silent = true } vim.api.nvim_buf_set_keymap(bufnr, "n", "f", "lua vim.lsp.buf.format()", opts) end, } -- lspconfig.rust_analyzer.setup({ -- on_attach = on_attach, -- capabilities = capabilities, -- filetypes = {"rust"}, -- root_dir = util.root_pattern("Cargo.toml"), -- settings = {}, -- ['rust-analyzer'] = { -- cargo = { -- allFeatures = true, -- } -- } -- }) -- -- lspconfig.pyright.setup { blabla}