From: Samir Benmendil Date: Sun, 17 Dec 2023 17:05:30 +0000 (+0000) Subject: nvim: cmp configuration X-Git-Url: https://git.rmz.io/dotfiles.git/commitdiff_plain/b23eb3955580e2de13c03bf59169ccd2b2009d33?ds=sidebyside nvim: cmp configuration Not all of these might be related. --- diff --git a/nvim/lua/config/options.lua b/nvim/lua/config/options.lua index 547ed75..3939dbc 100644 --- a/nvim/lua/config/options.lua +++ b/nvim/lua/config/options.lua @@ -5,6 +5,9 @@ local opt = vim.opt vim.g.man_hardwrap = 1 vim.env.MANWIDTH = 80 +-- TODO: also try noinsert +opt.completeopt = "menu,menuone,noselect" + -- Some settings taken from LazyVim's default options opt.pumblend = 10 -- Popup blend opt.pumheight = 10 -- Maximum number of entries in a popup diff --git a/nvim/lua/plugins/coding.lua b/nvim/lua/plugins/coding.lua index c1b1c39..7bf442f 100644 --- a/nvim/lua/plugins/coding.lua +++ b/nvim/lua/plugins/coding.lua @@ -15,6 +15,9 @@ return { keys = function() return {} end, + opts = { + store_selection_keys = "", + }, }, -- auto completion @@ -31,11 +34,32 @@ return { local cmp = require("cmp") local luasnip = require("luasnip") + local upstream_format = opts.formatting.format + opts.formatting.format = function(entry, vim_item) + vim_item = upstream_format(entry, vim_item) + local menu = { + nvim_lsp = "[lsp]", + luasnip = "[snip]", + buffer = "[buf]", + path = "[path]", + } + vim_item.menu = menu[entry.source.name] + return vim_item + end + opts.completion = vim.tbl_extend("force", opts.completion, { completeopt = "menu,menuone,noselect", }) - --TODO: review if I want to keep any of LazyVim's mappings - opts.mapping = vim.tbl_extend("force", opts.mapping, { + -- TODO: review if I want to keep any of LazyVim's mappings + opts.mapping = cmp.mapping.preset.insert({ + -- lazyvims + [""] = cmp.mapping.select_next_item({ behavior = cmp.SelectBehavior.Insert }), + [""] = cmp.mapping.select_prev_item({ behavior = cmp.SelectBehavior.Insert }), + [""] = cmp.mapping.scroll_docs(-4), + [""] = cmp.mapping.scroll_docs(4), + [""] = cmp.mapping.abort(), + [""] = cmp.mapping.complete(), + -- mine [""] = cmp.mapping(function(fallback) if cmp.visible() then cmp.select_next_item()