Comments (8)
Does it occur if you change your theme? Does it occur if you load lush but dont load a lush theme? What theme are you loading? What version of neovim are you running? What does nvim --startuptime file.log
produce?
My files are bytecode-cached by hotpot so there's some time skipped reading and intepreting the lua files, but the actual cpu time to do anything lush related should be about the same. Lush is a couple of ms total for me on a decade old i5.
total elapsed specific
ms ms
025.638 000.013 000.013: require('lush.math')
025.653 000.012 000.012: require('lush.vivid.rgb.convert')
025.655 000.044 000.019: require('lush.vivid.hsl.convert')
025.700 000.044 000.044: require('lush.vivid.hsl_like')
025.702 000.114 000.026: require('lush.vivid.hsl.type')
025.797 000.044 000.044: require('lush.vivid.hsluv.lib')
025.801 000.076 000.032: require('lush.vivid.hsluv.convert')
025.803 000.099 000.023: require('lush.vivid.hsluv.type')
025.809 000.248 000.035: require('lush')
026.853 000.144 000.144: require('lush.errors')
026.868 000.222 000.078: require('lush.parser')
029.658 000.026 000.026: require('lush.compiler')
048.331 000.038 000.038: sourcing /home/soup/.local/share/nvim/site/pack/manual/start/lush.nvim/plugin/lush.vim
from lush.nvim.
@rktjmp I did a couple of tests and this is what I found
- using vim 9.0.1420, everything loads faster (lush included) ... no problems with vim
when I use nvim 0.9.0 with lush the startup is about 3 seconds slower
I'm using zenbones
theme
below is the startup file log and I guess everything looks fine
times in msec
clock self+sourced self: sourced script
clock elapsed: other lines
000.017 000.017: --- NVIM STARTING ---
000.136 000.118: event init
000.290 000.154: early init
000.361 000.071: locale set
000.425 000.063: init first window
000.898 000.473: inits 1
000.923 000.026: window checked
000.929 000.005: parsing arguments
001.747 000.070 000.070: require('vim.shared')
001.961 000.072 000.072: require('vim._meta')
001.967 000.212 000.140: require('vim._editor')
001.971 000.365 000.083: require('vim._init_packages')
001.976 000.682: init lua interpreter
002.091 000.115: expanding arguments
002.141 000.050: inits 2
002.641 000.500: init highlight
002.644 000.004: waiting for UI
002.891 000.246: done waiting for UI
002.902 000.012: clear screen
003.134 000.232: init default mappings & autocommands
003.865 000.088 000.088: sourcing /usr/share/nvim/runtime/ftplugin.vim
003.970 000.050 000.050: sourcing /usr/share/nvim/runtime/indent.vim
004.049 000.018 000.018: sourcing /usr/share/nvim/archlinux.vim
004.057 000.053 000.034: sourcing /etc/xdg/nvim/sysinit.vim
007.223 002.546 002.546: sourcing /home/cipherlogs/.local/share/nvim/site/autoload/plug.vim
012.233 000.022 000.022: sourcing /home/cipherlogs/.local/share/nvim/plugged/vim-javascript/ftdetect/flow.vim
012.318 000.056 000.056: sourcing /home/cipherlogs/.local/share/nvim/plugged/vim-javascript/ftdetect/javascript.vim
012.404 000.017 000.017: sourcing /home/cipherlogs/.local/share/nvim/plugged/vim-solidity/ftdetect/solidity.vim
012.496 000.031 000.031: sourcing /home/cipherlogs/.local/share/nvim/plugged/haskell-vim/ftdetect/haskell.vim
012.742 000.018 000.018: sourcing /usr/share/vim/vimfiles/ftdetect/PKGBUILD.vim
012.782 000.016 000.016: sourcing /usr/share/vim/vimfiles/ftdetect/SRCINFO.vim
012.833 000.027 000.027: sourcing /usr/share/vim/vimfiles/ftdetect/conkyrc.vim
013.156 001.221 001.035: sourcing /usr/share/nvim/runtime/filetype.lua
013.345 000.021 000.021: sourcing /usr/share/nvim/runtime/ftplugin.vim
013.496 000.015 000.015: sourcing /usr/share/nvim/runtime/indent.vim
013.881 000.147 000.147: sourcing /usr/share/nvim/runtime/syntax/synload.vim
014.032 000.458 000.311: sourcing /usr/share/nvim/runtime/syntax/syntax.vim
014.239 000.093 000.093: sourcing /usr/share/nvim/runtime/syntax/nosyntax.vim
014.495 000.128 000.128: sourcing /usr/share/nvim/runtime/syntax/synload.vim
014.622 000.536 000.316: sourcing /usr/share/nvim/runtime/syntax/syntax.vim
014.934 000.113 000.113: sourcing /usr/share/nvim/runtime/filetype.lua
015.113 000.018 000.018: sourcing /usr/share/nvim/runtime/ftplugin.vim
015.257 000.014 000.014: sourcing /usr/share/nvim/runtime/indent.vim
016.018 000.022 000.022: sourcing /home/cipherlogs/.local/share/nvim/plugged/zenbones.nvim/autoload/bones.vim
016.355 000.289 000.289: require('zenbones.util')
016.869 000.048 000.048: require('lush.math')
017.033 000.156 000.156: require('lush.vivid.rgb.convert')
017.040 000.422 000.218: require('lush.vivid.hsl.convert')
017.592 000.547 000.547: require('lush.vivid.hsl_like')
017.599 001.034 000.064: require('lush.vivid.hsl.type')
018.700 000.975 000.975: require('lush.vivid.hsluv.lib')
018.713 001.047 000.072: require('lush.vivid.hsluv.convert')
018.720 001.116 000.069: require('lush.vivid.hsluv.type')
018.733 002.368 000.219: require('lush')
018.969 000.121 000.121: require('zenbones.specs')
020.634 001.655 001.655: require('tokyobones.palette')
021.553 000.890 000.890: require('zenbones.specs.dark')
022.588 000.319 000.319: require('lush.errors')
022.611 001.029 000.710: require('lush.parser')
030.209 011.472 007.776: require('tokyobones')
030.411 000.190 000.190: require('lush.compiler')
035.422 000.139 000.139: require('zenbones.term')
035.547 019.665 005.185: sourcing /home/cipherlogs/.local/share/nvim/plugged/zenbones.nvim/colors/tokyobones.vim
035.891 031.802 007.195: sourcing /home/cipherlogs/.config/nvim/init.vim
035.900 000.773: sourcing vimrc file(s)
036.476 000.169 000.169: sourcing /home/cipherlogs/.local/share/nvim/plugged/vim-highlightedyank/plugin/highlightedyank.vim
036.769 000.050 000.050: sourcing /home/cipherlogs/.local/share/nvim/plugged/tcomment_vim/autoload/tcomment/deprecated.vim
040.659 004.050 004.000: sourcing /home/cipherlogs/.local/share/nvim/plugged/tcomment_vim/plugin/tcomment.vim
041.554 000.685 000.685: sourcing /home/cipherlogs/.local/share/nvim/plugged/vim-surround/plugin/surround.vim
043.627 001.938 001.938: sourcing /home/cipherlogs/.local/share/nvim/plugged/emmet-vim/plugin/emmet.vim
044.388 000.627 000.627: sourcing /home/cipherlogs/.local/share/nvim/plugged/auto-pairs/plugin/auto-pairs.vim
044.580 000.064 000.064: sourcing /home/cipherlogs/.local/share/nvim/plugged/lush.nvim/plugin/lush.vim
044.787 000.051 000.051: sourcing /home/cipherlogs/.local/share/nvim/plugged/vim-be-good/plugin/vim-be-good.vim
045.742 000.317 000.317: sourcing /usr/share/nvim/runtime/plugin/gzip.vim
045.791 000.016 000.016: sourcing /usr/share/nvim/runtime/plugin/health.vim
046.696 000.342 000.342: sourcing /usr/share/nvim/runtime/pack/dist/opt/matchit/plugin/matchit.vim
046.870 001.052 000.710: sourcing /usr/share/nvim/runtime/plugin/matchit.vim
047.203 000.305 000.305: sourcing /usr/share/nvim/runtime/plugin/matchparen.vim
047.876 000.641 000.641: sourcing /usr/share/nvim/runtime/plugin/netrwPlugin.vim
048.286 000.337 000.337: sourcing /usr/share/nvim/runtime/plugin/rplugin.vim
048.441 000.109 000.109: sourcing /usr/share/nvim/runtime/plugin/shada.vim
048.522 000.038 000.038: sourcing /usr/share/nvim/runtime/plugin/spellfile.vim
048.753 000.196 000.196: sourcing /usr/share/nvim/runtime/plugin/tarPlugin.vim
048.971 000.162 000.162: sourcing /usr/share/nvim/runtime/plugin/tohtml.vim
049.036 000.028 000.028: sourcing /usr/share/nvim/runtime/plugin/tutor.vim
049.340 000.270 000.270: sourcing /usr/share/nvim/runtime/plugin/zipPlugin.vim
050.597 001.069 001.069: sourcing /usr/share/vim/vimfiles/plugin/fzf.vim
051.832 000.109 000.109: sourcing /usr/share/nvim/runtime/plugin/editorconfig.lua
051.993 000.118 000.118: sourcing /usr/share/nvim/runtime/plugin/man.lua
052.105 000.076 000.076: sourcing /usr/share/nvim/runtime/plugin/nvim.lua
052.201 003.874: loading rtp plugins
052.424 000.222: loading packages
053.218 000.794: loading after plugins
053.241 000.023: inits 3
057.896 004.655: reading ShaDa
058.233 000.337: opening buffers
059.992 001.759: BufEnter autocommands
059.999 000.007: editing files in windows
060.131 000.132: VimEnter autocommands
060.136 000.005: UIEnter autocommands
723.764 663.458 663.458: sourcing /usr/share/nvim/runtime/autoload/provider/clipboard.vim
723.800 000.207: before starting main loop
724.161 000.361: first screen update
724.166 000.005: --- NVIM STARTED ---
times in msec
clock self+sourced self: sourced script
clock elapsed: other lines
000.016 000.016: --- NVIM STARTING ---
000.133 000.117: event init
000.272 000.139: early init
000.345 000.074: locale set
000.407 000.062: init first window
000.891 000.484: inits 1
000.905 000.014: window checked
000.911 000.006: parsing arguments
001.742 000.146 000.146: require('vim.shared')
001.953 000.075 000.075: require('vim._meta')
001.958 000.209 000.133: require('vim._editor')
001.963 000.414 000.060: require('vim._init_packages')
001.968 000.643: init lua interpreter
002.984 001.016: expanding arguments
003.057 000.073: inits 2
003.570 000.513: init highlight
from lush.nvim.
using vim 9.0.1420, everything loads faster (lush included) ... no problems with vim
Lush shouldn't work at all in vim. Can you reproduce the effect with a different colorscheme? And a different lush colorscheme?
from lush.nvim.
@rktjmp vim is using the same initrc file that I'm using with nvim.
and everything works fine. when I open vim
I guess compat mode is enabled by default so lush won't be called. when I try to do the same in nvim let g:theme_compat = 1
, I feel like it doesn't have an effect at all.
what's even weird is when I uninstall lush, then I open nvim I get the lua error that lush isn't found, so I add let g:xxx_compat = 1
to my nvim rc.
the result is that the error disappears however, the startup is still slow ??
Also I disabled lush colorscheme and lush and used something else, nvim works perfectly fast in this situation.
from lush.nvim.
Not sure. If you can't create a reproduction I can't really help you and with out other reports it's hard to say it's actually Lush.
You can try logging some timing around these functions which do the bulk of the work:
Line 29 in fb148c0
lush.nvim/lua/lush/compiler.lua
Line 88 in fb148c0
Line 452 in fb148c0
If those aren't taking seconds to run then you should look elsewhere in your config I think.
from lush.nvim.
for lush.lua
it takes 0.03 sec
for compiler.lua
it takes 2.9 e-06 sec
for parser.lua
- it takes: 4.0000000000005e-06
- it takes: 0.006829
- it takes: 0.006982
is it normal for parser.lua
to be called 3 times ? why is it printing 3 times to the console?
other than that all numbers are pretty small.
from lush.nvim.
zenbones is comprised of a few themes that extend each other I think, so the parser will be called once for each.
from lush.nvim.
Finally I had some free time to diagnose the problem properly, please read the updated issue section.
from lush.nvim.
Related Issues (20)
- Unreliable Lushify behaviour HOT 1
- Using new Treesitter groups/tags HOT 4
- How to specify treesitter highlight groups? HOT 2
- How to define treesitter `@x.y` groups HOT 14
- Transparent function HOT 4
- separate colors for keywords and brackets in JavaScript? HOT 3
- Theme the nvim-cmp HOT 2
- `:LushImport` broken HOT 5
- `:Lushify` doesn't work with `lush.extends()` HOT 2
- Built-in support for `g:terminal_color_*` variables HOT 1
- Following the guide to configure an existing theme removes icon colors HOT 7
- Changing boilerplate `sed` code results in error in Mac HOT 4
- `Cursor` highlight group appears not to be working HOT 1
- HSV support ? HOT 2
- `LushImport` doesn't work and errors saying bad argument HOT 3
- Cannot add colour variation for filetype sh HOT 4
- Add warning in :LushRunTutorial to avoid loss of work with naive `:w`'s HOT 1
- Error `bad argument #1 to 'unpack' (table expected, got nil)` HOT 8
- altfont style support is missing HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from lush.nvim.