nvim: rework completion menu -- big change I'm excited about :D

This commit is contained in:
PowerUser64 2022-08-19 01:09:56 -07:00
parent 5d6e349a46
commit a7b8f06195

View file

@ -150,34 +150,32 @@ M.cmp = function()
{ name = 'path' }, { name = 'path' },
}, },
formatting = { formatting = {
fields = { "abbr", "kind", "menu" },
format = function(entry, vim_item) format = function(entry, vim_item)
-- fancy icons and a name of kind -- fancy icons and a name of kind
require('lspkind').cmp_format({ local kind = require("lspkind").cmp_format({ mode = "symbol", maxwidth = 50 })(entry, vim_item)
mode = 'symbol', -- show only symbol annotations -- local strings = vim.split(kind.kind, "%s", { trimempty = true })
maxwidth = 50, -- prevent the popup from showing more than provided characters (e.g 50 will not show more than 50 characters)
-- The function below will be called before any actual modifications from lspkind
-- so that you can provide more controls on popup customization. (See [#30](https://github.com/onsails/lspkind-nvim/pull/30))
-- before = function (entry, vim_item)
-- ...
-- return vim_item
-- end
})
-- set a name for each source -- set a name for each source
vim_item.kind = " " .. kind.kind
vim_item.menu = ({ vim_item.menu = ({
path = "[Path]", path = "[path]",
nvim_lua = "[Lua]", emoji = "[emoji]",
nvim_lsp = "[LSP]", nvim_lua = "[lua]",
treesitter = "[TS]", nvim_lsp = "[lsp]",
calc = "[Calc]", treesitter = "[ts]",
spell = "[Spell]", calc = "[calc]",
cmdline = "[cmdline]", spell = "[spell]",
buffer = "[Buffer]", cmdline = "[cmd]",
})[entry.source.name] buffer = "[buf]",
luasnip = "[snip]",
})[entry.source.name] or "unknown type"
return vim_item return vim_item
end, end,
}, },
window = { window = {
completion = {
winhighlight = "Normal:Pmenu,FloatBorder:Pmenu,Search:None",
},
documentation = { documentation = {
border = { "", "", "", "", "", "", "", "" }, border = { "", "", "", "", "", "", "", "" },
}, },
@ -186,7 +184,6 @@ M.cmp = function()
ghost_text = true, ghost_text = true,
} }
} }
-- Thanks to iwataka on github for this bit -- Thanks to iwataka on github for this bit
local search_config = { local search_config = {
mapping = cmp.mapping.preset.cmdline(), mapping = cmp.mapping.preset.cmdline(),
@ -194,11 +191,9 @@ M.cmp = function()
{ name = 'buffer' }, { name = 'buffer' },
} }
} }
-- Use buffer source for `/` and `?` -- Use buffer source for `/` and `?`
cmp.setup.cmdline('/', search_config) cmp.setup.cmdline('/', search_config)
cmp.setup.cmdline('?', search_config) cmp.setup.cmdline('?', search_config)
-- `:` cmdline setup. -- `:` cmdline setup.
cmp.setup.cmdline(':', { cmp.setup.cmdline(':', {
mapping = cmp.mapping.preset.cmdline(), mapping = cmp.mapping.preset.cmdline(),