return { { "blink.cmp", event = "DeferredUIEnter", after = function(_) require("blink.cmp").setup({ appearance = { use_nvim_cmp_as_default = false, nerd_font_variant = "mono", }, completion = { documentation = { auto_show = true, auto_show_delay_ms = 500, }, ghost_text = { enabled = true }, }, sources = { default = { "lsp", "path", "snippets", "buffer" } }, keymap = { [""] = { "show", "show_documentation", "hide_documentation" }, [""] = { "hide", "fallback" }, [""] = { "accept", "fallback" }, [""] = { "snippet_forward", "fallback" }, [""] = { "snippet_backward", "fallback" }, [""] = { "select_prev", "fallback" }, [""] = { "select_next", "fallback" }, [""] = { "select_prev", "fallback_to_mappings" }, [""] = { "select_next", "fallback_to_mappings" }, [""] = { "scroll_documentation_up", "fallback" }, [""] = { "scroll_documentation_down", "fallback" }, }, }) -- NOTE: this is broken due to something -- local client_capabilities = vim.lsp.protocol.make_client_capabilities() -- local blink_capabilities = require("blink.cmp").get_lsp_capabilities() -- local capabilities = vim.tbl_deep_extend('force', client_capabilities, blink_capabilities) -- vim.lsp.config("*", { capabilities = capabilities }) end, } }