From 8f3df3e569eb5c1bc0555b6d3356f5ad8df5b7f2 Mon Sep 17 00:00:00 2001 From: rootiest Date: Wed, 17 Jul 2024 05:52:58 -0400 Subject: [PATCH] =?UTF-8?q?=F0=9F=A7=99=20Completion?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add additional completion sources: - yanky - env - calc - conventionalcommits - Add more friendly completion mappings --- lua/plugins/coding.lua | 72 +++++++++++++++--------------------------- 1 file changed, 26 insertions(+), 46 deletions(-) diff --git a/lua/plugins/coding.lua b/lua/plugins/coding.lua index 75d8955..a87a598 100644 --- a/lua/plugins/coding.lua +++ b/lua/plugins/coding.lua @@ -56,55 +56,35 @@ return { ---@param opts cmp.ConfigSchema opts = function(_, opts) table.insert(opts.sources, { name = "emoji" }) - end, - dependencies = { "hrsh7th/cmp-emoji" }, - }, - { -- Supertab completion - -- Use for completion and snippets - "hrsh7th/nvim-cmp", - ---@param opts cmp.ConfigSchema - opts = function(_, opts) - local has_words_before = function() - unpack = unpack or table.unpack - 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 - end - + table.insert(opts.sources, { name = "cmp_yanky" }) + table.insert(opts.sources, { name = "dotenv" }) + table.insert(opts.sources, { name = "calc" }) + table.insert(opts.sources, { name = "conventionalcommits" }) local cmp = require("cmp") - - opts.mapping = vim.tbl_extend("force", opts.mapping, { - [""] = cmp.mapping(function(fallback) - if cmp.visible() then - -- You could replace select_next_item() with confirm({ select = true }) to get VS Code autocompletion behavior - cmp.select_next_item() - elseif vim.snippet.active({ direction = 1 }) then - vim.schedule(function() - vim.snippet.jump(1) - end) - elseif has_words_before() then - cmp.complete() - else - fallback() - end - end, { "i", "s" }), - [""] = cmp.mapping(function(fallback) - if cmp.visible() then - cmp.select_prev_item() - elseif vim.snippet.active({ direction = -1 }) then - vim.schedule(function() - vim.snippet.jump(-1) - end) - else - fallback() - end - end, { "i", "s" }), + cmp.setup({ + mapping = { + [""] = cmp.mapping.select_prev_item(), + [""] = cmp.mapping.select_next_item(), + [""] = cmp.mapping.select_prev_item(), + [""] = cmp.mapping.select_next_item(), + [""] = cmp.mapping.scroll_docs(-4), + [""] = cmp.mapping.scroll_docs(4), + [""] = cmp.mapping.complete(), + [""] = cmp.mapping.close(), + [""] = cmp.mapping.confirm({ + behavior = cmp.ConfirmBehavior.Insert, + select = true, + }), + }, }) end, + dependencies = { + "hrsh7th/cmp-emoji", + "chrisgrieser/cmp_yanky", + "SergioRibera/cmp-dotenv", + "hrsh7th/cmp-calc", + "davidsierradz/cmp-conventionalcommits", + }, }, { "norcalli/nvim-colorizer.lua",