add new completion plugins
This commit is contained in:
		| @ -2,64 +2,84 @@ local cmp = require("cmp") | |||||||
| local luasnip = require("luasnip") | local luasnip = require("luasnip") | ||||||
|  |  | ||||||
| local has_words_before = function() | local has_words_before = function() | ||||||
| 	local line, col = unpack(vim.api.nvim_win_get_cursor(0)) |   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 |   return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil | ||||||
| end | end | ||||||
| cmp.setup({ | cmp.setup({ | ||||||
|     snippet = { |   snippet = { | ||||||
|       expand = function(args) |     expand = function(args) | ||||||
|         require('luasnip').lsp_expand(args.body) -- For `luasnip` users. |       require('luasnip').lsp_expand(args.body) -- For `luasnip` users. | ||||||
|       end, |     end, | ||||||
|     }, |   }, | ||||||
|     mapping = { |   mapping = { | ||||||
| 			['<C-k>'] = cmp.mapping.select_prev_item(), |     ['<C-k>'] = cmp.mapping.select_prev_item(), | ||||||
| 			['<C-j>'] = cmp.mapping.select_next_item(), |     ['<C-p>'] = cmp.mapping.select_prev_item(), | ||||||
|       ['<C-d>'] = cmp.mapping(cmp.mapping.scroll_docs(-4), { 'i', 'c' }), |     ['<C-j>'] = cmp.mapping.select_next_item(), | ||||||
|       ['<C-f>'] = cmp.mapping(cmp.mapping.scroll_docs(4), { 'i', 'c' }), |     ['<C-n>'] = cmp.mapping.select_next_item(), | ||||||
|       ['<C-Space>'] = cmp.mapping(cmp.mapping.complete(), { 'i', 'c' }), |     ['<C-d>'] = cmp.mapping(cmp.mapping.scroll_docs(-4), { 'i', 'c' }), | ||||||
|       ['<C-y>'] = cmp.config.disable, -- Specify `cmp.config.disable` if you want to remove the default `<C-y>` mapping. |     ['<C-f>'] = cmp.mapping(cmp.mapping.scroll_docs(4), { 'i', 'c' }), | ||||||
|       ['<C-e>'] = cmp.mapping({ |     ['<C-Space>'] = cmp.mapping(cmp.mapping.complete(), { 'i', 'c' }), | ||||||
|         i = cmp.mapping.abort(), |     ['<C-y>'] = cmp.config.disable, -- Specify `cmp.config.disable` if you want to remove the default `<C-y>` mapping. | ||||||
|         c = cmp.mapping.close(), |     ['<C-e>'] = cmp.mapping({ | ||||||
|       }), |       i = cmp.mapping.abort(), | ||||||
|       ['<CR>'] = cmp.mapping.confirm({ select = true }), |       c = cmp.mapping.close(), | ||||||
| 			['<Tab>'] = cmp.mapping(function(fallback) |     }), | ||||||
| 				if cmp.visible() then |     ['<CR>'] = cmp.mapping.confirm({ select = true }), | ||||||
| 					cmp.select_next_item() |     ['<Tab>'] = cmp.mapping(function(fallback) | ||||||
| 				elseif luasnip.expand_or_jumpable() then |       if cmp.visible() then | ||||||
| 					luasnip.expand_or_jump() |         cmp.select_next_item() | ||||||
| 				elseif has_words_before() then |       elseif luasnip.expand_or_jumpable() then | ||||||
| 					cmp.complete() |         luasnip.expand_or_jump() | ||||||
| 				else |       elseif has_words_before() then | ||||||
| 					fallback() |         cmp.complete() | ||||||
| 				end |       else | ||||||
| 			end,{"i","s"}), |         fallback() | ||||||
| 			['<S-Tab>'] = cmp.mapping(function(fallback) |       end | ||||||
| 				if cmp.visible() then |     end, { "i", "s" }), | ||||||
| 					cmp.select_prev_item() |     ['<S-Tab>'] = cmp.mapping(function(fallback) | ||||||
| 				elseif luasnip.jumpable(-1) then |       if cmp.visible() then | ||||||
| 					luasnip.jump(-1) |         cmp.select_prev_item() | ||||||
| 				else |       elseif luasnip.jumpable(-1) then | ||||||
| 					fallback() |         luasnip.jump(-1) | ||||||
| 				end |       else | ||||||
| 			end,{"i","s"}) |         fallback() | ||||||
|     }, |       end | ||||||
|     sources = cmp.config.sources({ |     end, { "i", "s" }) | ||||||
|       { name = 'nvim_lsp' }, |   }, | ||||||
|       { name = 'luasnip' }, -- For luasnip users. |   sources = cmp.config.sources({ | ||||||
|     }, { |     { name = 'path' }, | ||||||
|       { name = 'buffer' }, |     { name = 'nvim_lsp', keyword_length = 3 }, | ||||||
|     }) |     { name = 'nvim_lsp_signature_help' }, | ||||||
|   }) |     { name = 'nvim_lua', keyword_length = 2 }, | ||||||
|  |     { name = 'nvim_lua', keyword_length = 2 }, | ||||||
| cmp.setup.cmdline('/',{ |     { name = 'buffer' }, | ||||||
| sources = { |     { name = 'luasnip' }, -- For luasnip users. | ||||||
| 	{ name = 'buffer' } |   }), | ||||||
| 	} |   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 = 'λ', | ||||||
|  |         buffer = 'Ω' | ||||||
|  |       } | ||||||
|  |       item.menu = menu_icon[entry.source.name] | ||||||
|  |       return item | ||||||
|  |     end | ||||||
|  |   } | ||||||
| }) | }) | ||||||
|  |  | ||||||
| cmp.setup.cmdline(':',{ | cmp.setup.cmdline('/', { | ||||||
| sources = cmp.config.sources({ |   sources = { | ||||||
| {name = 'path'} |     { name = 'buffer' } | ||||||
| },{{name='cmdline'}}) |   } | ||||||
|  | }) | ||||||
|  |  | ||||||
|  | cmp.setup.cmdline(':', { | ||||||
|  |   sources = cmp.config.sources({ | ||||||
|  |     { name = 'path' } | ||||||
|  |   }, { { name = 'cmdline' } }) | ||||||
| }) | }) | ||||||
|  | |||||||
| @ -25,8 +25,12 @@ require("packer").startup(function(use) | |||||||
|     "kosayoda/nvim-lightbulb", |     "kosayoda/nvim-lightbulb", | ||||||
|   }) |   }) | ||||||
|   use("hrsh7th/cmp-nvim-lsp") |   use("hrsh7th/cmp-nvim-lsp") | ||||||
|  |   use("hrsh7th/cmp-nvim-lsp-signature-help") | ||||||
|  |   use("hrsh7th/cmp-nvim-lua") | ||||||
|   use("hrsh7th/cmp-buffer") |   use("hrsh7th/cmp-buffer") | ||||||
|   use("hrsh7th/cmp-path") |   use("hrsh7th/cmp-path") | ||||||
|  |   use("hrsh7th/cmp-vsnip") | ||||||
|  |   use("hrsh7th/vim-vsnip") | ||||||
|   use("hrsh7th/nvim-cmp") |   use("hrsh7th/nvim-cmp") | ||||||
|   use("hrsh7th/cmp-cmdline") |   use("hrsh7th/cmp-cmdline") | ||||||
|   use("saadparwaiz1/cmp_luasnip") |   use("saadparwaiz1/cmp_luasnip") | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user