neovim

Personal neovim configuration files
git clone git://gtms.dev:neovim
Log | Files | Refs

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