-- vim.api.nvim_create_autocmd('BufReadPre', { -- pattern = "markdown", -- callback = function(t) -- local sources = default_cmp_sources -- if not bufIsBig(t.buf) then -- sources[#sources+1] = {name = 'treesitter', group_index = 2} -- end -- cmp.setup.buffer { -- sources = sources -- } -- end -- }) return { "hrsh7th/nvim-cmp", -- enabled = false, -- ---@param opts cmp.ConfigSchema -- opts = function(_, opts) -- local has_words_before = function() -- unpack = unpack or table.unpack -- local line, col = unpack(vim.api.nvim_win_get_cursor(0)) -- return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil -- end -- local cmp = require("cmp") -- opts.mapping = vim.tbl_extend("force", opts.mapping, { -- [""] = cmp.mapping(function(fallback) -- if cmp.visible() then -- -- You could replace select_next_item() with confirm({ select = true }) to get VS Code autocompletion behavior -- -- cmp.select_next_item() -- cmp.confirm({ select = true }) -- elseif vim.snippet.active({ direction = 1 }) then -- vim.schedule(function() -- vim.snippet.jump(1) -- end) -- elseif has_words_before() then -- cmp.complete() -- else -- fallback() -- end -- end, { "i", "s" }), -- [""] = cmp.mapping(function(fallback) -- if cmp.visible() then -- cmp.select_prev_item() -- elseif vim.snippet.active({ direction = -1 }) then -- vim.schedule(function() -- vim.snippet.jump(-1) -- end) -- else -- fallback() -- end -- end, { "i", "s" }), -- [""] = cmp.mapping(function(fallback) -- fallback() -- end, { "i", "s" }), -- }) -- end, }