From 1a770287120949e7bb940dac698a360359d01ecf Mon Sep 17 00:00:00 2001 From: sgoudham Date: Mon, 13 Feb 2023 03:29:10 +0000 Subject: [PATCH] refactor(nvim): steal `cmp` from LazyVim --- dot_config/nvim/lua/plugins/cmp.lua | 83 +++++++++++++++++++---------- 1 file changed, 56 insertions(+), 27 deletions(-) diff --git a/dot_config/nvim/lua/plugins/cmp.lua b/dot_config/nvim/lua/plugins/cmp.lua index 87b62ac..dd31f14 100644 --- a/dot_config/nvim/lua/plugins/cmp.lua +++ b/dot_config/nvim/lua/plugins/cmp.lua @@ -1,11 +1,40 @@ -local has_words_before = function() - 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 -end - +-- local has_words_before = function() +-- 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 +-- end +-- 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 = { + { + "", + function() + return require("luasnip").jumpable(1) and "luasnip-jump-next" or "" + end, + expr = true, silent = true, mode = "i", + }, + { "", function() require("luasnip").jump(1) end, mode = "s" }, + { "", function() require("luasnip").jump(-1) end, mode = { "i", "s" } }, + }, + }, + { "hrsh7th/nvim-cmp", + version = false, + event = "InsertEnter", config = function() local cmp = require("cmp") local cmp_under_comparator = require("cmp-under-comparator") @@ -30,30 +59,31 @@ return { [""] = cmp.mapping.complete({}), [""] = cmp.mapping.abort(), [""] = cmp.mapping.confirm({ select = true }), - [""] = cmp.mapping(function(fallback) - if cmp.visible() then - cmp.select_next_item() - elseif luasnip.expand_or_jumpable() then - luasnip.expand_or_jump() - elseif has_words_before() then - cmp.complete() - else - fallback() - end - end, { "i", "s" }), - - [""] = 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" }), + -- [""] = cmp.mapping(function(fallback) + -- if cmp.visible() then + -- cmp.select_next_item() + -- elseif luasnip.expand_or_jumpable() then + -- luasnip.expand_or_jump() + -- elseif has_words_before() then + -- cmp.complete() + -- else + -- fallback() + -- end + -- end, { "i", "s" }), + -- + -- [""] = 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 = cmp.config.sources({ { name = "nvim_lsp" }, + { name = "nvim_lua" }, { name = "luasnip" }, }, { { name = "buffer" }, @@ -103,7 +133,6 @@ return { "hrsh7th/cmp-nvim-lua", "hrsh7th/cmp-cmdline", "saadparwaiz1/cmp_luasnip", - "L3MON4D3/LuaSnip", "lukas-reineke/cmp-under-comparator", }, },