local lsp = require("lsp-zero") lsp.preset("recommended") lsp.ensure_installed { "rust_analyzer" } lsp.nvim_workspace() local cmp = require("cmp") local cmp_select = { behavior = cmp.SelectBehavior.Select } lsp.setup_nvim_cmp({ mapping = lsp.defaults.cmp_mappings({ [""] = cmp.mapping.select_prev_item(cmp_select), [""] = cmp.mapping.select_next_item(cmp_select), [""] = cmp.mapping.complete(), }) }) lsp.on_attach(function(client, buffnr) lsp.default_keymaps({ buffer = buffnr }) vim.keymap.set("n", "fmt", function() vim.lsp.buf.format({ async = false, timeout_ms = 5000 }) end) end) -- NOTE: Format on save does not support async formatting lsp.format_on_save({ servers = { ["rust_analyzer"] = {"rust"} } }) lsp.setup()