dotfiles/nvim/.config/nvim/lua/modules/completion.lua

60 lines
1.9 KiB
Lua

local remap = vim.api.nvim_set_keymap
vim.g.completion_enable_auto_popup = 0
vim.g.completion_auto_change_source = 1
vim.g.completion_trigger_on_delete = 1
vim.g.completion_matching_ignore_case = 0
vim.g.completion_matching_strategy_list = { 'exact', 'substring' }
vim.g.completion_customize_lsp_label = {
Function = " [function]",
Method = " [method]",
Reference = " [reference]",
Enum = " [enum]",
Field = "ﰠ [field]",
Keyword = " [key]",
Variable = " [variable]",
Folder = " [folder]",
Snippet = " [snippet]",
Operator = " [operator]",
Module = " [module]",
Text = "ﮜ[text]",
Class = " [class]",
Interface = " [interface]"
}
vim.g.completion_chain_complete_list = {
c = {
{ complete_items = { 'buffers', 'tmux' } },
{ mode = { 'tags' } },
{ mode = { 'keyn' } },
{ mode = { '<c-p>' } },
{ mode = { '<c-n>' } }
},
haskell = {
{ complete_items = { 'buffers', 'lsp', 'tmux' } },
{ mode = { 'keyn' } },
{ mode = { '<c-p>' } },
{ mode = { '<c-n>' } }
},
rust = {
{ complete_items = { 'buffers', 'lsp', 'tmux' } },
{ mode = { 'keyn' } },
{ mode = { '<c-p>' } },
{ mode = { '<c-n>' } }
},
default = {
{ complete_items = { 'buffers', 'tmux' } },
{ mode = { 'keyn' } },
{ mode = { '<c-p>' } },
{ mode = { '<c-n>' } }
},
}
remap('i', '<Tab>', 'pumvisible() ? "<C-n>" : "<Tab>"', { noremap = true, expr = true })
remap('i', '<S-Tab>', 'pumvisible() ? "<C-p>" : "<S-Tab>"', { noremap = true, expr = true })
remap('i', '<Tab>', '<Plug>(completion_smart_tab)', { noremap = false })
remap('i', '<C-j>', '<Plug>(completion_next_source)', { noremap = false })
remap('i', '<C-k>', '<Plug>(completion_prev_source)', { noremap = false })
vim.api.nvim_command('autocmd BufEnter * lua require\'completion\'.on_attach()')