init.lua (2250B)
1 local M = {} 2 3 local setup_sources = function() 4 require('cmp_dictionary').setup({dic={}}) 5 require('cmp').register_source('exe', require('tms.p.cmp.exe_source').new()) 6 -- require('cmp').register_source('glab_dpgw', require('tms.p.cmp.glab_source').new()) 7 end 8 9 M.setup = function() 10 setup_sources() 11 local cmp = require('cmp') 12 13 cmp.setup({ 14 -- completion = {autocomplete = false}, 15 documentation = {border = 'single'}, 16 snippet = {expand = function(args) require('luasnip').lsp_expand(args.body) end}, 17 mapping = { 18 ['<C-Space>'] = cmp.mapping.complete({reason = cmp.ContextReason.Auto}), 19 ['<C-u>'] = cmp.mapping.scroll_docs(-4), 20 ['<C-d>'] = cmp.mapping.scroll_docs(4), 21 ['<C-e>'] = cmp.mapping.close(), 22 ['<C-y>'] = cmp.mapping.confirm({behavior = cmp.ConfirmBehavior.Replace, select = true}), 23 ['<C-o>'] = cmp.mapping.confirm({behavior = cmp.ConfirmBehavior.Replace, select = true}), 24 ['<Left>'] = cmp.mapping.close(), 25 ['<Down>'] = cmp.mapping.select_next_item(), 26 ['<Up>'] = cmp.mapping.select_prev_item(), 27 ['<Right>'] = cmp.mapping.confirm({select = true}), 28 }, 29 sources = cmp.config.sources({ 30 {name = 'nvim_lsp'}, 31 {name = 'nvim_lua'}, 32 {name = 'luasnip'}, 33 {name = 'path'}, 34 {name = 'buffer', keyword_length = 5}, 35 {name = 'spell'}, 36 {name = 'calc'}, 37 {name = 'treesitter'}, 38 {name = 'dictionary'}, 39 }), 40 experimental = {ghost_text = true}, 41 }) 42 43 -- Use buffer source for `/` (if you enabled `native_menu`, this won't work anymore). 44 -- cmp.setup.cmdline('/', {completion = {autocomplete = {cmp.TriggerEvent.TextChanged}}, sources = {{name = 'buffer'}}}) 45 46 -- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore). 47 -- cmp.setup.cmdline(':', { 48 -- completion = {autocomplete = {cmp.TriggerEvent.TextChanged}}, 49 -- sources = cmp.config.sources({{name = 'path'}}, {{name = 'cmdline'}}), 50 -- }) 51 52 end 53 54 M.disable_autocomplete = function() require('cmp').setup.buffer {completion = {autocomplete = false}} end 55 56 M.enable_autocomplete = function() 57 local cmp = require('cmp') 58 cmp.setup.buffer {completion = {autocomplete = {cmp.TriggerEvent.TextChanged}}} 59 end 60 61 return M