diff --git a/lua/cmp_luasnip/init.lua b/lua/cmp_luasnip/init.lua index 71bec54..ce99148 100644 --- a/lua/cmp_luasnip/init.lua +++ b/lua/cmp_luasnip/init.lua @@ -5,16 +5,18 @@ local source = {} local defaults = { use_show_condition = true, - show_autosnippets = false, + show_autosnippets = false, + label_aliases = {}, } -- the options are being passed via cmp.setup.sources, e.g. -- require('cmp').setup { sources = { { name = 'luasnip', opts = {...} } } } local function init_options(params) - params.option = vim.tbl_deep_extend('keep', params.option, defaults) + params.option = vim.tbl_deep_extend("keep", params.option, defaults) vim.validate({ - use_show_condition = { params.option.use_show_condition, 'boolean' }, - show_autosnippets = { params.option.show_autosnippets, 'boolean' }, + use_show_condition = { params.option.use_show_condition, "boolean" }, + show_autosnippets = { params.option.show_autosnippets, "boolean" }, + label_aliases = { params.option.label_aliases, "table" }, }) end @@ -72,28 +74,28 @@ function source:complete(params, callback) if not snip_cache[ft] then -- ft not yet in cache. local ft_items = {} - local ft_table = require("luasnip").get_snippets(ft, {type = "snippets"}) + local ft_table = require("luasnip").get_snippets(ft, { type = "snippets" }) local iter_tab if params.option.show_autosnippets then - local auto_table = require('luasnip').get_snippets(ft, {type="autosnippets"}) - iter_tab = {{ft_table, false}, {auto_table, true}} + local auto_table = require("luasnip").get_snippets(ft, { type = "autosnippets" }) + iter_tab = { { ft_table, false }, { auto_table, true } } else - iter_tab = {{ft_table, false}} + iter_tab = { { ft_table, false } } end - for _,ele in ipairs(iter_tab) do - local tab,auto = unpack(ele) + for _, ele in ipairs(iter_tab) do + local tab, auto = unpack(ele) for j, snip in pairs(tab) do if not snip.hidden then ft_items[#ft_items + 1] = { word = snip.trigger, - label = snip.trigger, + label = params.option.label_aliases[snip.trigger] or snip.trigger, kind = cmp.lsp.CompletionItemKind.Snippet, data = { priority = snip.effective_priority or 1000, -- Default priority is used for old luasnip versions filetype = ft, snip_id = snip.id, show_condition = snip.show_condition, - auto = auto + auto = auto, }, } end @@ -148,9 +150,9 @@ function source:execute(completion_item, callback) local clear_region = { from = { cursor[1], - cursor[2] - #completion_item.word + cursor[2] - #completion_item.word, }, - to = cursor + to = cursor, } if expand_params ~= nil then if expand_params.clear_region ~= nil then