local status, lspc = pcall(require, 'lspconfig') if (not status) then return end lspc.clangd.setup{} local buf_map = function(bufnr, mode, lhs, rhs, opts) vim.api.nvim_buf_set_keymap(bufnr, mode, lhs, rhs, opts or { silent = true, }) end local protocol = require('vim.lsp.protocol') local on_attach = function(client, buffnr) if client.server.capabilities.documentFormattingProvider then vim.api.nvim_create_autocmd("BufWritePre", { group = vim.api.nvim_create_augroup("format", { clear = true }), buffer = buffnr, callback = function() vim.lsp.buf.formatting_seq_sync() end }) end end local capabilities = vim.lsp.protocol.make_client_capabilities() capabilities.textDocument.completion.completionItem.snippetSupport = true capabilities = require('cmp_nvim_lsp').default_capabilities(capabilities) local servers = { 'ts_ls', 'lua_ls', 'cssls', 'yamlls', 'intelephense', 'gopls' } for _, lsp in pairs(servers) do require('lspconfig')[lsp].setup { -- on_attach = on_attach, capabilities = capabilities, } end lspc.yamlls.setup({ settings = { yaml = { keyOrdering = false, }, }, }); -- autoformat json files with jq vim.api.nvim_create_autocmd("FileType", { pattern = "json", callback = function(ev) vim.bo[ev.buf].formatprg = "jq" print("It's a json file") end, }) -- lspc.intelephense.setup()