Evie Litherland-Smith
7d3109f60e
Make nvim-cmp standalone, lazy lone on InsertEnter and be used by neorg to enable treesitter integration (no LSP available) Move LSP config into lspconfig.lua Optimise some startup conditions
67 lines
2.2 KiB
Lua
67 lines
2.2 KiB
Lua
local config = function()
|
|
local cmp = require "cmp"
|
|
local luasnip = require "luasnip"
|
|
local cmp_autopairs = require "nvim-autopairs.completion.cmp"
|
|
|
|
cmp.setup {
|
|
snippet = {
|
|
expand = function(args)
|
|
luasnip.lsp_expand(args.body) -- For `luasnip` users.
|
|
end,
|
|
},
|
|
mapping = cmp.mapping.preset.insert {
|
|
["<C-u>"] = cmp.mapping.scroll_docs(-4), -- Up
|
|
["<C-d>"] = cmp.mapping.scroll_docs(4), -- Down
|
|
["<C-Space>"] = cmp.mapping.complete(),
|
|
["<CR>"] = cmp.mapping.confirm {
|
|
behavior = cmp.ConfirmBehavior.Replace,
|
|
select = true,
|
|
},
|
|
["<Tab>"] = cmp.mapping(function(fallback)
|
|
if cmp.visible() then
|
|
cmp.select_next_item()
|
|
elseif luasnip.expand_or_jumpable() then
|
|
luasnip.expand_or_jump()
|
|
else
|
|
fallback()
|
|
end
|
|
end, { "i", "s" }),
|
|
["<S-Tab>"] = cmp.mapping(function(fallback)
|
|
if cmp.visible() then
|
|
cmp.select_prev_item()
|
|
elseif luasnip.jumpable(-1) then
|
|
luasnip.jump(-1)
|
|
else
|
|
fallback()
|
|
end
|
|
end, { "i", "s" }),
|
|
},
|
|
sources = { { name = "nvim_lsp" }, { name = "luasnip" } },
|
|
}
|
|
|
|
-- Set configuration for specific filetype.
|
|
cmp.setup.filetype("norg", { sources = { { name = "neorg" } } })
|
|
cmp.setup.cmdline({ "/", "?" }, { mapping = cmp.mapping.preset.cmdline(), sources = { { name = "buffer" } } })
|
|
cmp.setup.cmdline(
|
|
":",
|
|
{ mapping = cmp.mapping.preset.cmdline(), sources = { { name = "path" }, { name = "cmdline" } } }
|
|
)
|
|
|
|
cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done())
|
|
end
|
|
|
|
return {
|
|
"hrsh7th/nvim-cmp",
|
|
event = { "InsertEnter", "CmdlineEnter" },
|
|
dependencies = {
|
|
"hrsh7th/cmp-nvim-lsp",
|
|
"hrsh7th/cmp-buffer",
|
|
"hrsh7th/cmp-path",
|
|
"hrsh7th/cmp-cmdline",
|
|
"windwp/nvim-autopairs",
|
|
"saadparwaiz1/cmp_luasnip",
|
|
"L3MON4D3/LuaSnip",
|
|
},
|
|
config = config,
|
|
}
|