diff options
| author | Christian Chiarulli <[email protected]> | 2021-03-14 15:10:28 -0400 | 
|---|---|---|
| committer | GitHub <[email protected]> | 2021-03-14 15:10:28 -0400 | 
| commit | 0dc3c5030b778d5256cad5d9529e9ecf7fbfb233 (patch) | |
| tree | 420e44f62d95d138eec36baa4d1bd5b6c9390ae6 /lua/nv-compe | |
| parent | d002b0419a8621c5575c14119d0b8d9c4a7a44a0 (diff) | |
The Lua Journey Begins...
Diffstat (limited to 'lua/nv-compe')
| -rw-r--r-- | lua/nv-compe/init.lua | 73 | 
1 files changed, 73 insertions, 0 deletions
| diff --git a/lua/nv-compe/init.lua b/lua/nv-compe/init.lua new file mode 100644 index 00000000..4dcfe26a --- /dev/null +++ b/lua/nv-compe/init.lua @@ -0,0 +1,73 @@ +require'compe'.setup { +  enabled = true; +  autocomplete = true; +  debug = false; +  min_length = 1; +  preselect = 'enable'; +  throttle_time = 80; +  source_timeout = 200; +  incomplete_delay = 400; +  max_abbr_width = 100; +  max_kind_width = 100; +  max_menu_width = 100; +  documentation = true; + +  source = { +    path = true; +    buffer = true; +    calc = true; +    vsnip = true; +    nvim_lsp = true; +    nvim_lua = true; +    spell = true; +    tags = true; +    snippets_nvim = true; +    treesitter = true; +  }; +} + + + + + +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 "<C-n>" +  elseif vim.fn.call("vsnip#available", {1}) == 1 then +    return t "<Plug>(vsnip-expand-or-jump)" +  elseif check_back_space() then +    return t "<Tab>" +  else +    return vim.fn['compe#complete']() +  end +end +_G.s_tab_complete = function() +  if vim.fn.pumvisible() == 1 then +    return t "<C-p>" +  elseif vim.fn.call("vsnip#jumpable", {-1}) == 1 then +    return t "<Plug>(vsnip-jump-prev)" +  else +    return t "<S-Tab>" +  end +end + +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}) | 
