From 60c7ad77fddf6d23a2427844f368d247fef1ed5a Mon Sep 17 00:00:00 2001 From: LostNeophyte Date: Sat, 4 Feb 2023 16:22:41 +0100 Subject: perf: lazy load most plugins (#3750) * perf: lazy load most plugins * fix(lazy): suggested fixes for pref/lazyloading branch (#3754) fix(lazy): Suggested fixes from previous comments fix(lazy): applying suggestions from code review Co-authored-by: LostNeophyte Co-authored-by: Pratyush Bharati Co-authored-by: LostNeophyte * chore: format * move lazy utils to modules.lua * simplify telescope actions * refactor: cmp_window local name * feat: more lazy loading cmds * refactor(cmp): minor clean up * perf: set lazy loading by default * refactor(alpha): remove broken lazy load * revert: explictily set lazy loading This reverts commit ba38193e4ebfa5acc8afa2b35247c5420d9a2739. * test: enable lazy-loading for bigfile * perf: defer projects and alpha to VimEnter * refactor(bufferline): add comment * perf: better lazy load dap/dapui * perf: lazy load ts-commentstring with Comment.nvim pre_hook --------- Co-authored-by: pr-313 <46706232+pr-313@users.noreply.github.com> Co-authored-by: Pratyush Bharati Co-authored-by: opalmay Co-authored-by: kylo252 <59826753+kylo252@users.noreply.github.com> --- lua/lvim/core/cmp.lua | 55 +++++++++++++++++++++++++++------------------------ 1 file changed, 29 insertions(+), 26 deletions(-) (limited to 'lua/lvim/core/cmp.lua') diff --git a/lua/lvim/core/cmp.lua b/lua/lvim/core/cmp.lua index 142d548f..c116f122 100644 --- a/lua/lvim/core/cmp.lua +++ b/lua/lvim/core/cmp.lua @@ -118,14 +118,17 @@ end M.methods.jumpable = jumpable M.config = function() - local status_cmp_ok, cmp = pcall(require, "cmp") + local status_cmp_ok, cmp_types = pcall(require, "cmp.types.cmp") if not status_cmp_ok then return end - local status_luasnip_ok, luasnip = pcall(require, "luasnip") - if not status_luasnip_ok then - return - end + local ConfirmBehavior = cmp_types.ConfirmBehavior + local SelectBehavior = cmp_types.SelectBehavior + + local cmp = require("lvim.utils.modules").require_on_index "cmp" + local luasnip = require("lvim.utils.modules").require_on_index "luasnip" + local cmp_window = require "cmp.config.window" + local cmp_mapping = require "cmp.config.mapping" lvim.builtin.cmp = { active = true, @@ -138,7 +141,7 @@ M.config = function() return lvim.builtin.cmp.active end, confirm_opts = { - behavior = cmp.ConfirmBehavior.Replace, + behavior = ConfirmBehavior.Replace, select = false, }, completion = { @@ -214,12 +217,12 @@ M.config = function() }, snippet = { expand = function(args) - require("luasnip").lsp_expand(args.body) + luasnip.lsp_expand(args.body) end, }, window = { - completion = cmp.config.window.bordered(), - documentation = cmp.config.window.bordered(), + completion = cmp_window.bordered(), + documentation = cmp_window.bordered(), }, sources = { { @@ -255,7 +258,7 @@ M.config = function() { name = "nvim_lsp", entry_filter = function(entry, ctx) - local kind = require("cmp.types").lsp.CompletionItemKind[entry:get_kind()] + local kind = require("cmp.types.lsp").CompletionItemKind[entry:get_kind()] if kind == "Snippet" and ctx.prev_context.filetype == "java" then return false end @@ -277,24 +280,24 @@ M.config = function() { name = "crates" }, { name = "tmux" }, }, - mapping = cmp.mapping.preset.insert { - [""] = cmp.mapping(cmp.mapping.select_prev_item(), { "i", "c" }), - [""] = cmp.mapping(cmp.mapping.select_next_item(), { "i", "c" }), - [""] = cmp.mapping(cmp.mapping.select_next_item { behavior = cmp.SelectBehavior.Select }, { "i" }), - [""] = cmp.mapping(cmp.mapping.select_prev_item { behavior = cmp.SelectBehavior.Select }, { "i" }), - [""] = cmp.mapping.scroll_docs(-4), - [""] = cmp.mapping.scroll_docs(4), - [""] = cmp.mapping { - i = cmp.mapping.confirm { behavior = cmp.ConfirmBehavior.Replace, select = false }, + mapping = cmp_mapping.preset.insert { + [""] = cmp_mapping(cmp_mapping.select_prev_item(), { "i", "c" }), + [""] = cmp_mapping(cmp_mapping.select_next_item(), { "i", "c" }), + [""] = cmp_mapping(cmp_mapping.select_next_item { behavior = SelectBehavior.Select }, { "i" }), + [""] = cmp_mapping(cmp_mapping.select_prev_item { behavior = SelectBehavior.Select }, { "i" }), + [""] = cmp_mapping.scroll_docs(-4), + [""] = cmp_mapping.scroll_docs(4), + [""] = cmp_mapping { + i = cmp_mapping.confirm { behavior = ConfirmBehavior.Replace, select = false }, c = function(fallback) if cmp.visible() then - cmp.confirm { behavior = cmp.ConfirmBehavior.Replace, select = false } + cmp.confirm { behavior = ConfirmBehavior.Replace, select = false } else fallback() end end, }, - [""] = cmp.mapping(function(fallback) + [""] = cmp_mapping(function(fallback) if cmp.visible() then cmp.select_next_item() elseif luasnip.expand_or_locally_jumpable() then @@ -308,7 +311,7 @@ M.config = function() fallback() end end, { "i", "s" }), - [""] = cmp.mapping(function(fallback) + [""] = cmp_mapping(function(fallback) if cmp.visible() then cmp.select_prev_item() elseif luasnip.jumpable(-1) then @@ -317,16 +320,16 @@ M.config = function() fallback() end end, { "i", "s" }), - [""] = cmp.mapping.complete(), - [""] = cmp.mapping.abort(), - [""] = cmp.mapping(function(fallback) + [""] = cmp_mapping.complete(), + [""] = cmp_mapping.abort(), + [""] = cmp_mapping(function(fallback) if cmp.visible() then local confirm_opts = vim.deepcopy(lvim.builtin.cmp.confirm_opts) -- avoid mutating the original opts below local is_insert_mode = function() return vim.api.nvim_get_mode().mode:sub(1, 1) == "i" end if is_insert_mode() then -- prevent overwriting brackets - confirm_opts.behavior = cmp.ConfirmBehavior.Insert + confirm_opts.behavior = ConfirmBehavior.Insert end if cmp.confirm(confirm_opts) then return -- success, exit early -- cgit v1.2.3