You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							54 lines
						
					
					
						
							1.8 KiB
						
					
					
				
			
		
		
	
	
							54 lines
						
					
					
						
							1.8 KiB
						
					
					
				-- Credit to https://rsdlt.github.io/ for this code. | 
						|
 | 
						|
local cmp = require'cmp' | 
						|
 | 
						|
cmp.setup({ | 
						|
  -- Enable LSP snippets | 
						|
  snippet = { | 
						|
    expand = function(args) | 
						|
        vim.fn["vsnip#anonymous"](args.body) | 
						|
    end, | 
						|
  }, | 
						|
  mapping = { | 
						|
    ['<C-p>'] = cmp.mapping.select_prev_item(), | 
						|
    ['<C-n>'] = cmp.mapping.select_next_item(), | 
						|
    -- Add tab support | 
						|
    ['<S-Tab>'] = cmp.mapping.select_prev_item(), | 
						|
    ['<Tab>'] = cmp.mapping.select_next_item(), | 
						|
    ['<C-S-f>'] = cmp.mapping.scroll_docs(-4), | 
						|
    ['<C-f>'] = cmp.mapping.scroll_docs(4), | 
						|
    ['<C-Space>'] = cmp.mapping.complete(), | 
						|
    ['<C-e>'] = cmp.mapping.close(), | 
						|
    ['<CR>'] = cmp.mapping.confirm({ | 
						|
      behavior = cmp.ConfirmBehavior.Insert, | 
						|
      select = true, | 
						|
    }) | 
						|
  }, | 
						|
  -- Installed sources: | 
						|
  sources = { | 
						|
    { name = 'path' },                              -- file paths | 
						|
    { name = 'nvim_lsp', keyword_length = 3 },      -- from language server | 
						|
    { name = 'nvim_lsp_signature_help'},            -- display function signatures with current parameter emphasized | 
						|
    { name = 'nvim_lua', keyword_length = 2},       -- complete neovim's Lua runtime API such vim.lsp.* | 
						|
    { name = 'buffer', keyword_length = 2 },        -- source current buffer | 
						|
    { name = 'vsnip', keyword_length = 2 },         -- nvim-cmp source for vim-vsnip | 
						|
    { name = 'calc'},                               -- source for math calculation | 
						|
  }, | 
						|
  window = { | 
						|
      completion = cmp.config.window.bordered(), | 
						|
      documentation = cmp.config.window.bordered(), | 
						|
  }, | 
						|
  formatting = { | 
						|
      fields = {'menu', 'abbr', 'kind'}, | 
						|
      format = function(entry, item) | 
						|
          local menu_icon ={ | 
						|
              nvim_lsp = 'λ', | 
						|
              vsnip = '⋗', | 
						|
              buffer = 'Ω', | 
						|
              path = '🖫', | 
						|
          } | 
						|
          item.menu = menu_icon[entry.source.name] | 
						|
          return item | 
						|
      end, | 
						|
  }, | 
						|
})
 | 
						|
 |