From 6314366206b271fc8cd2fe26387bae9bb8eb1782 Mon Sep 17 00:00:00 2001 From: Kyren223 Date: Mon, 22 Jul 2024 19:30:09 +0300 Subject: [PATCH] feat(neovim): refactored and lazy loaded completions --- .../nvim/lua/custom/{ => configs}/completion.lua | 14 +++++--------- .config/nvim/lua/custom/plugins/completion.lua | 5 ++--- 2 files changed, 7 insertions(+), 12 deletions(-) rename .config/nvim/lua/custom/{ => configs}/completion.lua (92%) diff --git a/.config/nvim/lua/custom/completion.lua b/.config/nvim/lua/custom/configs/completion.lua similarity index 92% rename from .config/nvim/lua/custom/completion.lua rename to .config/nvim/lua/custom/configs/completion.lua index 5cf8c7b..127f7b3 100644 --- a/.config/nvim/lua/custom/completion.lua +++ b/.config/nvim/lua/custom/configs/completion.lua @@ -1,3 +1,4 @@ +-- Load snippets for _, ft_path in ipairs(vim.api.nvim_get_runtime_file('lua/custom/snippets/*.lua', true)) do loadfile(ft_path)() end @@ -10,14 +11,9 @@ local cmp = require('cmp') cmp.event:on('confirm_done', require('nvim-autopairs.completion.cmp').on_confirm_done()) -- Helper functions -local function tab(is_forward) +local function snippet_jump(jump_amount) return cmp.mapping(function(fallback) - local jump_amount = is_forward and 1 or -1 - if cmp.visible() then - local behaviour = cmp.SelectBehavior.Select - local select_item = is_forward and cmp.select_next_item or cmp.select_prev_item - select_item({ behaviour = behaviour }) - elseif luasnip.locally_jumpable(jump_amount) then + if luasnip.locally_jumpable(jump_amount) then luasnip.jump(jump_amount) else fallback() @@ -60,8 +56,8 @@ cmp.setup({ }, }, mapping = cmp.mapping.preset.insert({ - [''] = tab(true), - [''] = tab(false), + [''] = snippet_jump(1), + [''] = snippet_jump(-1), [''] = cmp.mapping.complete(), -- invoke completion [''] = cmp.mapping.confirm({ select = true, behavior = cmp.ConfirmBehavior.Insert }), [''] = cmp.mapping.scroll_docs(-4), diff --git a/.config/nvim/lua/custom/plugins/completion.lua b/.config/nvim/lua/custom/plugins/completion.lua index a1835ad..be7ba17 100644 --- a/.config/nvim/lua/custom/plugins/completion.lua +++ b/.config/nvim/lua/custom/plugins/completion.lua @@ -1,7 +1,6 @@ return { 'hrsh7th/nvim-cmp', - lazy = false, - priority = 100, + event = "InsertEnter", dependencies = { 'onsails/lspkind.nvim', -- icons for completion type 'hrsh7th/cmp-path', -- complete filepaths @@ -10,6 +9,6 @@ return { { 'L3MON4D3/LuaSnip', build = 'make install_jsregexp' }, -- snippets plugin }, config = function() - require('custom.completion') + require('custom.configs.completion') end, }