diff options
Diffstat (limited to '.vim/lua/internal/completion.lua')
| -rw-r--r-- | .vim/lua/internal/completion.lua | 154 |
1 files changed, 0 insertions, 154 deletions
diff --git a/.vim/lua/internal/completion.lua b/.vim/lua/internal/completion.lua deleted file mode 100644 index 552a45e..0000000 --- a/.vim/lua/internal/completion.lua +++ /dev/null @@ -1,154 +0,0 @@ -vim.opt.completeopt = { 'menu', 'menuone', 'noselect' } -vim.opt.shortmess:append('c') -vim.opt.pumheight = 20 -- max height of completion window - --- re-link the highlight group for the 3rd field in the completion popup --- which is populated with the completion source -vim.schedule(function() - local hl = vim.api.nvim_set_hl - - hl(0, 'CmpItemMenu', { link = 'Comment', force = true }) - - hl(0, 'CmpItemAbbrMatch', { bold = true, force = true }) - hl(0, 'CmpItemAbbrMatchFuzzy', { link = 'CmpItemAbbrMatch', force = true }) - - hl(0, 'CmpItemKindVariable', { link = 'Normal', force = true }) - hl(0, 'CmpItemKindInterface', { link = 'CmpItemKindVariable', force = true }) - hl(0, 'CmpItemKindText', { link = 'CmpItemKindVariable', force = true }) - - hl(0, 'CmpItemKindFunction', { link = 'Function', force = true }) - hl(0, 'CmpItemKindMethod', { link = 'CmpItemKindFunction', force = true }) - - hl(0, 'CmpItemKindKeyword', { link = 'Keyword', force = true }) - hl(0, 'CmpItemKindProperty', { link = 'CmpItemKindKeyword', force = true }) - hl(0, 'CmpItemKindUnit', { link = 'CmpItemKindKeyword', force = true }) -end) - -local cmp = require('cmp') - -cmp.setup({ - sources = { - { name = 'nvim_lsp', keyword_length = 1, group_index = 1 }, - { name = 'nvim_lsp_signature_help', keyword_length = 1, group_index = 1 }, - { name = 'luasnip', keyword_length = 2, group_index = 1 }, - -- { name = 'spell' }, - { name = 'async_path', group_index = 2 }, - { name = 'buffer', keyword_length = 3, group_index = 2 }, - }, - - mapping = { - ['<c-n>'] = cmp.mapping( - cmp.mapping.select_next_item({ behavior = cmp.SelectBehavior.Insert }), - { 'i', 'c' } - ), - ['<c-p>'] = cmp.mapping( - cmp.mapping.select_prev_item({ behavior = cmp.SelectBehavior.Insert }), - { 'i', 'c' } - ), - ['<tab>'] = cmp.mapping( - cmp.mapping.confirm({ - behavior = cmp.ConfirmBehavior.Insert, - select = true, - }), - { 'i', 'c' } - ), - }, - - -- enable snippet expansion - snippet = { - expand = function(args) - vim.snippet.expand(args.body) - end, - }, - - experimental = { - ghost_text = false, - native_menu = false, - }, - - window = { - completion = { - scrollbar = true, - -- align 'abbr' with cursor, necessary due to 'kind' appearing first - col_offset = -3, - }, - }, - - formatting = { - fields = { 'kind', 'abbr', 'menu' }, - expandable_indicator = true, - format = function(entry, item) - item.dup = 0 -- dedup items from the same source, first one wins - item.menu = '░ ' .. entry.source.name - return require('lspkind').cmp_format({ - mode = 'symbol', - symbol_map = { - -- - Array = ' ', - Boolean = ' ', - Class = ' ', - Color = ' ', - Constant = ' ', - Constructor = ' ', - Enum = ' ', - EnumMember = ' ', - Event = ' ', - -- Field = ' ', - Field = ' ', - File = ' ', - Folder = ' ', - Function = ' ', - Interface = ' ', - Key = ' ', - Keyword = ' ', - Method = ' ', - Module = ' ', - Namespace = ' ', - Null = ' ', - Object = ' ', - Operator = ' ', - Property = ' ', - Package = ' ', - Reference = ' ', - Snippet = ' ', - Struct = ' ', - Text = ' ', - TypeParameter = ' ', - Unit = ' ', - Value = ' ', - Variable = ' ', - }, - })(entry, item) - end, - }, -}) - -cmp.setup.cmdline({ ':', '/', '?', '@' }, { - sources = { - { name = 'cmdline', group_index = 1 }, - { name = 'cmdline_history', group_index = 1 }, - { name = 'nvim_lsp_document_symbol', keyword_length = 1, group_index = 1 }, - { name = 'async_path', group_index = 1 }, - { name = 'buffer', group_index = 1 }, - }, - - matching = { - disallow_symbol_nonprefix_matching = false, - }, - - view = { - entries = { selection_order = 'near_cursor' }, - }, - - formatting = { - fields = { 'abbr', 'menu' }, - }, -}) - -cmp.setup.cmdline({ '/', '?' }, { - sources = { - { name = 'nvim_lsp_document_symbol', keyword_length = 1, group_index = 1 }, - { name = 'path', max_item_count = 12, group_index = 1 }, - { name = 'buffer', group_index = 2 }, - }, -}) |