feat(nvim): add lsp name to cmp menu

This commit is contained in:
Price Hiller 2023-12-08 14:52:06 -06:00
parent 57ea529b3f
commit 55dd3b27c3
Signed by: Price
SSH Key Fingerprint: SHA256:Y4S9ZzYphRn1W1kbJerJFO6GGsfu9O70VaBSxJO7dF8

View File

@ -145,7 +145,6 @@ return {
---@param entry cmp.Entry
---@param vim_item vim.CompletedItem
format = function(entry, vim_item)
-- vim.notify(vim.inspect(entry))
local selections = {
["vim-dadbod-completion"] = { symbol = "󰆼 ", name = "DB", hl_group = "DadbodCompletion" },
calc = { symbol = "", name = "Calculator", hl_group = "Calculator" },
@ -167,16 +166,19 @@ return {
}
local selection
local lsp_name
if entry.source.name == "nvim_lsp" then
-- vim.notify(vim.inspect(entry.source.source))
selection = selections[entry.source.source.client.name]
lsp_name = entry.source.source.client.name
selection = selections[lsp_name]
else
selection = selections[entry.source.name]
end
local completion_item = vim_item
local abbr_max_width = 50
if not selection then
local kind = require("lspkind").cmp_format({
mode = "symbol_text",
maxwidth = 50,
maxwidth = abbr_max_width,
})(entry, vim_item)
if string.match(kind.kind, ".* Color$") or string.match(kind.kind, ".* Variable$") then
---@type string
@ -234,24 +236,30 @@ return {
strings[1] = extra_kind_icons[strings[1]] or ""
end
kind.kind = " " .. strings[1] .. " "
if not kind.menu and lsp_name then
kind.menu = "" .. lsp_name
end
return kind
completion_item = kind
else
completion_item.kind = " " .. selection.symbol
completion_item.menu = selection.symbol .. selection.name
completion_item.kind_hl_group = "CmpCustomSelection" .. selection.hl_group
end
if not completion_item.abbr then
local word = entry:get_insert_text()
word = str.oneline(word)
completion_item.abbr = word
end
if string.len(completion_item.abbr) >= abbr_max_width then
local before = string.sub(completion_item.abbr, 1, math.floor((abbr_max_width - 3) / 2))
completion_item.abbr = before .. "..."
end
-- concatenates the string
local max = 50
if string.len(word) >= max then
local before = string.sub(word, 1, math.floor((max - 3) / 2))
word = before .. "..."
end
vim_item.kind = " " .. selection.symbol
vim_item.menu = selection.symbol .. selection.name
vim_item.kind_hl_group = "CmpCustomSelection" .. selection.hl_group
vim_item.abbr = word
return vim_item
end
return completion_item
end,
},
view = {