/
cmp.lua
81 lines (76 loc) · 2.05 KB
/
cmp.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
local M = {
"hrsh7th/nvim-cmp",
event = "InsertEnter",
dependencies = {
"hrsh7th/cmp-nvim-lsp",
"hrsh7th/cmp-buffer",
"hrsh7th/cmp-emoji",
"hrsh7th/cmp-cmdline",
"dmitmel/cmp-cmdline-history",
"hrsh7th/cmp-path",
"saadparwaiz1/cmp_luasnip",
},
}
function M.config()
vim.o.completeopt = "menuone,noselect"
-- Setup nvim-cmp.
local cmp = require("cmp")
cmp.setup({
completion = {
completeopt = "menu,menuone,noinsert",
},
snippet = {
expand = function(args)
require("luasnip").lsp_expand(args.body)
end,
},
mapping = cmp.mapping.preset.insert({
["<C-b>"] = cmp.mapping.scroll_docs(-4),
["<C-f>"] = cmp.mapping.scroll_docs(4),
["<C-Space>"] = cmp.mapping.complete({}),
["<C-e>"] = cmp.mapping.close(),
["<CR>"] = cmp.mapping.confirm({ select = true }),
}),
sources = cmp.config.sources({
{ name = "nvim_lsp" },
{ name = "luasnip" },
{ name = "buffer" },
{ name = "path" },
{ name = "emoji" },
{ name = "neorg" },
}),
formatting = {
format = require("config.plugins.lsp.kind").cmp_format(),
},
-- documentation = {
-- border = { "╭", "─", "╮", "│", "╯", "─", "╰", "│" },
-- winhighlight = "NormalFloat:NormalFloat,FloatBorder:TelescopeBorder",
-- },
experimental = {
ghost_text = {
hl_group = "LspCodeLens",
},
},
-- sorting = {
-- comparators = {
-- cmp.config.compare.sort_text,
-- cmp.config.compare.offset,
-- -- cmp.config.compare.exact,
-- cmp.config.compare.score,
-- -- cmp.config.compare.kind,
-- -- cmp.config.compare.length,
-- cmp.config.compare.order,
-- },
-- },
})
-- cmp.setup.cmdline(":", {
-- mapping = cmp.mapping.preset.cmdline(),
-- sources = cmp.config.sources({
-- -- { name = "noice_popupmenu" },
-- { name = "path" },
-- { name = "cmdline" },
-- -- { name = "cmdline_history" },
-- }),
-- })
end
return M