local cmp = require("cmp") local luasnip = require("luasnip") local s = luasnip.snippet local sn = luasnip.snippet_node local t = luasnip.text_node local cr = function() return t { "", "" } end -- linebreak local i = luasnip.insert_node local f = luasnip.function_node local c = luasnip.choice_node local d = luasnip.dynamic_node local r = luasnip.restore_node local l = require("luasnip.extras").lambda local rep = require("luasnip.extras").rep local p = require("luasnip.extras").partial local m = require("luasnip.extras").match local n = require("luasnip.extras").nonempty local dl = require("luasnip.extras").dynamic_lambda local fmt = require("luasnip.extras.fmt").fmt local fmta = require("luasnip.extras.fmt").fmta local types = require("luasnip.util.types") local conds = require("luasnip.extras.conditions") local conds_expand = require("luasnip.extras.conditions.expand") luasnip.setup { update_events = { "TextChanged", "TextChangedI" } } cmp.setup { snippet = { expand = function(args) luasnip.lsp_expand(args.body) end, }, mapping = cmp.mapping.preset.insert(), -- TODO: how can I make some take precedence of others? sources = { { name = "luasnip" }, { name = "nvim_lsp" }, { name = "path" }, { name = "buffer" }, { name = "spell", keyword_length = 10, -- PERF: option = { keep_all_entries = true, }, }, }, }