From 0721b537a8aa3be8b70c183b25951494df9dcd0e Mon Sep 17 00:00:00 2001 From: Matthew Lemon Date: Sun, 14 May 2023 09:10:26 +0100 Subject: Installs nvim config base-idea --- nvim-primeagen/after/plugin/luasnip.lua | 46 +++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 nvim-primeagen/after/plugin/luasnip.lua (limited to 'nvim-primeagen/after/plugin/luasnip.lua') diff --git a/nvim-primeagen/after/plugin/luasnip.lua b/nvim-primeagen/after/plugin/luasnip.lua new file mode 100644 index 0000000..6ff1131 --- /dev/null +++ b/nvim-primeagen/after/plugin/luasnip.lua @@ -0,0 +1,46 @@ +local has_words_before = function() + unpack = unpack or table.unpack + 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 luasnip = require("luasnip") +local cmp = require("cmp") + +cmp.setup({ + + -- ... Your other configuration ... + + mapping = { + + -- ... Your other mappings ... + + [""] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_next_item() + -- You could replace the expand_or_jumpable() calls with expand_or_locally_jumpable() + -- they way you will only jump inside the snippet region + 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" }), + + -- ... Your other mappings ... + }, + + -- ... Your other configuration ... +}) -- cgit v1.2.3