1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- local cmp_status, cmp = pcall(require, "cmp")
- if not cmp_status then
- return
- end
- local luasnip_status, luasnip = pcall(require, "luasnip")
- if not luasnip_status then
- vim.notify("没有找到luasnip")
- return
- end
- local lspkind_status, lspkind = pcall(require, "lspkind")
- if not lspkind_status then
- vim.notify("没有找到lspkind")
- return
- end
- vim.opt.completeopt = "menu,menuone,noselect"
- cmp.setup({
- snippet = {
- expand = function(args)
- luasnip.lsp_expand(args.body)
- end,
- },
- mapping = cmp.mapping.preset.insert({
- ["<S-Tab>"] = cmp.mapping.select_prev_item(),
- ["<Tab>"] = cmp.mapping.select_next_item(),
- ["<C-b>"] = cmp.mapping.scroll_docs(-4),
- ["<C-f>"] = cmp.mapping.scroll_docs(4),
- ["<C-Space>"] = cmp.mapping.complete(),
- ["<C-e>"] = cmp.mapping.abort(),
- ["<CR>"] = cmp.mapping.confirm({ select = false }),
- }),
-
- sources = cmp.config.sources({
- { name = "nvim_lsp" },
- { name = "luasnip" },
- { name = "buffer" },
- { name = "path" },
- }),
-
- formatting = {
- format = lspkind.cmp_format({
- maxwidth = 50,
- ellipsis_char = "...",
- }),
- },
- })
- cmp.setup.cmdline("/", {
- mapping = cmp.mapping.preset.cmdline(),
- sources = {
- { name = "buffer" },
- },
- })
- cmp.setup.cmdline(":", {
- mapping = cmp.mapping.preset.cmdline(),
- sources = cmp.config.sources({
- { name = "path" },
- }, {
- { name = "cmdline" },
- }),
- })
|