| 
									
										
										
										
											2023-12-27 02:20:46 +01:00
										 |  |  | return { | 
					
						
							| 
									
										
										
										
											2024-09-12 21:53:56 +02:00
										 |  |  | 	"hrsh7th/nvim-cmp", | 
					
						
							|  |  |  | 	lazy = false, | 
					
						
							|  |  |  | 	dependencies = { | 
					
						
							|  |  |  | 		-- base | 
					
						
							|  |  |  | 		"hrsh7th/cmp-nvim-lsp", | 
					
						
							|  |  |  | 		"hrsh7th/cmp-buffer", | 
					
						
							|  |  |  | 		"hrsh7th/cmp-path", | 
					
						
							|  |  |  | 		"hrsh7th/cmp-cmdline", | 
					
						
							|  |  |  | 		-- snippets | 
					
						
							|  |  |  | 		"L3MON4D3/LuaSnip", | 
					
						
							|  |  |  | 		"saadparwaiz1/cmp_luasnip", | 
					
						
							|  |  |  | 	}, | 
					
						
							|  |  |  | 	config = function() | 
					
						
							|  |  |  | 		local cmp = require("cmp") | 
					
						
							| 
									
										
										
										
											2023-12-27 02:20:46 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-09-12 21:53:56 +02:00
										 |  |  | 		cmp.setup({ | 
					
						
							|  |  |  | 			snippet = { | 
					
						
							|  |  |  | 				expand = function(args) | 
					
						
							|  |  |  | 					require("luasnip").lsp_expand(args.body) | 
					
						
							|  |  |  | 				end, | 
					
						
							|  |  |  | 			}, | 
					
						
							|  |  |  | 			window = { | 
					
						
							|  |  |  | 				completion = cmp.config.window.bordered(), | 
					
						
							|  |  |  | 				-- documentation = cmp.config.window.bordered(), | 
					
						
							|  |  |  | 			}, | 
					
						
							|  |  |  | 			mapping = cmp.mapping.preset.insert({ | 
					
						
							|  |  |  | 				["<C-b>"] = cmp.mapping.scroll_docs(-4), | 
					
						
							|  |  |  | 				["<C-f>"] = cmp.mapping.scroll_docs(4), | 
					
						
							|  |  |  | 				["<C-e>"] = cmp.mapping.abort(), | 
					
						
							|  |  |  | 				["<CR>"] = cmp.mapping.confirm({ select = false }), | 
					
						
							|  |  |  | 			}), | 
					
						
							|  |  |  | 			sources = cmp.config.sources({ | 
					
						
							|  |  |  | 				{ name = "nvim_lsp", priority = 2 }, | 
					
						
							|  |  |  | 				{ name = "luasnip",  priority = 1 }, | 
					
						
							|  |  |  | 				{ name = "buffer" }, | 
					
						
							|  |  |  | 			}), | 
					
						
							|  |  |  | 		}) | 
					
						
							| 
									
										
										
										
											2023-12-27 02:20:46 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-09-12 21:53:56 +02:00
										 |  |  | 		vim.api.nvim_create_autocmd("BufRead", { | 
					
						
							|  |  |  | 			group = vim.api.nvim_create_augroup("CmpSourceCargo", { clear = true }), | 
					
						
							|  |  |  | 			pattern = "Cargo.toml", | 
					
						
							|  |  |  | 			callback = function() | 
					
						
							|  |  |  | 				cmp.setup.buffer({ sources = { { name = "crates" } } }) | 
					
						
							|  |  |  | 			end, | 
					
						
							|  |  |  | 		}) | 
					
						
							| 
									
										
										
										
											2023-12-27 02:20:46 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-09-12 21:53:56 +02:00
										 |  |  | 		-- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won"t work anymore). | 
					
						
							|  |  |  | 		cmp.setup.cmdline({ "/", "?" }, { | 
					
						
							|  |  |  | 			mapping = cmp.mapping.preset.cmdline(), | 
					
						
							|  |  |  | 			sources = { | 
					
						
							|  |  |  | 				{ name = "buffer" }, | 
					
						
							|  |  |  | 			}, | 
					
						
							|  |  |  | 		}) | 
					
						
							| 
									
										
										
										
											2023-12-27 02:20:46 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-09-12 21:53:56 +02:00
										 |  |  | 		-- Use cmdline & path source for ":" (if you enabled `native_menu`, this won"t work anymore). | 
					
						
							|  |  |  | 		cmp.setup.cmdline(":", { | 
					
						
							|  |  |  | 			mapping = cmp.mapping.preset.cmdline(), | 
					
						
							|  |  |  | 			sources = cmp.config.sources({ | 
					
						
							|  |  |  | 				{ name = "path" }, | 
					
						
							|  |  |  | 			}, { | 
					
						
							|  |  |  | 				{ name = "cmdline" }, | 
					
						
							|  |  |  | 			}), | 
					
						
							|  |  |  | 		}) | 
					
						
							|  |  |  | 	end, | 
					
						
							| 
									
										
										
										
											2023-12-27 02:20:46 +01:00
										 |  |  | } |