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 | |
| parent | 1853b4f2aa13b83ff542171060f92d3d4d961a68 (diff) | |
LunarVim
Diffstat (limited to 'lua/lv-compe')
| -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}) | 
