if !has('nvim') finish endif packadd nvim-lspconfig packadd cmp-nvim-lsp packadd symbols-outline.nvim packadd lsp_signature.nvim lua <', vim.lsp.buf.signature_help, bufopts) -- vim.keymap.set('n', 'wa', vim.lsp.buf.add_workspace_folder, bufopts) -- vim.keymap.set('n', 'wr', vim.lsp.buf.remove_workspace_folder, bufopts) -- vim.keymap.set('n', 'wl', function() -- print(vim.inspect(vim.lsp.buf.list_workspace_folders())) -- end, bufopts) vim.keymap.set('n', 'gy', vim.lsp.buf.type_definition, bufopts) vim.keymap.set('n', 'rn', vim.lsp.buf.rename, bufopts) -- vim.keymap.set('n', 'ca', vim.lsp.buf.code_action, bufopts) vim.keymap.set('n', 'gr', vim.lsp.buf.references, bufopts) -- vim.keymap.set('n', 'f', vim.lsp.buf.formatting, bufopts) vim.keymap.set('n', 's', symbols_outline.toggle_outline) vim.cmd [[ autocmd BufWritePre *.go,*.rs lua vim.lsp.buf.formatting_sync(nil, 1000) ]] lsp_signature.on_attach() end local servers = { 'clangd', 'gopls' , 'gdscript', 'pylsp' } for _, lsp in pairs(servers) do lspconfig[lsp].setup{ on_attach = on_attach, capabilities = capabilities, } end EOF