summaryrefslogtreecommitdiff
path: root/config/plugin/cmp.lua
diff options
context:
space:
mode:
authorseth <[email protected]>2024-04-09 19:49:37 -0400
committerseth <[email protected]>2024-04-09 19:49:37 -0400
commit16a1126200932407f9f4562fba961b514a1c91d1 (patch)
tree3ab1b6f1035436a644465757c38c17d7943cea11 /config/plugin/cmp.lua
parent43dbb8549d0ecc6dd62a5fd5f9b63beacbfc487b (diff)
auto import all files, cleanup + add a few things
Diffstat (limited to 'config/plugin/cmp.lua')
-rw-r--r--config/plugin/cmp.lua47
1 files changed, 47 insertions, 0 deletions
diff --git a/config/plugin/cmp.lua b/config/plugin/cmp.lua
new file mode 100644
index 0000000..10c750f
--- /dev/null
+++ b/config/plugin/cmp.lua
@@ -0,0 +1,47 @@
+if vim.g.did_load_cmp_plugin then
+ return
+end
+vim.g.did_load_cmp_plugin = true
+
+local cmp = require("cmp")
+
+cmp.setup({
+ completion = {
+ compleopt = "menu,menuone,insert",
+ },
+
+ snippet = {
+ expand = function(args)
+ require("luasnip").lsp_expand(args.body)
+ end,
+ },
+
+ mapping = {
+ ["<C-n>"] = cmp.mapping.select_next_item({ behavior = cmp.SelectBehavior.Insert }),
+ ["<C-p>"] = cmp.mapping.select_prev_item({ behavior = cmp.SelectBehavior.Insert }),
+ ["<C-b>"] = cmp.mapping.scroll_docs(-4),
+ ["<C-f>"] = cmp.mapping.scroll_docs(4),
+ ["<C-Space>"] = cmp.mapping.complete(),
+ ["<C-e>"] = cmp.mapping.abort(),
+ ["<CR>"] = cmp.mapping({
+ i = function(fallback)
+ if cmp.visible() and cmp.get_active_entry() then
+ cmp.confirm({ behavior = cmp.ConfirmBehavior.Replace, select = false })
+ else
+ fallback()
+ end
+ end,
+
+ s = cmp.mapping.confirm({ select = true }),
+ c = cmp.mapping.confirm({ behavior = cmp.ConfirmBehavior.Replace, select = true }),
+ }),
+ },
+
+ sources = cmp.config.sources({
+ { name = "nvim_lsp" },
+ { name = "luasnip" },
+ { name = "async_path" },
+ { name = "buffer" },
+ { name = "rg" },
+ }),
+})