move cmp_config to own file
This commit is contained in:
		
							
								
								
									
										65
									
								
								nvim/lua/cmp_config.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								nvim/lua/cmp_config.lua
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,65 @@
 | 
			
		||||
local cmp = require("cmp")
 | 
			
		||||
local luasnip = require("luasnip")
 | 
			
		||||
 | 
			
		||||
local has_words_before = function()
 | 
			
		||||
	local line, col = unpack(vim.api.nvim_win_get_cursor(0))
 | 
			
		||||
	return col ~= 0 and vim.api.nvim_buf_get_lines(0, line -1, line, true)[1]:sub(col,col):match("%s") == nil
 | 
			
		||||
end
 | 
			
		||||
cmp.setup({
 | 
			
		||||
    snippet = {
 | 
			
		||||
      expand = function(args)
 | 
			
		||||
        require('luasnip').lsp_expand(args.body) -- For `luasnip` users.
 | 
			
		||||
      end,
 | 
			
		||||
    },
 | 
			
		||||
    mapping = {
 | 
			
		||||
			['<C-k>'] = cmp.mapping.select_prev_item(),
 | 
			
		||||
			['<C-j>'] = cmp.mapping.select_next_item(),
 | 
			
		||||
      ['<C-d>'] = cmp.mapping(cmp.mapping.scroll_docs(-4), { 'i', 'c' }),
 | 
			
		||||
      ['<C-f>'] = cmp.mapping(cmp.mapping.scroll_docs(4), { 'i', 'c' }),
 | 
			
		||||
      ['<C-Space>'] = cmp.mapping(cmp.mapping.complete(), { 'i', 'c' }),
 | 
			
		||||
      ['<C-y>'] = cmp.config.disable, -- Specify `cmp.config.disable` if you want to remove the default `<C-y>` mapping.
 | 
			
		||||
      ['<C-e>'] = cmp.mapping({
 | 
			
		||||
        i = cmp.mapping.abort(),
 | 
			
		||||
        c = cmp.mapping.close(),
 | 
			
		||||
      }),
 | 
			
		||||
      ['<CR>'] = cmp.mapping.confirm({ select = true }),
 | 
			
		||||
			['<Tab>'] = cmp.mapping(function(fallback)
 | 
			
		||||
				if cmp.visible() then
 | 
			
		||||
					cmp.select_next_item()
 | 
			
		||||
				elseif luasnip.expand_or_jumpable() then
 | 
			
		||||
					luasnip.expand_or_jump()
 | 
			
		||||
				elseif has_words_before() then
 | 
			
		||||
					cmp.complete()
 | 
			
		||||
				else
 | 
			
		||||
					fallback()
 | 
			
		||||
				end
 | 
			
		||||
			end,{"i","s"}),
 | 
			
		||||
			['<S-Tab>'] = cmp.mapping(function(fallback)
 | 
			
		||||
				if cmp.visible() then
 | 
			
		||||
					cmp.select_prev_item()
 | 
			
		||||
				elseif luasnip.jumpable(-1) then
 | 
			
		||||
					luasnip.jump(-1)
 | 
			
		||||
				else
 | 
			
		||||
					fallback()
 | 
			
		||||
				end
 | 
			
		||||
			end,{"i","s"})
 | 
			
		||||
    },
 | 
			
		||||
    sources = cmp.config.sources({
 | 
			
		||||
      { name = 'nvim_lsp' },
 | 
			
		||||
      { name = 'luasnip' }, -- For luasnip users.
 | 
			
		||||
    }, {
 | 
			
		||||
      { name = 'buffer' },
 | 
			
		||||
    })
 | 
			
		||||
  })
 | 
			
		||||
 | 
			
		||||
cmp.setup.cmdline('/',{
 | 
			
		||||
sources = {
 | 
			
		||||
	{ name = 'buffer' }
 | 
			
		||||
	}
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
cmp.setup.cmdline(':',{
 | 
			
		||||
sources = cmp.config.sources({
 | 
			
		||||
{name = 'path'}
 | 
			
		||||
},{{name='cmdline'}})
 | 
			
		||||
})
 | 
			
		||||
		Reference in New Issue
	
	Block a user