local remap = vim.api.nvim_set_keymap require'compe'.setup { enabled = true; autocomplete = false; debug = false; min_length = 1; preselect = 'enable'; throttle_time = 80; source_timeout = 200; resolve_timeout = 800; incomplete_delay = 400; max_abbr_width = 100; max_kind_width = 100; max_menu_width = 100; documentation = { border = { '', '' ,'', ' ', '', '', '', ' ' }, winhighlight = "NormalFloat:CompeDocumentation,FloatBorder:CompeDocumentationBorder", max_width = 120, min_width = 60, max_height = math.floor(vim.o.lines * 0.3), min_height = 1, }; source = { path = true; buffer = true; calc = true; nvim_lsp = true; nvim_lua = true; omni = false; spell = true; tags = true; treesitter = true; snippets_nvim = false; vsnip = true; ultisnips = false; luasnip = false; emoji = 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 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 "" 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})