-- Author : swytch -- Created : Tuesday Mar 18, 2021 23:12:25 CET -- License : GPLv3 -- Description : compe plugin config file require("compe").setup { enabled = true; autocomplete = false; debug = false; min_length = 1; preselect = "enable"; throttle_time = 80; source_timeout = 200; incomplete_delay = 400; max_abbr_width = 100; max_kind_width = 10; max_menu_width = 100; documentation = true; source = { path = {menu = " [path]"}, buffer = {menu = " [buff]"}, calc = {menu = " [calc]"}, -- vsnip = {menu = " [snip]"}, nvim_lsp = {menu = " [LSP]"}, nvim_lua = {menu = " [nvim]"}, spell = {menu = " [spel]"}, tags = false, treesitter = {menu = " [tree]"}, }; } 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 --- jump to prev/next snippet's placeholder _G.tab_complete = function() if vim.fn.pumvisible() == 1 then return t "" -- elseif vim.fn.call("vsnip#available", {1}) == 1 then -- return t "(vsnip-expand-or-jump)" 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 "" -- elseif vim.fn.call("vsnip#jumpable", {-1}) == 1 then -- return t "(vsnip-jump-prev)" else return t "" end end vim.api.nvim_set_keymap("i", "", "v:lua.tab_complete()", {expr = true}) vim.api.nvim_set_keymap("s", "", "v:lua.tab_complete()", {expr = true}) vim.api.nvim_set_keymap("i", "", "v:lua.s_tab_complete()", {expr = true}) vim.api.nvim_set_keymap("s", "", "v:lua.s_tab_complete()", {expr = true})