refactor(nvim): steal `cmp` from LazyVim

chezmoi
sgoudham 2 years ago
parent 36362c4558
commit 1a77028712
Signed by: hammy
GPG Key ID: 44E818FD5457EEA4

@ -1,11 +1,40 @@
local has_words_before = function() -- local has_words_before = function()
local line, col = unpack(vim.api.nvim_win_get_cursor(0)) -- local line, col = unpack(vim.api.nvim_win_get_cursor(0))
return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil -- return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil
end -- end
--
return { return {
-- snippets
{
"L3MON4D3/LuaSnip",
dependencies = {
"rafamadriz/friendly-snippets",
config = function()
require("luasnip.loaders.from_vscode").lazy_load()
end,
},
opts = {
history = true,
delete_check_events = "TextChanged",
},
-- stylua: ignore
keys = {
{
"<tab>",
function()
return require("luasnip").jumpable(1) and "<Plug>luasnip-jump-next" or "<tab>"
end,
expr = true, silent = true, mode = "i",
},
{ "<tab>", function() require("luasnip").jump(1) end, mode = "s" },
{ "<s-tab>", function() require("luasnip").jump(-1) end, mode = { "i", "s" } },
},
},
{ {
"hrsh7th/nvim-cmp", "hrsh7th/nvim-cmp",
version = false,
event = "InsertEnter",
config = function() config = function()
local cmp = require("cmp") local cmp = require("cmp")
local cmp_under_comparator = require("cmp-under-comparator") local cmp_under_comparator = require("cmp-under-comparator")
@ -30,30 +59,31 @@ return {
["<C-Space>"] = cmp.mapping.complete({}), ["<C-Space>"] = cmp.mapping.complete({}),
["<C-e>"] = cmp.mapping.abort(), ["<C-e>"] = cmp.mapping.abort(),
["<CR>"] = cmp.mapping.confirm({ select = true }), ["<CR>"] = cmp.mapping.confirm({ select = true }),
["<Tab>"] = cmp.mapping(function(fallback) -- ["<Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then -- if cmp.visible() then
cmp.select_next_item() -- cmp.select_next_item()
elseif luasnip.expand_or_jumpable() then -- elseif luasnip.expand_or_jumpable() then
luasnip.expand_or_jump() -- luasnip.expand_or_jump()
elseif has_words_before() then -- elseif has_words_before() then
cmp.complete() -- cmp.complete()
else -- else
fallback() -- fallback()
end -- end
end, { "i", "s" }), -- end, { "i", "s" }),
--
["<S-Tab>"] = cmp.mapping(function(fallback) -- ["<S-Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then -- if cmp.visible() then
cmp.select_prev_item() -- cmp.select_prev_item()
elseif luasnip.jumpable(-1) then -- elseif luasnip.jumpable(-1) then
luasnip.jump(-1) -- luasnip.jump(-1)
else -- else
fallback() -- fallback()
end -- end
end, { "i", "s" }), -- end, { "i", "s" }),
}), }),
sources = cmp.config.sources({ sources = cmp.config.sources({
{ name = "nvim_lsp" }, { name = "nvim_lsp" },
{ name = "nvim_lua" },
{ name = "luasnip" }, { name = "luasnip" },
}, { }, {
{ name = "buffer" }, { name = "buffer" },
@ -103,7 +133,6 @@ return {
"hrsh7th/cmp-nvim-lua", "hrsh7th/cmp-nvim-lua",
"hrsh7th/cmp-cmdline", "hrsh7th/cmp-cmdline",
"saadparwaiz1/cmp_luasnip", "saadparwaiz1/cmp_luasnip",
"L3MON4D3/LuaSnip",
"lukas-reineke/cmp-under-comparator", "lukas-reineke/cmp-under-comparator",
}, },
}, },

Loading…
Cancel
Save