feat(cmp): add cmp-cmdline-prompt
This commit is contained in:
@@ -3,6 +3,7 @@
|
|||||||
"LuaSnip": { "branch": "master", "commit": "458560534a73f7f8d7a11a146c801db00b081df0" },
|
"LuaSnip": { "branch": "master", "commit": "458560534a73f7f8d7a11a146c801db00b081df0" },
|
||||||
"aerial.nvim": { "branch": "master", "commit": "c7cbbad40c2065fccfd1f1863bb2c08180c0533d" },
|
"aerial.nvim": { "branch": "master", "commit": "c7cbbad40c2065fccfd1f1863bb2c08180c0533d" },
|
||||||
"cmp-cmdline": { "branch": "main", "commit": "d126061b624e0af6c3a556428712dd4d4194ec6d" },
|
"cmp-cmdline": { "branch": "main", "commit": "d126061b624e0af6c3a556428712dd4d4194ec6d" },
|
||||||
|
"cmp-cmdline-prompt.nvim": { "branch": "main", "commit": "58a56ad589576e2699a1653e8efe724792ee0fa6" },
|
||||||
"cmp-nvim-lsp": { "branch": "main", "commit": "bd5a7d6db125d4654b50eeae9f5217f24bb22fd3" },
|
"cmp-nvim-lsp": { "branch": "main", "commit": "bd5a7d6db125d4654b50eeae9f5217f24bb22fd3" },
|
||||||
"cmp-path": { "branch": "main", "commit": "c642487086dbd9a93160e1679a1327be111cbc25" },
|
"cmp-path": { "branch": "main", "commit": "c642487086dbd9a93160e1679a1327be111cbc25" },
|
||||||
"cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
|
"cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
|
||||||
|
|||||||
@@ -51,6 +51,7 @@ return {
|
|||||||
require("lspkind").init()
|
require("lspkind").init()
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
|
"teramako/cmp-cmdline-prompt.nvim",
|
||||||
},
|
},
|
||||||
config = function()
|
config = function()
|
||||||
local cmp = require("cmp")
|
local cmp = require("cmp")
|
||||||
@@ -183,5 +184,49 @@ return {
|
|||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
})
|
})
|
||||||
|
-- for cmdline `input()` prompt
|
||||||
|
-- see: `:help getcmdtype()`
|
||||||
|
cmp.setup.cmdline("@", {
|
||||||
|
mapping = cmp.mapping.preset.cmdline(),
|
||||||
|
sources = cmp.config.sources({
|
||||||
|
{
|
||||||
|
name = "cmdline-prompt",
|
||||||
|
---@type prompt.Option
|
||||||
|
option = {
|
||||||
|
kinds = {
|
||||||
|
file = cmp.lsp.CompletionItemKind.File,
|
||||||
|
dir = {
|
||||||
|
kind = cmp.lsp.CompletionItemKind.Folder,
|
||||||
|
hl_group = "CmpItemKindEnum",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}),
|
||||||
|
formatting = {
|
||||||
|
fields = { "kind", "abbr", "menu" },
|
||||||
|
format = function(entry, vim_item)
|
||||||
|
local item = entry.completion_item
|
||||||
|
if entry.source.name == "cmdline-prompt" then
|
||||||
|
vim_item.kind = cmp.lsp.CompletionItemKind[item.kind]
|
||||||
|
local kind =
|
||||||
|
lspkind.cmp_format({ mode = "symbol_text" })(
|
||||||
|
entry,
|
||||||
|
vim_item
|
||||||
|
)
|
||||||
|
local strings =
|
||||||
|
vim.split(kind.kind, "%s", { trimempty = true })
|
||||||
|
kind.kind = " " .. (strings[1] or "")
|
||||||
|
kind.menu = " ("
|
||||||
|
.. (item.data.completion_type or "")
|
||||||
|
.. ")"
|
||||||
|
kind.menu_hl_group = kind.kind_hl_group
|
||||||
|
return kind
|
||||||
|
else
|
||||||
|
return vim_item
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
})
|
||||||
end,
|
end,
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user