diff --git a/nvim/.config/nvim/after/plugin/compe.vim b/nvim/.config/nvim/after/plugin/compe.vim deleted file mode 100644 index b830c4a..0000000 --- a/nvim/.config/nvim/after/plugin/compe.vim +++ /dev/null @@ -1,16 +0,0 @@ -function! s:check_back_space() abort - let col = col('.') - 1 - return !col || getline('.')[col - 1] =~ '\s' -endfunction - -inoremap - \ pumvisible() ? "\" : - \ check_back_space() ? "\" : - \ compe#complete() - -inoremap compe#confirm('') -inoremap compe#close('') - -" Use and to navigate through popup menu -inoremap pumvisible() ? "\" : "\" -inoremap pumvisible() ? "\" : "\" diff --git a/nvim/.config/nvim/lua/modules/completion.lua b/nvim/.config/nvim/lua/modules/completion.lua index eee073c..bc3e5de 100644 --- a/nvim/.config/nvim/lua/modules/completion.lua +++ b/nvim/.config/nvim/lua/modules/completion.lua @@ -1,3 +1,5 @@ +local remap = vim.api.nvim_set_keymap + require'compe'.setup { enabled = true; autocomplete = true; @@ -22,3 +24,42 @@ require'compe'.setup { vsnip = false; }; } + +local t = function(str) + return vim.api.nvim_replace_termcodes(str, true, true, true) +end + +local check_back_space = function() + local col = vim.fn.col('.') - 1 + if col == 0 or vim.fn.getline('.'):sub(col, col):match('%s') then + return true + else + return false + end +end + +-- Use (S-)tab to: +-- Move to prev/next item in completion menuone + +_G.tab_complete = function() + if vim.fn.pumvisible() == 1 then + return t "" + elseif check_back_space() then + return t "" + else + return vim.fn['compe#complete']() + end +end + +_G.s_tab_complete = function() + if vim.fn.pumvisible() == 1 then + return t "" + else + return t "" + end +end + +remap("i", "", "v:lua.tab_complete()", {expr = true}) +remap("s", "", "v:lua.tab_complete()", {expr = true}) +remap("i", "", "v:lua.s_tab_complete()", {expr = true}) +remap("s", "", "v:lua.s_tab_complete()", {expr = true})