diff options
author | Chris <[email protected]> | 2021-08-08 13:34:59 -0400 |
---|---|---|
committer | Chris <[email protected]> | 2021-08-08 13:34:59 -0400 |
commit | 3da49e4be455d72d2a69fb76472c1f022815681b (patch) | |
tree | ad5266b3eabaf273f2e3c9dc6109d850d69453c8 | |
parent | 1484e056827080ed7946e7e664e11eedccd8a6f9 (diff) |
tab can cycle through pum, insert a tab, and jump through snippets, what more could you want?
-rw-r--r-- | lua/core/compe.lua | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/lua/core/compe.lua b/lua/core/compe.lua index e8cb857d..830cc415 100644 --- a/lua/core/compe.lua +++ b/lua/core/compe.lua @@ -42,8 +42,8 @@ M.config = function() keymap = { values = { insert_mode = { - ["<Tab>"] = { 'pumvisible() ? "<C-n>" : "<Tab>"', { silent = true, noremap = true, expr = true } }, - ["<S-Tab>"] = { 'pumvisible() ? "<C-p>" : "<S-Tab>"', { silent = true, noremap = true, expr = true } }, + -- ["<Tab>"] = { 'pumvisible() ? "<C-n>" : "<Tab>"', { silent = true, noremap = true, expr = true } }, + -- ["<S-Tab>"] = { 'pumvisible() ? "<C-p>" : "<S-Tab>"', { silent = true, noremap = true, expr = true } }, ["<C-Space>"] = { "compe#complete()", { silent = true, noremap = true, expr = true } }, ["<C-e>"] = { "compe#close('<C-e>')", { silent = true, noremap = true, expr = true } }, ["<C-f>"] = { "compe#scroll({ 'delta': +4 })", { silent = true, noremap = true, expr = true } }, @@ -86,12 +86,13 @@ M.setup = function() _G.tab_complete = function() if vim.fn.pumvisible() == 1 then return t "<C-n>" - elseif vim.fn.call("vsnip#available", { 1 }) == 1 then - return t "<Plug>(vsnip-expand-or-jump)" + elseif vim.fn.call("vsnip#jumpable", { 1 }) == 1 then + return t "<Plug>(vsnip-jump-next)" elseif check_back_space() then return t "<Tab>" else - return vim.fn["compe#complete"]() + -- return vim.fn["compe#complete"]() -- < use this if you want <tab> to always offer completion + return t "<Tab>" end end @@ -107,6 +108,18 @@ M.setup = function() local keymap = require "keymappings" keymap.load(lvim.builtin.compe.keymap.values, lvim.builtin.compe.keymap.opts) + + vim.api.nvim_set_keymap("i", "<Tab>", "v:lua.tab_complete()", { expr = true }) + vim.api.nvim_set_keymap("s", "<Tab>", "v:lua.tab_complete()", { expr = true }) + vim.api.nvim_set_keymap("i", "<S-Tab>", "v:lua.s_tab_complete()", { expr = true }) + vim.api.nvim_set_keymap("s", "<S-Tab>", "v:lua.s_tab_complete()", { expr = true }) + +-- vim.cmd[[ +-- imap <expr> <c-j> vsnip#jumpable(1) ? '<Plug>(vsnip-jump-next)' : '<c-n>' +-- smap <expr> <c-j> vsnip#jumpable(1) ? '<Plug>(vsnip-jump-next)' : '<c-j>' +-- imap <expr> <S-Tab> vsnip#jumpable(-1) ? '<Plug>(vsnip-jump-prev)' : '<S-Tab>' +-- smap <expr> <S-Tab> vsnip#jumpable(-1) ? '<Plug>(vsnip-jump-prev)' : '<S-Tab>' +-- ]] end return M |