local lsp = require("lsp-zero") local lspconfig = require("lspconfig") lsp.preset("recommended") lsp.ensure_installed { "lua_ls", "clangd", "cmake", "rust_analyzer", "omnisharp" } lspconfig.gdscript.setup {} lspconfig.omnisharp.setup { cmd = { "/usr/bin/omnisharp", "--languageserver", "--hostPID", tostring(vim.fn.getpid()) } } local cmp = require("cmp") local cmp_select = { behavior = cmp.SelectBehavior.Select } local cmp_mappings = lsp.defaults.cmp_mappings { [""] = cmp.mapping.select_next_item(cmp_select), [""] = cmp.mapping.select_prev_item(cmp_select), [""] = cmp.mapping.confirm({ select = true }), [""] = cmp.mapping.confirm({ select = true }), } lsp.setup_nvim_cmp { mapping = cmp_mappings } lsp.set_preferences { } lsp.on_attach(function(_, 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 }