diff options
author | christianchiarulli <[email protected]> | 2021-04-15 00:17:48 -0400 |
---|---|---|
committer | christianchiarulli <[email protected]> | 2021-04-15 00:17:48 -0400 |
commit | 2cd8c6a21cb6c9af91e631f565e31f5803cdaa7c (patch) | |
tree | 7207301e310a278c0f91b4595ddc93fd98238093 /lua/lv-compe/init.lua | |
parent | 1853b4f2aa13b83ff542171060f92d3d4d961a68 (diff) |
LunarVim
Diffstat (limited to 'lua/lv-compe/init.lua')
-rw-r--r-- | lua/lv-compe/init.lua | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/lua/lv-compe/init.lua b/lua/lv-compe/init.lua new file mode 100644 index 00000000..61270960 --- /dev/null +++ b/lua/lv-compe/init.lua @@ -0,0 +1,102 @@ +vim.o.completeopt = "menuone,noselect" + +require'compe'.setup { + enabled = O.auto_complete, + 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 = {kind = " "}, + buffer = {kind = " "}, + calc = {kind = " "}, + vsnip = {kind = " "}, + nvim_lsp = {kind = " "}, + -- nvim_lua = {kind = " "}, + nvim_lua = false, + spell = {kind = " "}, + tags = false, + vim_dadbod_completion = true, + -- snippets_nvim = {kind = " "}, + -- ultisnips = {kind = " "}, + -- treesitter = {kind = " "}, + emoji = {kind = " ﲃ ", filetypes={"markdown", "text"}} + -- for emoji press : (idk if that in compe tho) + } +} + +-- +-- +-- +-- +-- +-- +-- +-- +-- +-- +-- +-- +-- +-- +-- +-- +-- +-- +-- +-- +-- m +-- +-- +-- +-- + +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}) |