From 2cd8c6a21cb6c9af91e631f565e31f5803cdaa7c Mon Sep 17 00:00:00 2001 From: christianchiarulli Date: Thu, 15 Apr 2021 00:17:48 -0400 Subject: LunarVim --- lua/lv-autopairs/init.lua | 77 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 lua/lv-autopairs/init.lua (limited to 'lua/lv-autopairs/init.lua') diff --git a/lua/lv-autopairs/init.lua b/lua/lv-autopairs/init.lua new file mode 100644 index 00000000..5d0adf85 --- /dev/null +++ b/lua/lv-autopairs/init.lua @@ -0,0 +1,77 @@ +require('nvim-autopairs').setup() +local npairs = require('nvim-autopairs') + +local function imap(lhs, rhs, opts) + local options = {noremap = false} + if opts then options = vim.tbl_extend('force', options, opts) end + vim.api.nvim_set_keymap('i', lhs, rhs, options) +end + +_G.MUtils = {} + +-- TEST +vim.g.completion_confirm_key = "" +MUtils.completion_confirm = function() + if vim.fn.pumvisible() ~= 0 then + if vim.fn.complete_info()["selected"] ~= -1 then + vim.fn["compe#confirm"]() + -- return npairs.esc("") + return npairs.esc("") + else + vim.defer_fn(function() + vim.fn["compe#confirm"]("") + end, 20) + return npairs.esc("") + end + else + return npairs.check_break_line_char() + end +end +-- TEST + +MUtils.completion_confirm = function() + if vim.fn.pumvisible() ~= 0 then + if vim.fn.complete_info()["selected"] ~= -1 then + vim.fn["compe#confirm"]() + return npairs.esc("") + else + vim.api.nvim_select_popupmenu_item(0, false, false, {}) + vim.fn["compe#confirm"]() + return npairs.esc("") + end + else + return npairs.check_break_line_char() + end +end + +MUtils.tab = function() + if vim.fn.pumvisible() ~= 0 then + return npairs.esc("") + else + if vim.fn["vsnip#available"](1) ~= 0 then + vim.fn.feedkeys(string.format('%c%c%c(vsnip-expand-or-jump)', 0x80, 253, 83)) + return npairs.esc("") + else + return npairs.esc("") + end + end +end + +MUtils.s_tab = function() + if vim.fn.pumvisible() ~= 0 then + return npairs.esc("") + else + if vim.fn["vsnip#jumpable"](-1) ~= 0 then + vim.fn.feedkeys(string.format('%c%c%c(vsnip-jump-prev)', 0x80, 253, 83)) + return npairs.esc("") + else + return npairs.esc("") + end + end +end + +-- Autocompletion and snippets +vim.api.nvim_set_keymap('i', '', 'v:lua.MUtils.completion_confirm()', {expr = true, noremap = true}) +-- imap("", "v:lua.MUtils.completion_confirm()", {expr = true, noremap = true}) +imap("", "v:lua.MUtils.tab()", {expr = true, noremap = true}) +imap("", "v:lua.MUtils.s_tab()", {expr = true, noremap = true}) -- cgit v1.2.3