summaryrefslogtreecommitdiff
path: root/lua/lvim/core/cmp.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua/lvim/core/cmp.lua')
-rw-r--r--lua/lvim/core/cmp.lua55
1 files changed, 29 insertions, 26 deletions
diff --git a/lua/lvim/core/cmp.lua b/lua/lvim/core/cmp.lua
index 142d548f..c116f122 100644
--- a/lua/lvim/core/cmp.lua
+++ b/lua/lvim/core/cmp.lua
@@ -118,14 +118,17 @@ end
M.methods.jumpable = jumpable
M.config = function()
- local status_cmp_ok, cmp = pcall(require, "cmp")
+ local status_cmp_ok, cmp_types = pcall(require, "cmp.types.cmp")
if not status_cmp_ok then
return
end
- local status_luasnip_ok, luasnip = pcall(require, "luasnip")
- if not status_luasnip_ok then
- return
- end
+ local ConfirmBehavior = cmp_types.ConfirmBehavior
+ local SelectBehavior = cmp_types.SelectBehavior
+
+ local cmp = require("lvim.utils.modules").require_on_index "cmp"
+ local luasnip = require("lvim.utils.modules").require_on_index "luasnip"
+ local cmp_window = require "cmp.config.window"
+ local cmp_mapping = require "cmp.config.mapping"
lvim.builtin.cmp = {
active = true,
@@ -138,7 +141,7 @@ M.config = function()
return lvim.builtin.cmp.active
end,
confirm_opts = {
- behavior = cmp.ConfirmBehavior.Replace,
+ behavior = ConfirmBehavior.Replace,
select = false,
},
completion = {
@@ -214,12 +217,12 @@ M.config = function()
},
snippet = {
expand = function(args)
- require("luasnip").lsp_expand(args.body)
+ luasnip.lsp_expand(args.body)
end,
},
window = {
- completion = cmp.config.window.bordered(),
- documentation = cmp.config.window.bordered(),
+ completion = cmp_window.bordered(),
+ documentation = cmp_window.bordered(),
},
sources = {
{
@@ -255,7 +258,7 @@ M.config = function()
{
name = "nvim_lsp",
entry_filter = function(entry, ctx)
- local kind = require("cmp.types").lsp.CompletionItemKind[entry:get_kind()]
+ local kind = require("cmp.types.lsp").CompletionItemKind[entry:get_kind()]
if kind == "Snippet" and ctx.prev_context.filetype == "java" then
return false
end
@@ -277,24 +280,24 @@ M.config = function()
{ name = "crates" },
{ name = "tmux" },
},
- mapping = cmp.mapping.preset.insert {
- ["<C-k>"] = cmp.mapping(cmp.mapping.select_prev_item(), { "i", "c" }),
- ["<C-j>"] = cmp.mapping(cmp.mapping.select_next_item(), { "i", "c" }),
- ["<Down>"] = cmp.mapping(cmp.mapping.select_next_item { behavior = cmp.SelectBehavior.Select }, { "i" }),
- ["<Up>"] = cmp.mapping(cmp.mapping.select_prev_item { behavior = cmp.SelectBehavior.Select }, { "i" }),
- ["<C-d>"] = cmp.mapping.scroll_docs(-4),
- ["<C-f>"] = cmp.mapping.scroll_docs(4),
- ["<C-y>"] = cmp.mapping {
- i = cmp.mapping.confirm { behavior = cmp.ConfirmBehavior.Replace, select = false },
+ mapping = cmp_mapping.preset.insert {
+ ["<C-k>"] = cmp_mapping(cmp_mapping.select_prev_item(), { "i", "c" }),
+ ["<C-j>"] = cmp_mapping(cmp_mapping.select_next_item(), { "i", "c" }),
+ ["<Down>"] = cmp_mapping(cmp_mapping.select_next_item { behavior = SelectBehavior.Select }, { "i" }),
+ ["<Up>"] = cmp_mapping(cmp_mapping.select_prev_item { behavior = SelectBehavior.Select }, { "i" }),
+ ["<C-d>"] = cmp_mapping.scroll_docs(-4),
+ ["<C-f>"] = cmp_mapping.scroll_docs(4),
+ ["<C-y>"] = cmp_mapping {
+ i = cmp_mapping.confirm { behavior = ConfirmBehavior.Replace, select = false },
c = function(fallback)
if cmp.visible() then
- cmp.confirm { behavior = cmp.ConfirmBehavior.Replace, select = false }
+ cmp.confirm { behavior = ConfirmBehavior.Replace, select = false }
else
fallback()
end
end,
},
- ["<Tab>"] = cmp.mapping(function(fallback)
+ ["<Tab>"] = cmp_mapping(function(fallback)
if cmp.visible() then
cmp.select_next_item()
elseif luasnip.expand_or_locally_jumpable() then
@@ -308,7 +311,7 @@ M.config = function()
fallback()
end
end, { "i", "s" }),
- ["<S-Tab>"] = cmp.mapping(function(fallback)
+ ["<S-Tab>"] = cmp_mapping(function(fallback)
if cmp.visible() then
cmp.select_prev_item()
elseif luasnip.jumpable(-1) then
@@ -317,16 +320,16 @@ M.config = function()
fallback()
end
end, { "i", "s" }),
- ["<C-Space>"] = cmp.mapping.complete(),
- ["<C-e>"] = cmp.mapping.abort(),
- ["<CR>"] = cmp.mapping(function(fallback)
+ ["<C-Space>"] = cmp_mapping.complete(),
+ ["<C-e>"] = cmp_mapping.abort(),
+ ["<CR>"] = cmp_mapping(function(fallback)
if cmp.visible() then
local confirm_opts = vim.deepcopy(lvim.builtin.cmp.confirm_opts) -- avoid mutating the original opts below
local is_insert_mode = function()
return vim.api.nvim_get_mode().mode:sub(1, 1) == "i"
end
if is_insert_mode() then -- prevent overwriting brackets
- confirm_opts.behavior = cmp.ConfirmBehavior.Insert
+ confirm_opts.behavior = ConfirmBehavior.Insert
end
if cmp.confirm(confirm_opts) then
return -- success, exit early