dotfiles/nvim/after/plugin/nvim-cmp.lua

45 lines
1.1 KiB
Lua
Raw Normal View History

2023-01-01 14:16:21 +00:00
local ok, cmp = pcall(require, "cmp")
if not ok then
return
end
2023-01-26 19:31:17 +00:00
local luasnip_ok, luasnip = pcall(require, "luasnip")
if not luasnip_ok then
vim.notify("Luasnip is required for nvim-cmp to work", vim.log.levels.WARN)
end
2023-01-01 14:16:21 +00:00
local lspkind = require "lspkind"
cmp.setup {
snippet = {
expand = function(args)
2023-01-26 19:31:17 +00:00
luasnip.lsp_expand(args.body)
2023-01-01 14:16:21 +00:00
end,
},
mapping = cmp.mapping.preset.insert {
["<C-f>"] = cmp.mapping(cmp.mapping.scroll_docs(4, { "i", "c" })),
["<C-b>"] = cmp.mapping(cmp.mapping.scroll_docs(-4, { "i", "c" })),
["<C-Space>"] = cmp.mapping(cmp.mapping.complete {}, { "i", "c" }),
["<C-c>"] = cmp.mapping.close(),
["<CR>"] = cmp.mapping.confirm { select = true },
},
sources = cmp.config.sources({
{ name = "nvim_lsp" },
}, {
{ name = "buffer" },
{ name = "path" },
}),
formatting = {
format = lspkind.cmp_format(),
},
}
cmp.setup.cmdline(":", {
mapping = cmp.mapping.preset.cmdline(),
sources = cmp.config.sources({
{ name = "path" },
}, {
{ name = "cmdline" },
}),
})