Comments (5)
Do you have any disk encryption active?
Unfortunately there's not much I can do here. Please do reopen if you can identify a reproducer.
from nvim-tree.lua.
That's a lot of filesystem events.
There have been and will continue to be issues when there are huge numbers of events such as #1931
There have recently been some file system and libuv performance / resource leak changes in neovim. You're running latest so they should be present.
Please provide a reproducer: I have not heard of lerna... full instructions on how I can set this up and reproduce would be gratefully appreciated.
from nvim-tree.lua.
Thanks Alex.
I've tried to repro this with simple directories.
I have a bash script to generate 2000 empty directories into a packages
folder below, and follow the next steps:
- I create a new folder call it
testing
andcd
into it - I create a
create_empty_dirs.sh
file there - Run
chmod +x create_empty_dirs.sh
in the terminal inside thetesting
directory - Execute the script
./create_empty_dirs.sh
. Once this succeeds, I have insidetesting
apackages
directory with 2000 empty folders - I open
nvim
fromtesting
and open nvim-tree - Locate the created
packages
folder in the tree and hitC-]
tocd
into packages - NeoVim hangs for at least 30 seconds
- Once the operation is complete, I'm now inside
packages
- Run NeoVim command
:qa
to exit NeoViim, it hangs once more for some about 30sec too before exit is done
I have reproduced this in 2 MacBooks: a 32GB Ram Intel Core i9, as well as a 64GB Ram Apple M1 Max. Both on macOS 13.4.1.
#!/bin/bash
# Function to create empty dirs inside a packages folder
create_directory() {
local dir_name="packages/$1"
mkdir -p "$dir_name"
}
# Main script
for ((i = 1; i <= 2000; i++)); do
dir_name="package_$i"
create_directory "$dir_name"
done
echo "2000 empty directories created."
from nvim-tree.lua.
Unfortunately I'm not able to replicate. I even created 100 files in each directory:
#!/bin/bash
# Function to create empty dirs inside a packages folder
create_directory() {
local dir_name="packages/$1"
mkdir -p "$dir_name"
}
create_file() {
local file_name="packages/$1/$2"
touch "$file_name"
}
# Main script
for ((i = 1; i <= 2000; i++)); do
dir_name="package_$i"
create_directory "$dir_name"
for ((j = 1; j <= 100; j++)); do
create_file "$dir_name" "$j"
done
done
Log is quite sparse, with no action following the change dir:
nvim-tree.log
Have you got a linux machine you could test this on?
Is the testing contained inside a git repo?
from nvim-tree.lua.
Hello Alex.
The testing is not in a git repo.
I tested the lag in a Linux running inside Virtualbox and it seems to be performant in that environment. Looks like it's a macOS problem.
from nvim-tree.lua.
Related Issues (20)
- [Feature] icon placement to the end of the line HOT 1
- api.tree.winid() HOT 1
- `group_empty` with line wrapping HOT 1
- When I open/close a folder in nvim-tree my view resets and the cursor while being on the same folder now is at the bottom of the screen HOT 11
- Error starting nvim with nvim-tree HOT 1
- Gitignore filter doesn't work without .git directory HOT 2
- How to automatically open the tree every time you open a file
- Problem displaying folder/directories icons HOT 7
- More of a Question
- Hijacked Cursor Moves To Last Grouped Folder
- file status icon does not update until you save the file HOT 1
- neovim 0.10: window picker changes WinBar highlight HOT 19
- it would be great if tree explorer can capture the mouse on opening HOT 3
- Missing some icons HOT 5
- API: tree.resize HOT 2
- `hijack_cursor` with `update_focused_file.enable` does not set cursor on focus/toggle HOT 1
- How to hide root folder? HOT 1
- stack traceback HOT 3
- Don't close floating window when rename or create files using floating `vim.ui.input` window HOT 7
- nvim gets stuck if git option is set in the config HOT 6
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 nvim-tree.lua.