packer.nvim icon indicating copy to clipboard operation
packer.nvim copied to clipboard

505.351: sourcing /home/tim/.config/nvim/plugin/packer_compiled.lua

Open timsofteng opened this issue 2 years ago • 12 comments

  • NVIM v0.6.1
  • git version 2.35.1
  • Alpine linux (edge)
  • Foot terminal

Steps to reproduce

I don't know because it looks like my personal issue.

Actual behaviour

Startup time is more than 500ms with ~30 plugins.

Expected behaviour

Startup time should be less then I habe.

packer files

-- Automatically generated packer.nvim plugin loader code

if vim.api.nvim_call_function('has', {'nvim-0.5'}) ~= 1 then
  vim.api.nvim_command('echohl WarningMsg | echom "Invalid Neovim version for packer.nvim! | echohl None"')
  return
end

vim.api.nvim_command('packadd packer.nvim')

local no_errors, error_msg = pcall(function()

  local time
  local profile_info
  local should_profile = false
  if should_profile then
    local hrtime = vim.loop.hrtime
    profile_info = {}
    time = function(chunk, start)
      if start then
        profile_info[chunk] = hrtime()
      else
        profile_info[chunk] = (hrtime() - profile_info[chunk]) / 1e6
      end
    end
  else
    time = function(chunk, start) end
  end
  
local function save_profiles(threshold)
  local sorted_times = {}
  for chunk_name, time_taken in pairs(profile_info) do
    sorted_times[#sorted_times + 1] = {chunk_name, time_taken}
  end
  table.sort(sorted_times, function(a, b) return a[2] > b[2] end)
  local results = {}
  for i, elem in ipairs(sorted_times) do
    if not threshold or threshold and elem[2] > threshold then
      results[i] = elem[1] .. ' took ' .. elem[2] .. 'ms'
    end
  end

  _G._packer = _G._packer or {}
  _G._packer.profile_output = results
end

time([[Luarocks path setup]], true)
local package_path_str = "/home/tim/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?.lua;/home/tim/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?/init.lua;/home/tim/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?.lua;/home/tim/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?/init.lua"
local install_cpath_pattern = "/home/tim/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/lua/5.1/?.so"
if not string.find(package.path, package_path_str, 1, true) then
  package.path = package.path .. ';' .. package_path_str
end

if not string.find(package.cpath, install_cpath_pattern, 1, true) then
  package.cpath = package.cpath .. ';' .. install_cpath_pattern
end

time([[Luarocks path setup]], false)
time([[try_loadstring definition]], true)
local function try_loadstring(s, component, name)
  local success, result = pcall(loadstring(s), name, _G.packer_plugins[name])
  if not success then
    vim.schedule(function()
      vim.api.nvim_notify('packer.nvim: Error running ' .. component .. ' for ' .. name .. ': ' .. result, vim.log.levels.ERROR, {})
    end)
  end
  return result
end

time([[try_loadstring definition]], false)
time([[Defining packer_plugins]], true)
_G.packer_plugins = {
  LuaSnip = {
    loaded = true,
    path = "/home/tim/.local/share/nvim/site/pack/packer/start/LuaSnip",
    url = "https://github.com/L3MON4D3/LuaSnip"
  },
  ["cmp-buffer"] = {
    loaded = true,
    path = "/home/tim/.local/share/nvim/site/pack/packer/start/cmp-buffer",
    url = "https://github.com/hrsh7th/cmp-buffer"
  },
  ["cmp-cmdline"] = {
    loaded = true,
    path = "/home/tim/.local/share/nvim/site/pack/packer/start/cmp-cmdline",
    url = "https://github.com/hrsh7th/cmp-cmdline"
  },
  ["cmp-nvim-lsp"] = {
    loaded = true,
    path = "/home/tim/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp",
    url = "https://github.com/hrsh7th/cmp-nvim-lsp"
  },
  ["cmp-path"] = {
    loaded = true,
    path = "/home/tim/.local/share/nvim/site/pack/packer/start/cmp-path",
    url = "https://github.com/hrsh7th/cmp-path"
  },
  cmp_luasnip = {
    loaded = true,
    path = "/home/tim/.local/share/nvim/site/pack/packer/start/cmp_luasnip",
    url = "https://github.com/saadparwaiz1/cmp_luasnip"
  },
  ["friendly-snippets"] = {
    loaded = true,
    path = "/home/tim/.local/share/nvim/site/pack/packer/start/friendly-snippets",
    url = "https://github.com/rafamadriz/friendly-snippets"
  },
  ["gitsigns.nvim"] = {
    config = { "\27LJ\2\n0\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\21plugins.gitsigns\frequire\0" },
    loaded = true,
    path = "/home/tim/.local/share/nvim/site/pack/packer/start/gitsigns.nvim",
    url = "https://github.com/lewis6991/gitsigns.nvim"
  },
  neoformat = {
    loaded = true,
    path = "/home/tim/.local/share/nvim/site/pack/packer/start/neoformat",
    url = "https://github.com/sbdchd/neoformat"
  },
  ["nvim-autopairs"] = {
    config = { "\27LJ\2\n1\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\22plugins.autopairs\frequire\0" },
    loaded = true,
    path = "/home/tim/.local/share/nvim/site/pack/packer/start/nvim-autopairs",
    url = "https://github.com/windwp/nvim-autopairs"
  },
  ["nvim-cmp"] = {
    config = { "\27LJ\2\n+\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\16plugins.cmp\frequire\0" },
    loaded = true,
    path = "/home/tim/.local/share/nvim/site/pack/packer/start/nvim-cmp",
    url = "https://github.com/hrsh7th/nvim-cmp"
  },
  ["nvim-lspconfig"] = {
    config = { "\27LJ\2\n+\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\16plugins.lsp\frequire\0" },
    loaded = true,
    path = "/home/tim/.local/share/nvim/site/pack/packer/start/nvim-lspconfig",
    url = "https://github.com/neovim/nvim-lspconfig"
  },
  ["nvim-tree.lua"] = {
    config = { "\27LJ\2\n1\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\22plugins.nvim-tree\frequire\0" },
    loaded = true,
    path = "/home/tim/.local/share/nvim/site/pack/packer/start/nvim-tree.lua",
    url = "https://github.com/kyazdani42/nvim-tree.lua"
  },
  ["nvim-treesitter"] = {
    config = { "\27LJ\2\n2\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\23plugins.treesitter\frequire\0" },
    loaded = true,
    path = "/home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter",
    url = "https://github.com/nvim-treesitter/nvim-treesitter"
  },
  ["nvim-ts-autotag"] = {
    loaded = true,
    path = "/home/tim/.local/share/nvim/site/pack/packer/start/nvim-ts-autotag",
    url = "https://github.com/windwp/nvim-ts-autotag"
  },
  ["nvim-ts-context-commentstring"] = {
    loaded = true,
    path = "/home/tim/.local/share/nvim/site/pack/packer/start/nvim-ts-context-commentstring",
    url = "https://github.com/JoosepAlviste/nvim-ts-context-commentstring"
  },
  ["packer.nvim"] = {
    loaded = true,
    path = "/home/tim/.local/share/nvim/site/pack/packer/start/packer.nvim",
    url = "https://github.com/wbthomason/packer.nvim"
  },
  ["plenary.nvim"] = {
    loaded = true,
    path = "/home/tim/.local/share/nvim/site/pack/packer/start/plenary.nvim",
    url = "https://github.com/nvim-lua/plenary.nvim"
  },
  ["popup.nvim"] = {
    loaded = true,
    path = "/home/tim/.local/share/nvim/site/pack/packer/start/popup.nvim",
    url = "https://github.com/nvim-lua/popup.nvim"
  },
  ["telescope.nvim"] = {
    config = { "\27LJ\2\n1\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\22plugins.telescope\frequire\0" },
    loaded = true,
    path = "/home/tim/.local/share/nvim/site/pack/packer/start/telescope.nvim",
    url = "https://github.com/nvim-telescope/telescope.nvim"
  },
  ["vim-abolish"] = {
    loaded = true,
    path = "/home/tim/.local/share/nvim/site/pack/packer/start/vim-abolish",
    url = "https://github.com/tpope/vim-abolish"
  },
  ["vim-commentary"] = {
    loaded = true,
    path = "/home/tim/.local/share/nvim/site/pack/packer/start/vim-commentary",
    url = "https://github.com/tpope/vim-commentary"
  },
  ["vim-delete-hidden-buffers"] = {
    loaded = true,
    path = "/home/tim/.local/share/nvim/site/pack/packer/start/vim-delete-hidden-buffers",
    url = "https://github.com/arithran/vim-delete-hidden-buffers"
  },
  ["vim-gruvbox8"] = {
    loaded = true,
    path = "/home/tim/.local/share/nvim/site/pack/packer/start/vim-gruvbox8",
    url = "https://github.com/lifepillar/vim-gruvbox8"
  },
  ["vim-obsession"] = {
    loaded = true,
    path = "/home/tim/.local/share/nvim/site/pack/packer/start/vim-obsession",
    url = "https://github.com/tpope/vim-obsession"
  },
  ["vim-repeat"] = {
    loaded = true,
    path = "/home/tim/.local/share/nvim/site/pack/packer/start/vim-repeat",
    url = "https://github.com/tpope/vim-repeat"
  },
  ["vim-surround"] = {
    loaded = true,
    path = "/home/tim/.local/share/nvim/site/pack/packer/start/vim-surround",
    url = "https://github.com/tpope/vim-surround"
  },
  ["vim-tmux-navigator"] = {
    loaded = true,
    path = "/home/tim/.local/share/nvim/site/pack/packer/start/vim-tmux-navigator",
    url = "https://github.com/christoomey/vim-tmux-navigator"
  },
  vimtex = {
    loaded = true,
    path = "/home/tim/.local/share/nvim/site/pack/packer/start/vimtex",
    url = "https://github.com/lervag/vimtex"
  },
  ["which-key.nvim"] = {
    config = { "\27LJ\2\n1\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\22plugins.which-key\frequire\0" },
    loaded = true,
    path = "/home/tim/.local/share/nvim/site/pack/packer/start/which-key.nvim",
    url = "https://github.com/folke/which-key.nvim"
  },
  ["zen-mode.nvim"] = {
    config = { "\27LJ\2\n/\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\20plugins.zenmode\frequire\0" },
    loaded = true,
    path = "/home/tim/.local/share/nvim/site/pack/packer/start/zen-mode.nvim",
    url = "https://github.com/folke/zen-mode.nvim"
  }
}

time([[Defining packer_plugins]], false)
-- Config for: nvim-lspconfig
time([[Config for nvim-lspconfig]], true)
try_loadstring("\27LJ\2\n+\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\16plugins.lsp\frequire\0", "config", "nvim-lspconfig")
time([[Config for nvim-lspconfig]], false)
-- Config for: gitsigns.nvim
time([[Config for gitsigns.nvim]], true)
try_loadstring("\27LJ\2\n0\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\21plugins.gitsigns\frequire\0", "config", "gitsigns.nvim")
time([[Config for gitsigns.nvim]], false)
-- Config for: which-key.nvim
time([[Config for which-key.nvim]], true)
try_loadstring("\27LJ\2\n1\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\22plugins.which-key\frequire\0", "config", "which-key.nvim")
time([[Config for which-key.nvim]], false)
-- Config for: nvim-treesitter
time([[Config for nvim-treesitter]], true)
try_loadstring("\27LJ\2\n2\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\23plugins.treesitter\frequire\0", "config", "nvim-treesitter")
time([[Config for nvim-treesitter]], false)
-- Config for: telescope.nvim
time([[Config for telescope.nvim]], true)
try_loadstring("\27LJ\2\n1\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\22plugins.telescope\frequire\0", "config", "telescope.nvim")
time([[Config for telescope.nvim]], false)
-- Config for: nvim-autopairs
time([[Config for nvim-autopairs]], true)
try_loadstring("\27LJ\2\n1\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\22plugins.autopairs\frequire\0", "config", "nvim-autopairs")
time([[Config for nvim-autopairs]], false)
-- Config for: nvim-cmp
time([[Config for nvim-cmp]], true)
try_loadstring("\27LJ\2\n+\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\16plugins.cmp\frequire\0", "config", "nvim-cmp")
time([[Config for nvim-cmp]], false)
-- Config for: nvim-tree.lua
time([[Config for nvim-tree.lua]], true)
try_loadstring("\27LJ\2\n1\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\22plugins.nvim-tree\frequire\0", "config", "nvim-tree.lua")
time([[Config for nvim-tree.lua]], false)
-- Config for: zen-mode.nvim
time([[Config for zen-mode.nvim]], true)
try_loadstring("\27LJ\2\n/\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\20plugins.zenmode\frequire\0", "config", "zen-mode.nvim")
time([[Config for zen-mode.nvim]], false)
if should_profile then save_profiles() end

end)

if not no_errors then
  error_msg = error_msg:gsub('"', '\\"')
  vim.api.nvim_command('echohl ErrorMsg | echom "Error in packer_compiled: '..error_msg..'" | echom "Please check your config for correctness" | echohl None')
end
Plugin specification file(s)

Post or link your plugin specification files here, if you aren't able to provide a minimal reproducer

packer log file

Post the contents of ~/.cache/nvim/packer.nvim.log here

No errors.

packer compiled file

Post the contents of packer_compiled.vim here

timsofteng avatar Apr 02 '22 10:04 timsofteng

The startuptime depends on many onther things, not only plugins. Perhaps you could send the whole output of --startuptime and your output of PackerProfile

max397574 avatar Apr 03 '22 06:04 max397574

@max397574 sure

Startuptime:


times in msec
 clock   self+sourced   self:  sourced script
 clock   elapsed:              other lines

000.010  000.010: --- NVIM STARTING ---
001.439  001.430: locale set
003.452  002.013: inits 1
003.522  000.069: window checked
030.266  026.744: parsing arguments
030.811  000.546: expanding arguments
031.151  000.340: inits 2
035.187  004.035: init highlight
035.198  000.012: waiting for UI
039.251  004.053: done waiting for UI
039.372  000.121: init screen for UI
039.475  000.103: init default mappings
039.784  000.309: init default autocommands
104.214  029.419  029.419: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/vim-gruvbox8/colors/gruvbox8.vim
104.268  063.904  034.485: sourcing /home/tim/.config/nvim/init.lua
104.300  000.612: sourcing vimrc file(s)
126.074  000.031  000.031: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/LuaSnip/ftdetect/snippets.vim
126.887  000.048  000.048: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/cooklang.vim
127.032  000.032  000.032: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/fusion.vim
127.109  000.031  000.031: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/gdresource.vim
127.187  000.025  000.025: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/gdscript.vim
127.285  000.026  000.026: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/glimmer.vim
127.347  000.029  000.029: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/glsl.vim
127.430  000.022  000.022: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/gowork.vim
127.505  000.032  000.032: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/graphql.vim
127.584  000.047  000.047: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/hack.vim
127.658  000.041  000.041: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/hcl.vim
127.724  000.025  000.025: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/heex.vim
127.809  000.023  000.023: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/hjson.vim
127.877  000.024  000.024: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/json5.vim
127.942  000.034  000.034: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/ledger.vim
128.010  000.036  000.036: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/nix.vim
128.079  000.035  000.035: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/prisma.vim
128.133  000.021  000.021: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/pug.vim
128.229  000.035  000.035: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/ql.vim
128.319  000.048  000.048: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/query.vim
128.391  000.019  000.019: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/surface.vim
128.442  000.026  000.026: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/teal.vim
128.486  000.018  000.018: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/tlaplus.vim
128.534  000.022  000.022: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/yang.vim
128.897  000.071  000.071: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/vimtex/ftdetect/cls.vim
129.000  000.060  000.060: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/vimtex/ftdetect/tex.vim
129.120  000.038  000.038: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/vimtex/ftdetect/tikz.vim
130.046  025.017  024.115: sourcing /usr/share/nvim/runtime/filetype.vim
130.475  000.085  000.085: sourcing /usr/share/nvim/runtime/ftplugin.vim
130.858  000.058  000.058: sourcing /usr/share/nvim/runtime/indent.vim
131.471  000.176  000.176: sourcing /usr/share/nvim/runtime/syntax/synload.vim
131.693  000.717  000.541: sourcing /usr/share/nvim/runtime/syntax/syntax.vim
135.862  001.439  001.439: sourcing /usr/share/nvim/runtime/plugin/fzf.vim
136.255  000.350  000.350: sourcing /usr/share/nvim/runtime/plugin/gzip.vim
136.302  000.017  000.017: sourcing /usr/share/nvim/runtime/plugin/health.vim
136.409  000.081  000.081: sourcing /usr/share/nvim/runtime/plugin/man.vim
137.536  000.390  000.390: sourcing /usr/share/nvim/runtime/pack/dist/opt/matchit/plugin/matchit.vim
137.767  001.331  000.941: sourcing /usr/share/nvim/runtime/plugin/matchit.vim
138.134  000.340  000.340: sourcing /usr/share/nvim/runtime/plugin/matchparen.vim
138.893  000.721  000.721: sourcing /usr/share/nvim/runtime/plugin/netrwPlugin.vim
139.709  000.027  000.027: sourcing /home/tim/.local/share/nvim/rplugin.vim
139.720  000.540  000.513: sourcing /usr/share/nvim/runtime/plugin/rplugin.vim
140.211  000.136  000.136: sourcing /usr/share/nvim/runtime/plugin/shada.vim
140.673  000.043  000.043: sourcing /usr/share/nvim/runtime/plugin/spellfile.vim
141.228  000.239  000.239: sourcing /usr/share/nvim/runtime/plugin/tarPlugin.vim
141.718  000.183  000.183: sourcing /usr/share/nvim/runtime/plugin/tohtml.vim
141.928  000.036  000.036: sourcing /usr/share/nvim/runtime/plugin/tutor.vim
142.416  000.327  000.327: sourcing /usr/share/nvim/runtime/plugin/zipPlugin.vim
648.057  505.351  505.351: sourcing /home/tim/.config/nvim/plugin/packer_compiled.lua
648.886  007.575: loading rtp plugins
650.500  000.404  000.404: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/LuaSnip/plugin/luasnip.vim
651.314  000.035  000.035: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/neoformat/plugin/neoformat.vim
653.157  001.245  001.245: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-cmp/plugin/cmp.lua
653.690  000.134  000.134: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-lspconfig/plugin/lspconfig.vim
656.963  002.796  002.796: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/plugin/nvim-treesitter.vim
658.396  000.934  000.934: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-ts-autotag/plugin/nvim-ts-autotag.vim
659.116  000.310  000.310: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-ts-context-commentstring/plugin/ts_context_commentstring.vim
659.601  000.063  000.063: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/plenary.nvim/plugin/plenary.vim
660.280  000.291  000.291: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/telescope.nvim/plugin/telescope.vim
662.392  001.730  001.730: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/vim-abolish/plugin/abolish.vim
663.059  000.283  000.283: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/vim-commentary/plugin/commentary.vim
663.534  000.041  000.041: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/vim-delete-hidden-buffers/plugin/delete-hidden-buffers.vim
664.212  000.235  000.235: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/vim-obsession/plugin/obsession.vim
665.444  000.813  000.813: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/vim-surround/plugin/surround.vim
665.936  000.129  000.129: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/vim-tmux-navigator/plugin/tmux_navigator.vim
666.376  000.065  000.065: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/vimtex/plugin/vimtex.vim
666.779  000.021  000.021: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/which-key.nvim/plugin/which-key.vim
667.273  000.036  000.036: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/zen-mode.nvim/plugin/zen-mode.vim
667.570  009.120: loading packages
669.130  000.818  000.818: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/cmp-buffer/after/plugin/cmp_buffer.lua
669.797  000.366  000.366: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/cmp-cmdline/after/plugin/cmp_cmdline.lua
670.152  000.106  000.106: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp/after/plugin/cmp_nvim_lsp.lua
670.815  000.394  000.394: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/cmp-path/after/plugin/cmp_path.lua
671.429  000.356  000.356: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/cmp_luasnip/after/plugin/cmp_luasnip.lua
671.482  001.872: loading after plugins
671.507  000.025: inits 3
682.256  010.748: reading ShaDa
682.419  000.164: opening buffers
682.630  000.210: BufEnter autocommands
682.634  000.004: editing files in windows
693.813  011.179: VimEnter autocommands
693.819  000.006: UIEnter autocommands
693.823  000.004: before starting main loop
695.802  001.979: first screen update
695.808  000.006: --- NVIM STARTED ---


times in msec
 clock   self+sourced   self:  sourced script
 clock   elapsed:              other lines

000.023  000.023: --- NVIM STARTING ---
001.372  001.348: locale set
003.606  002.235: inits 1
003.676  000.069: window checked
019.198  015.522: parsing arguments
019.568  000.370: expanding arguments
019.772  000.205: inits 2
022.337  002.565: init highlight
022.348  000.011: waiting for UI
026.442  004.094: done waiting for UI
026.564  000.122: init screen for UI
026.731  000.168: init default mappings
027.025  000.294: init default autocommands
092.434  029.288  029.288: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/vim-gruvbox8/colors/gruvbox8.vim
092.488  064.902  035.613: sourcing /home/tim/.config/nvim/init.lua
092.520  000.593: sourcing vimrc file(s)
116.506  000.027  000.027: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/LuaSnip/ftdetect/snippets.vim
117.241  000.036  000.036: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/cooklang.vim
117.355  000.027  000.027: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/fusion.vim
117.453  000.050  000.050: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/gdresource.vim
117.512  000.021  000.021: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/gdscript.vim
117.566  000.020  000.020: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/glimmer.vim
117.629  000.031  000.031: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/glsl.vim
117.713  000.022  000.022: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/gowork.vim
117.786  000.031  000.031: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/graphql.vim
117.855  000.037  000.037: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/hack.vim
117.927  000.039  000.039: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/hcl.vim
117.988  000.021  000.021: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/heex.vim
118.072  000.022  000.022: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/hjson.vim
118.135  000.021  000.021: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/json5.vim
118.202  000.035  000.035: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/ledger.vim
118.268  000.034  000.034: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/nix.vim
118.336  000.034  000.034: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/prisma.vim
118.390  000.021  000.021: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/pug.vim
118.506  000.046  000.046: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/ql.vim
118.600  000.045  000.045: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/query.vim
118.676  000.024  000.024: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/surface.vim
118.738  000.029  000.029: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/teal.vim
118.791  000.021  000.021: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/tlaplus.vim
118.853  000.029  000.029: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/yang.vim
119.248  000.047  000.047: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/vimtex/ftdetect/cls.vim
119.324  000.045  000.045: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/vimtex/ftdetect/tex.vim
119.427  000.038  000.038: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/vimtex/ftdetect/tikz.vim
120.535  027.290  026.438: sourcing /usr/share/nvim/runtime/filetype.vim
121.045  000.088  000.088: sourcing /usr/share/nvim/runtime/ftplugin.vim
121.512  000.069  000.069: sourcing /usr/share/nvim/runtime/indent.vim
122.234  000.191  000.191: sourcing /usr/share/nvim/runtime/syntax/synload.vim
122.506  000.867  000.677: sourcing /usr/share/nvim/runtime/syntax/syntax.vim
126.739  001.467  001.467: sourcing /usr/share/nvim/runtime/plugin/fzf.vim
127.129  000.346  000.346: sourcing /usr/share/nvim/runtime/plugin/gzip.vim
127.176  000.017  000.017: sourcing /usr/share/nvim/runtime/plugin/health.vim
127.283  000.081  000.081: sourcing /usr/share/nvim/runtime/plugin/man.vim
128.382  000.378  000.378: sourcing /usr/share/nvim/runtime/pack/dist/opt/matchit/plugin/matchit.vim
128.627  001.316  000.938: sourcing /usr/share/nvim/runtime/plugin/matchit.vim
129.013  000.358  000.358: sourcing /usr/share/nvim/runtime/plugin/matchparen.vim
129.779  000.727  000.727: sourcing /usr/share/nvim/runtime/plugin/netrwPlugin.vim
130.615  000.020  000.020: sourcing /home/tim/.local/share/nvim/rplugin.vim
130.627  000.551  000.531: sourcing /usr/share/nvim/runtime/plugin/rplugin.vim
131.133  000.140  000.140: sourcing /usr/share/nvim/runtime/plugin/shada.vim
131.618  000.046  000.046: sourcing /usr/share/nvim/runtime/plugin/spellfile.vim
132.182  000.222  000.222: sourcing /usr/share/nvim/runtime/plugin/tarPlugin.vim
132.674  000.177  000.177: sourcing /usr/share/nvim/runtime/plugin/tohtml.vim
132.877  000.034  000.034: sourcing /usr/share/nvim/runtime/plugin/tutor.vim
133.343  000.309  000.309: sourcing /usr/share/nvim/runtime/plugin/zipPlugin.vim
651.797  518.173  518.173: sourcing /home/tim/.config/nvim/plugin/packer_compiled.lua
652.647  007.848: loading rtp plugins
654.297  000.403  000.403: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/LuaSnip/plugin/luasnip.vim
655.146  000.048  000.048: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/neoformat/plugin/neoformat.vim
657.071  001.315  001.315: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-cmp/plugin/cmp.lua
657.626  000.138  000.138: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-lspconfig/plugin/lspconfig.vim
661.266  003.097  003.097: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/plugin/nvim-treesitter.vim
662.682  000.951  000.951: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-ts-autotag/plugin/nvim-ts-autotag.vim
663.363  000.223  000.223: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-ts-context-commentstring/plugin/ts_context_commentstring.vim
663.848  000.070  000.070: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/plenary.nvim/plugin/plenary.vim
664.549  000.305  000.305: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/telescope.nvim/plugin/telescope.vim
666.739  001.820  001.820: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/vim-abolish/plugin/abolish.vim
667.458  000.323  000.323: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/vim-commentary/plugin/commentary.vim
667.954  000.043  000.043: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/vim-delete-hidden-buffers/plugin/delete-hidden-buffers.vim
668.630  000.267  000.267: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/vim-obsession/plugin/obsession.vim
669.937  000.861  000.861: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/vim-surround/plugin/surround.vim
670.462  000.134  000.134: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/vim-tmux-navigator/plugin/tmux_navigator.vim
670.899  000.068  000.068: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/vimtex/plugin/vimtex.vim
671.349  000.022  000.022: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/which-key.nvim/plugin/which-key.vim
671.876  000.039  000.039: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/zen-mode.nvim/plugin/zen-mode.vim
672.185  009.411: loading packages
673.713  000.780  000.780: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/cmp-buffer/after/plugin/cmp_buffer.lua
674.369  000.376  000.376: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/cmp-cmdline/after/plugin/cmp_cmdline.lua
674.776  000.108  000.108: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp/after/plugin/cmp_nvim_lsp.lua
675.442  000.403  000.403: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/cmp-path/after/plugin/cmp_path.lua
676.089  000.381  000.381: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/cmp_luasnip/after/plugin/cmp_luasnip.lua
676.145  001.913: loading after plugins
676.170  000.025: inits 3
689.164  012.994: reading ShaDa
689.342  000.178: opening buffers
689.585  000.243: BufEnter autocommands
689.589  000.004: editing files in windows
700.996  011.407: VimEnter autocommands
701.003  000.006: UIEnter autocommands
701.007  000.004: before starting main loop
703.219  002.212: first screen update
703.226  000.007: --- NVIM STARTED ---


times in msec
 clock   self+sourced   self:  sourced script
 clock   elapsed:              other lines

000.007  000.007: --- NVIM STARTING ---
000.930  000.924: locale set
002.993  002.062: inits 1
003.055  000.063: window checked
013.182  010.127: parsing arguments
013.365  000.182: expanding arguments
013.468  000.103: inits 2
014.689  001.222: init highlight
014.694  000.005: waiting for UI
016.295  001.601: done waiting for UI
016.314  000.019: init screen for UI
016.350  000.036: init default mappings
016.437  000.087: init default autocommands
037.673  011.455  011.455: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/vim-gruvbox8/colors/gruvbox8.vim
037.701  021.087  009.632: sourcing /home/tim/.config/nvim/init.lua
037.717  000.193: sourcing vimrc file(s)
051.813  000.023  000.023: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/LuaSnip/ftdetect/snippets.vim
052.346  000.019  000.019: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/cooklang.vim
052.411  000.020  000.020: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/fusion.vim
052.475  000.020  000.020: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/gdresource.vim
052.518  000.013  000.013: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/gdscript.vim
052.562  000.021  000.021: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/glimmer.vim
052.596  000.013  000.013: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/glsl.vim
052.631  000.014  000.014: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/gowork.vim
052.693  000.021  000.021: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/graphql.vim
052.759  000.037  000.037: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/hack.vim
052.812  000.028  000.028: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/hcl.vim
052.859  000.017  000.017: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/heex.vim
052.901  000.016  000.016: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/hjson.vim
052.963  000.019  000.019: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/json5.vim
053.014  000.021  000.021: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/ledger.vim
053.052  000.015  000.015: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/nix.vim
053.105  000.028  000.028: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/prisma.vim
053.144  000.015  000.015: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/pug.vim
053.190  000.023  000.023: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/ql.vim
053.267  000.035  000.035: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/query.vim
053.332  000.017  000.017: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/surface.vim
053.375  000.020  000.020: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/teal.vim
053.413  000.017  000.017: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/tlaplus.vim
053.451  000.016  000.016: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/yang.vim
053.740  000.040  000.040: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/vimtex/ftdetect/cls.vim
053.796  000.032  000.032: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/vimtex/ftdetect/tex.vim
053.845  000.025  000.025: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/vimtex/ftdetect/tikz.vim
054.593  016.545  015.957: sourcing /usr/share/nvim/runtime/filetype.vim
054.961  000.059  000.059: sourcing /usr/share/nvim/runtime/ftplugin.vim
055.312  000.052  000.052: sourcing /usr/share/nvim/runtime/indent.vim
055.818  000.148  000.148: sourcing /usr/share/nvim/runtime/syntax/synload.vim
055.993  000.586  000.438: sourcing /usr/share/nvim/runtime/syntax/syntax.vim
059.326  001.229  001.229: sourcing /usr/share/nvim/runtime/plugin/fzf.vim
059.636  000.265  000.265: sourcing /usr/share/nvim/runtime/plugin/gzip.vim
059.682  000.013  000.013: sourcing /usr/share/nvim/runtime/plugin/health.vim
059.771  000.069  000.069: sourcing /usr/share/nvim/runtime/plugin/man.vim
060.524  000.339  000.339: sourcing /usr/share/nvim/runtime/pack/dist/opt/matchit/plugin/matchit.vim
060.683  000.891  000.553: sourcing /usr/share/nvim/runtime/plugin/matchit.vim
061.008  000.299  000.299: sourcing /usr/share/nvim/runtime/plugin/matchparen.vim
061.642  000.583  000.583: sourcing /usr/share/nvim/runtime/plugin/netrwPlugin.vim
062.313  000.016  000.016: sourcing /home/tim/.local/share/nvim/rplugin.vim
062.326  000.427  000.412: sourcing /usr/share/nvim/runtime/plugin/rplugin.vim
062.711  000.120  000.120: sourcing /usr/share/nvim/runtime/plugin/shada.vim
063.060  000.034  000.034: sourcing /usr/share/nvim/runtime/plugin/spellfile.vim
063.481  000.183  000.183: sourcing /usr/share/nvim/runtime/plugin/tarPlugin.vim
063.831  000.143  000.143: sourcing /usr/share/nvim/runtime/plugin/tohtml.vim
064.001  000.027  000.027: sourcing /usr/share/nvim/runtime/plugin/tutor.vim
064.378  000.246  000.246: sourcing /usr/share/nvim/runtime/plugin/zipPlugin.vim
481.818  417.201  417.201: sourcing /home/tim/.config/nvim/plugin/packer_compiled.lua
482.652  005.962: loading rtp plugins
483.909  000.335  000.335: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/LuaSnip/plugin/luasnip.vim
484.510  000.028  000.028: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/neoformat/plugin/neoformat.vim
485.872  000.981  000.981: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-cmp/plugin/cmp.lua
486.253  000.103  000.103: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-lspconfig/plugin/lspconfig.vim
488.876  002.173  002.173: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-treesitter/plugin/nvim-treesitter.vim
490.014  000.748  000.748: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-ts-autotag/plugin/nvim-ts-autotag.vim
490.624  000.276  000.276: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/nvim-ts-context-commentstring/plugin/ts_context_commentstring.vim
491.012  000.059  000.059: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/plenary.nvim/plugin/plenary.vim
491.553  000.248  000.248: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/telescope.nvim/plugin/telescope.vim
493.100  001.260  001.260: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/vim-abolish/plugin/abolish.vim
493.638  000.236  000.236: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/vim-commentary/plugin/commentary.vim
493.996  000.035  000.035: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/vim-delete-hidden-buffers/plugin/delete-hidden-buffers.vim
494.485  000.192  000.192: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/vim-obsession/plugin/obsession.vim
495.479  000.671  000.671: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/vim-surround/plugin/surround.vim
495.866  000.104  000.104: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/vim-tmux-navigator/plugin/tmux_navigator.vim
496.204  000.051  000.051: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/vimtex/plugin/vimtex.vim
496.479  000.016  000.016: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/which-key.nvim/plugin/which-key.vim
496.812  000.032  000.032: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/zen-mode.nvim/plugin/zen-mode.vim
497.084  006.883: loading packages
498.271  000.632  000.632: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/cmp-buffer/after/plugin/cmp_buffer.lua
498.877  000.321  000.321: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/cmp-cmdline/after/plugin/cmp_cmdline.lua
499.250  000.097  000.097: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp/after/plugin/cmp_nvim_lsp.lua
499.812  000.345  000.345: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/cmp-path/after/plugin/cmp_path.lua
500.345  000.308  000.308: sourcing /home/tim/.local/share/nvim/site/pack/packer/start/cmp_luasnip/after/plugin/cmp_luasnip.lua
500.391  001.605: loading after plugins
500.411  000.021: inits 3
510.810  010.399: reading ShaDa
510.979  000.168: opening buffers
511.164  000.185: BufEnter autocommands
511.168  000.004: editing files in windows
520.550  009.383: VimEnter autocommands
520.557  000.006: UIEnter autocommands
520.559  000.003: before starting main loop
521.609  001.050: first screen update
521.614  000.005: --- NVIM STARTED ---

timsofteng avatar Apr 03 '22 11:04 timsofteng

Looks like problems is in configs...

Profile:

  Config for nvim-cmp took 454.971641ms
  Config for nvim-tree.lua took 16.261027ms
  Config for telescope.nvim took 15.946595ms
  Config for nvim-lspconfig took 13.372699ms
  Config for gitsigns.nvim took 7.029365ms
  Config for nvim-autopairs took 6.696847ms
  Config for zen-mode.nvim took 4.954577ms
  Config for nvim-treesitter took 1.865756ms
  Config for which-key.nvim took 1.853685ms
  try_loadstring definition took 0.007198ms
  Defining packer_plugins took 0.00655ms
  Luarocks path setup took 0.004365ms

timsofteng avatar Apr 03 '22 11:04 timsofteng

Here is my cmp config:

local cmp = require'cmp'
local luasnip = require 'luasnip'

cmp.setup {
  snippet = {
    expand = function(args)
      require'luasnip'.lsp_expand(args.body)
    end
  },

  mapping = {
    ['<C-p>'] = cmp.mapping.select_prev_item(),
    ['<C-n>'] = cmp.mapping.select_next_item(),
    ['<C-d>'] = cmp.mapping.scroll_docs(-4),
    ['<C-f>'] = cmp.mapping.scroll_docs(4),
    ['<C-Space>'] = cmp.mapping.complete(),
    ['<C-e>'] = cmp.mapping.close(),
    ['<CR>'] = cmp.mapping.confirm({
      behavior = cmp.ConfirmBehavior.Replace,
      select = true,
    }),

    ['<Tab>'] = function(fallback)
      if cmp.visible() then
        cmp.select_next_item()
      elseif luasnip.expand_or_jumpable() then
        luasnip.expand_or_jump()
      else
        fallback()
      end
    end,
    ['<S-Tab>'] = function(fallback)
      if cmp.visible() then
        cmp.select_prev_item()
      elseif luasnip.jumpable(-1) then
        luasnip.jump(-1)
      else
        fallback()
      end
    end,

  },

  sources = {
    { name = 'nvim_lsp' },
    { name = 'luasnip' },
    { name = 'buffer' }, 
  },
}

-- cmp.setup.cmdline("/", {
--   sources = {
--     { name = "buffer" },
--   },
-- })

-- cmp.setup.cmdline(":", {
--   sources = {
--     { name = "cmdline" },
--     { name = "path" },
--     { name = "buffer" },
--   },
-- })

-- load snippets from runtimepath, eg. friendly-snippets.
require("luasnip.loaders.from_vscode").load()

timsofteng avatar Apr 03 '22 11:04 timsofteng

so I think this is a cmp issue and no a packer one I can't tell why this config should take so long though 🤔

max397574 avatar Apr 03 '22 11:04 max397574

@timsofteng Did you find a solution for this issue? I don't think it's a problem of nvim-cmp because after removing it, the startup time (sourcing packer_compiled.lua) is still around 500ms.

equalis3r avatar May 05 '22 10:05 equalis3r

perhaps it's just slow because there is a lot done?

max397574 avatar May 05 '22 10:05 max397574

@max397574 But 2 weeks ago, before I updated my plugins, neovim started almost instantaneously on my laptop with a 4500U. Now, there is a clear delay even on my desktop with 3700X. So I'm leaning towards a regression somewhere.

equalis3r avatar May 05 '22 11:05 equalis3r

After profiling the plugins, I found the problem in my case was due to nvim-cmp and LuaSnip. nvim-cmp changed their API for using snippets. Updating to their new API solved the issue. nvim now opens instantaneously.

equalis3r avatar May 13 '22 20:05 equalis3r

Sounds a bit as if your solution could help me to solve my issue. At the moment I have intermittent slow startups that take 1.5 - 2 secs. When I then directly close and relaunch nvim it is accceptable quick (100-200 ms). I always have to wait a couple of mins to get a slow startup again. That makes it very difficult to debug.

The most time is spent in sourcing the packer_compiled.lua and I also use nvim-cmp and a snippets engine (UltiSnips).

My nvim-cmp config looks as follows:

local cmp = require("cmp")

local t = function(str)
    return vim.api.nvim_replace_termcodes(str, true, true, true)
end

local cmp_kinds = {
    Text = "  ",
    Method = "  ",
    Function = "  ",
    Constructor = "  ",
    Field = "  ",
    Variable = "  ",
    Class = "  ",
    Interface = "  ",
    Module = "  ",
    Property = "  ",
    Unit = "  ",
    Value = "  ",
    Enum = "  ",
    Keyword = "  ",
    Snippet = "  ",
    Color = "  ",
    File = "  ",
    Reference = "  ",
    Folder = "  ",
    EnumMember = "  ",
    Constant = "  ",
    -- Constant = "  ",
    Struct = "  ",
    Event = "  ",
    Operator = "  ",
    TypeParameter = "  ",
}
cmp.setup({
    formatting = {
        -- https://github.com/hrsh7th/nvim-cmp/wiki/Menu-Appearance#how-to-add-visual-studio-code-codicons-to-the-menu
        format = function(_, vim_item)
            vim_item.kind = (cmp_kinds[vim_item.kind] or "") .. vim_item.kind
            return vim_item
        end,
    },
    snippet = {
        expand = function(args)
            -- vim.fn["vsnip#anonymous"](args.body)
            vim.fn["UltiSnips#Anon"](args.body)
            -- require'luasnip'.lsp_expand(args.body)
        end,
    },
    sources = cmp.config.sources({
        {
            name = "buffer",
            option = {
                keyword_pattern = [[\K\k*]],
            },
        },
        { name = "nvim_lsp" },
        { name = "nvim_lsp_document_symbol" },
        { name = "nvim_lsp_signature_help" },
        {
            name = "path",
            option = {
                trailing_slash = true
            }
        },
        -- { name = "vsnip" },
        { name = "ultisnips" },
        -- { name = "luasnip", option = { use_show_condition = false } },
    }),
    mapping = cmp.mapping.preset.insert({
        ["<Tab>"] = cmp.mapping({
            i = function(fallback)
                if cmp.visible() then
                    cmp.select_next_item({ behavior = cmp.SelectBehavior.Insert })
                else
                    fallback()
                end
            end,
            s = function(fallback)
                fallback()
            end,
        }),
        ["<S-Tab>"] = cmp.mapping({
            i = function(fallback)
                if cmp.visible() then
                    cmp.select_prev_item({ behavior = cmp.SelectBehavior.Insert })
                else
                    fallback()
                end
            end,
            s = function(fallback)
                fallback()
            end,
        }),
        ["<Down>"] = cmp.mapping(cmp.mapping.select_next_item({ behavior = cmp.SelectBehavior.Select }), { "i" }),
        ["<Up>"] = cmp.mapping(cmp.mapping.select_prev_item({ behavior = cmp.SelectBehavior.Select }), { "i" }),
        ["<C-n>"] = cmp.mapping({
            i = function(fallback)
                if cmp.visible() then
                    cmp.select_next_item({ behavior = cmp.SelectBehavior.Select })
                else
                    fallback()
                end
            end,
        }),
        ["<C-p>"] = cmp.mapping({
            i = function(fallback)
                if cmp.visible() then
                    cmp.select_prev_item({ behavior = cmp.SelectBehavior.Select })
                else
                    fallback()
                end
            end,
        }),
        ["<C-b>"] = cmp.mapping(cmp.mapping.scroll_docs(-4), { "i", "c" }),
        ["<C-f>"] = cmp.mapping(cmp.mapping.scroll_docs(4), { "i", "c" }),
        ["<C-Space>"] = cmp.mapping(cmp.mapping.complete(), { "i", "c" }),
        ["<C-e>"] = cmp.mapping({ i = cmp.mapping.close(), c = cmp.mapping.close() }),
        ["<CR>"] = cmp.mapping({
            i = cmp.mapping.confirm({ behavior = cmp.ConfirmBehavior.Replace, select = false }),
        }),
    }),
})

Do you see that there is something wrong (old style of API use) here?

Checked nvim-cmp's GitHub page and do not see that API change you're mentioning.

Thank you! Jamil

jamilraichouni avatar Jun 02 '22 19:06 jamilraichouni

just lazyload cmp

max397574 avatar Jun 02 '22 20:06 max397574

Tried that. Thanks! It speeds up the startup a bit but the general issue is still existing.

Intermittent, when I wait a couple of minutes between one and the other nvim process one can observe that sourcing the packer_compiled.lua takes unacceptable long (500 - 1000 ms) as described here in the issue.

I found a report where someone had a very similar issue with intermittent slow startups which is quite difficult to debug: https://vi.stackexchange.com/questions/24766/intermittent-slow-startup

But that was a different case (opening buffers taking extremely long and not a long taking sourcing of packer_compiled.lua). After reading that, I checked my PATH env var and it looks okay.

Maybe it makes sense that I share my plugins.lua. I can imagine that there is room for improvement or a misconfiguration and I really appreciate when someone can help a bit improving it:

return require("packer").startup(function()

    -- CORE {{{

    -- https://github.com/wbthomason/packer.nvim
    use "wbthomason/packer.nvim"

    -- https://github.com/tpope/vim-commentary
    use { "tpope/vim-commentary", event = "BufWinEnter" }

    -- https://github.com/tpope/vim-surround
    use { "tpope/vim-surround", event = "BufWinEnter" }

    -- https://github.com/tpope/vim-repeat
    use "tpope/vim-repeat"

    -- https://github.com/feline-nvim/feline.nvim
    use {
        "feline-nvim/feline.nvim",
        event = "BufWinEnter",
        config = function() require("config.feline") end,
        requires = {
            -- https://github.com/lewis6991/gitsigns.nvim
            use {
                "lewis6991/gitsigns.nvim",
                event = "BufEnter",
                config = function() require("gitsigns").setup() end
            }
        }
    }

    -- https://github.com/tpope/vim-fugitive
    use "tpope/vim-fugitive"

    --- https://github.com/fladson/vim-kitty
    use { "fladson/vim-kitty", ft = "kitty" }

    -- }}}

    -- COMPLETION AND LSP {{{

    -- use {
    --     -- IMPORTANT: I could only build YouCompleteMe via:
    --     -- cd ~/.local/share/nvim/site/pack/packer/start/YouCompleteMe
    --     -- YCM_CORES=1 python3 install.py --verbose
    --     "ycm-core/YouCompleteMe"
    -- }

    use {
        -- https://github.com/hrsh7th/nvim-cmp
        "hrsh7th/nvim-cmp", -- ENGINE
        event = "BufWinEnter",
        config = function() require("config.nvim-cmp") end,
        requires = {
            -- SOURCES/ PROVIDERS
            -- (sources are the bridge between provider and nvim-cmp):
            {
                -- https://github.com/hrsh7th/cmp-buffer
                "hrsh7th/cmp-buffer",
                after = "nvim-cmp"
            },
            {
                -- https://github.com/hrsh7th/cmp-nvim-lsp
                "hrsh7th/cmp-nvim-lsp", -- source
                after = "nvim-cmp",
                requires = { "neovim/nvim-lspconfig" } -- provider
            },
            {
                -- https://github.com/hrsh7th/cmp-nvim-lsp-signature-help
                "hrsh7th/cmp-nvim-lsp-signature-help", -- source
                after = "nvim-cmp",
                requires = { "neovim/nvim-lspconfig" } -- provider
            },
            {
                -- https://github.com/quangnguyen30192/cmp-nvim-ultisnips
                "quangnguyen30192/cmp-nvim-ultisnips", -- source
                after = "nvim-cmp",
                config = function() require("config.cmp-nvim-ultisnips") end,
                requires = {
                    -- https://github.com/SirVer/ultisnips
                    "SirVer/ultisnips", -- provider
                    after = "nvim-cmp",
                    config = function() require("config.ultisnips") end
                }
            },
            {
                -- https://github.com/hrsh7th/cmp-path
                "hrsh7th/cmp-path", -- source
                after = "nvim-cmp"
            },
        }
    }

    -- use { "SirVer/ultisnips", config = function() require("config.ultisnips") end }

    -- }}}

    -- TELESCOPE {{{

    -- https://github.com/nvim-telescope/telescope.nvim
    use {
        "nvim-telescope/telescope.nvim",
        cmd = "Telescope",
        requires = "nvim-lua/plenary.nvim",
        config = function()
            require("config.telescope")
        end
    }

    -- https://github.com/LinArcX/telescope-env.nvim
    use {
        "LinArcX/telescope-env.nvim",
        after = "telescope.nvim",
        config = function() require("config.telescope-env") end
    }
    use {
        "nvim-telescope/telescope-fzf-native.nvim",
        after = "telescope.nvim",
        config = function() require("config.telescope-fzf-native") end,
        run = "make"
    }
    -- }}}

    -- LSP {{{

    -- https://github.com/neovim/nvim-lspconfig
    use {
        "neovim/nvim-lspconfig",
        event = "BufWinEnter",
        config = function() require("config.nvim-lspconfig") end,
    }

    -- }}}

    -- DEBUG ADAPTER {{{

    -- nvim-dap {{{
    -- https://github.com/mfussenegger/nvim-dap
    -- use {
    --     "mfussenegger/nvim-dap",
    --     config = function() require("config.nvim-dap") end,
    -- }

    -- https://github.com/rcarriga/nvim-dap-ui
    -- use {
    --     "rcarriga/nvim-dap-ui",
    --     requires = "mfussenegger/nvim-dap",
    --     config = function() require("config.nvim-dap-ui") end,
    -- }

    -- }}}

    -- vimspector {{{
    -- https://github.com/puremourning/vimspector
    -- https://puremourning.github.io/vimspector/configuration.html
    use {
        "puremourning/vimspector",
        ft = "python",
        config = function()
            vim.cmd [[let g:vimspector_enable_mappings = 'HUMAN' ]]
            vim.cmd [[let g:vimspector_install_gadgets = ['debugpy'] ]]
            vim.cmd [[let g:vimspector_base_dir = stdpath('data') .. '/site/pack/packer/start/vimspector' ]]
        end,
    }
    -- }}}

    -- }}}

    -- FILETYPE SPECIFIC {{{

    -- https://github.com/iamcco/markdown-preview.nvim
    use {
        "iamcco/markdown-preview.nvim",
        ft = "markdown",
        run = ":call mkdp#util#install()",
        setup = function()
            vim.cmd([[
            let g:mkdp_auto_close = 0
            let g:mkdp_preview_options = {
            \ 'mkit': {},
            \ 'katex': {},
            \ 'uml': {},
            \ 'maid': {},
            \ 'disable_sync_scroll': 0,
            \ 'sync_scroll_type': 'top',
            \ 'hide_yaml_meta': 1,
            \ 'sequence_diagrams': {},
            \ 'flowchart_diagrams': {},
            \ 'content_editable': v:false,
            \ 'disable_filename': 0
            \ }
            ]])
        end
    }

    -- https://github.com/mechatroner/rainbow_csv
    use { "mechatroner/rainbow_csv", ft = "csv" }

    -- https://github.com/Glench/Vim-Jinja2-Syntax
    use { "Glench/Vim-Jinja2-Syntax", ft = { "jinja", "jinja.html" } }

    -- }}}

    -- OTHER {{{

    -- https://github.com/nvim-treesitter/nvim-treesitter
    -- (Better syntax highlighting)
    use {
        "nvim-treesitter/nvim-treesitter",
        event = "BufWinEnter",
        run = function()
            vim.cmd(":TSUpdate")
            -- vim.cmd(":TSInstall! bash c cpp css dockerfile html java javascript json lua python rst scss toml typescript vue yaml")
            -- No vim. Otherwise we break the syntax highlighting for 'lua<<EOF' stuff !!
        end,
        config = function()
            require "nvim-treesitter.configs".setup {
                highlight = { enable = true }
            }
        end
    }

    -- https://github.com/MattesGroeger/vim-bookmarks
    use { "MattesGroeger/vim-bookmarks", event = "BufWinEnter" }

    -- https://github.com/folke/trouble.nvim
    use {
        "folke/trouble.nvim",
        event = "BufWinEnter",
        requires = {
            -- https://github.com/kyazdani42/nvim-web-devicons
            "kyazdani42/nvim-web-devicons",
            -- https://github.com/folke/lsp-colors.nvim
            "folke/lsp-colors.nvim"
        },
        config = function() require("config.trouble") end
    }

    -- https://github.com/lukas-reineke/indent-blankline.nvim
    -- use { "lukas-reineke/indent-blankline.nvim" }
    -- use {
    --     "preservim/tagbar",
    --     config = function() vim.cmd("let g:tagbar_position = 'topleft vertical'") end
    -- }
    -- use {"jamilraichouni/jarvim"}
    -- }}}

end)

EDIT: Just see that lazy-loading the completion stuff via the autocommand InsertEnter is not a great idea. The mode transition from normal to insert lasts around a second now which is a quite bad experience. Can imagine that it'll help to lazy-load nvim-cmp on BufWinEnter instead.

EDIT 2: Reworked the plugins.lua (code listing above)

Many thanks, Jamil

jamilraichouni avatar Jun 03 '22 08:06 jamilraichouni

Nothing here indicates a problem with packer.

lewis6991 avatar Nov 28 '22 15:11 lewis6991