-
-
Notifications
You must be signed in to change notification settings - Fork 321
Description
Generated by nvim --startuptime on neovim 0.8 (Filter catppuccin lines only)
Do note that this is done on a relatively powerful computer (and almost no cappuccin config) so the result on another computers can even go above 10ms
005.410 000.294 000.294: require('catppuccin')
005.459 000.047 000.047: require('catppuccin.config')
005.607 000.004 000.004: require('vim.F')
006.009 000.246 000.246: require('catppuccin.utils.hsluv')
006.012 000.354 000.108: require('catppuccin.utils.util')
006.014 000.394 000.040: require('catppuccin.main')
006.199 000.039 000.039: require('catppuccin.utils.colors')
006.205 000.190 000.151: require('catppuccin.core.mapper')
006.233 000.027 000.027: require('catppuccin.core.palettes.init')
006.289 000.054 000.054: require('catppuccin.core.palettes.mocha')
006.347 000.034 000.034: require('catppuccin.core.integrations.indent_blankline')
006.377 000.026 000.026: require('catppuccin.core.integrations.dashboard')
006.421 000.040 000.040: require('catppuccin.core.integrations.nvimtree')
006.502 000.050 000.050: require('catppuccin.core.integrations.cmp')
006.543 000.032 000.032: require('catppuccin.core.integrations.markdown')
006.575 000.025 000.025: require('catppuccin.core.integrations.telekasten')
006.611 000.024 000.024: require('catppuccin.core.integrations.symbols_outline')
006.715 000.074 000.074: require('catppuccin.core.integrations.native_lsp')
006.851 000.103 000.103: require('catppuccin.core.integrations.treesitter')
006.913 000.041 000.041: require('catppuccin.core.integrations.notify')
006.971 000.040 000.040: require('catppuccin.core.integrations.bufferline')
007.022 000.031 000.031: require('catppuccin.core.integrations.gitsigns')
007.068 000.029 000.029: require('catppuccin.core.integrations.telescope')
007.112 000.027 000.027: require('catppuccin.core.remaps')
008.252 002.655 001.411: sourcing /home/nullchilly/.local/share/nvim/site/pack/packer/start/theme/colors/catppuccin.vimUsing nvim_set_hl
Obviously, we can switch to the neovim 0.7 api nvim_set_hl while still keeping the old style
Do note that I intentionally didn't use vim.tbl_extend("keep", color, vim.split(color.style, ",")) cause performance issues (Can be solved with compiling)
ErrorMsg = { fg = cp.red, style = "bold,italic", styles = { "bold", "italic" } }In lua/catppuccin/utils/util.lua
local has_nvim07 = vim.fn.has('nvim-0.7')
function util.highlight(group, color)
if has_nvim07 then
if color.styles then
for _, style in ipairs(color.styles) do
color[style] = true
end
color.styles = nil
color.style = nil
elseif color.style then
if color.style ~= nil and color.style ~= "NONE" then
color[color.style] = true
end
color.style = nil
end
vim.api.nvim_set_hl(0, group, color)
else
-- Doc: :h highlight-gui
local style = color.style and "gui=" .. color.style or "gui=NONE"
local fg = color.fg and "guifg=" .. color.fg or "guifg=NONE"
local bg = color.bg and "guibg=" .. color.bg or "guibg=NONE"
local sp = color.sp and "guisp=" .. color.sp or ""
local blend = color.blend and "blend=" .. color.blend or ""
local hl = "highlight " .. group .. " " .. style .. " " .. fg .. " " .. bg .. " " .. sp .. " " .. blend
vim.cmd(hl)
if color.link then
vim.cmd("highlight! link " .. group .. " " .. color.link)
end
end
endThis brings load time require('catppuccin').load() down from 1.4ms to 0.8ms
005.515 000.286 000.286: require('catppuccin')
005.567 000.049 000.049: require('catppuccin.config')
005.707 000.006 000.006: require('vim.F')
006.090 000.232 000.232: require('catppuccin.utils.hsluv')
006.096 000.339 000.106: require('catppuccin.utils.util')
006.098 000.379 000.040: require('catppuccin.main')
006.272 000.038 000.038: require('catppuccin.utils.colors')
006.275 000.175 000.138: require('catppuccin.core.mapper')
006.299 000.024 000.024: require('catppuccin.core.palettes.init')
006.355 000.054 000.054: require('catppuccin.core.palettes.mocha')
006.408 000.030 000.030: require('catppuccin.core.integrations.gitsigns')
006.439 000.025 000.025: require('catppuccin.core.integrations.telescope')
006.493 000.035 000.035: require('catppuccin.core.integrations.indent_blankline')
006.536 000.038 000.038: require('catppuccin.core.integrations.dashboard')
006.587 000.047 000.047: require('catppuccin.core.integrations.bufferline')
006.622 000.029 000.029: require('catppuccin.core.integrations.markdown')
006.702 000.073 000.073: require('catppuccin.core.integrations.treesitter')
006.760 000.026 000.026: require('catppuccin.core.integrations.telekasten')
006.830 000.053 000.053: require('catppuccin.core.integrations.native_lsp')
006.876 000.023 000.023: require('catppuccin.core.integrations.symbols_outline')
006.922 000.036 000.036: require('catppuccin.core.integrations.nvimtree')
006.966 000.029 000.029: require('catppuccin.core.integrations.notify')
007.017 000.038 000.038: require('catppuccin.core.integrations.cmp')
007.059 000.023 000.023: require('catppuccin.core.remaps')
007.683 001.987 000.843: sourcing /home/nullchilly/.local/share/nvim/site/pack/packer/start/theme/colors/catppuccin.vimSupport compiling
However, the setup time is another 1.5ms and I used almost no configuration here (3 lines)
require("catppuccin").setup {
transparent_background = true
}pre-compiled cache is a solution provided by nightfox.nvim
require('nightfox').setup {
options = {
compile_path = vim.fn.stdpath("cache") .. "/nightfox",
compile_file_suffix = "_compiled",
transparent = true,
}
}
vim.cmd "colorscheme nightfox"Nightfox in comparison
012.257 000.018 000.018: sourcing /home/nullchilly/.local/share/nvim/site/pack/packer/opt/theme/plugin/nightfox.vim
012.371 000.044 000.044: require('nightfox')
012.528 000.075 000.075: require('nightfox.lib.collect')
012.574 000.043 000.043: require('nightfox.util')
012.593 000.216 000.098: require('nightfox.config')
012.671 000.039 000.039: require('nightfox.util.deprecation')
012.734 000.060 000.060: require('nightfox.lib.deprecation')
013.119 000.040 000.040: require('nightfox.lib.highlight')
013.122 000.099 000.059: require('nightfox.main')
013.145 000.021 000.021: require('nightfox.override')
013.651 000.643 000.523: sourcing /home/nullchilly/.local/share/nvim/site/pack/packer/opt/theme/colors/nightfox.vimYou can bring it down even more at around 0.5ms by not loading anything except lualine for example