local lsp = require("lsp-zero") local lspconfig = require("lspconfig") lsp.preset("recommended") lspconfig.lua_ls.setup {} lspconfig.clangd.setup {} lspconfig.gdscript.setup {} require('mason').setup {} require('mason-lspconfig').setup { ensure_installed = { "lua_ls", "rust_analyzer", "clangd", }, handlers = { lsp.default_setup, }, } local cmp = require('cmp') cmp.setup { mapping = cmp.mapping.preset.insert({ -- `Enter` key to confirm completion [''] = cmp.mapping.confirm({ select = false }), -- `Tab` key to navigate [''] = cmp.mapping.select_prev_item({ behavior = 'select' }), [''] = cmp.mapping.select_next_item({ behavior = 'select' }), }) } lsp.on_attach(function(client, buffer) local opts = { buffer = buffer, remap = false } vim.keymap.set("n", "ld", function() vim.lsp.buf.definition() end, opts) vim.keymap.set("n", "h", function() vim.lsp.buf.hover() end, opts) vim.keymap.set("n", "la", function() vim.lsp.buf.code_action() end, opts) vim.keymap.set("n", "lrf", function() vim.lsp.buf.references() end, opts) vim.keymap.set("n", "lrn", function() vim.lsp.buf.rename() end, opts) vim.keymap.set("n", "ls", function() vim.lsp.buf.signature_help() end, opts) end) lsp.setup() vim.diagnostic.config { virtual_text = true } vim.g.zig_fmt_autosave = 0