Comments (5)
after turning on debug logging I can see that whenever I save a file LSP server recompiles some parts of the project which causes a wall of
e/lua/neo-tree/sources/filesystem/lib/fs_scan.lua:245: scan_dir_async - start
e/lua/neo-tree/sources/filesystem/lib/fs_scan.lua:268: scan_dir_async - finish
e/lua/neo-tree/sources/filesystem/lib/fs_scan.lua:245: scan_dir_async - start
e/lua/neo-tree/sources/filesystem/lib/fs_scan.lua:268: scan_dir_async - finish
e/lua/neo-tree/sources/filesystem/lib/fs_scan.lua:268: scan_dir_async - finish
e/lua/neo-tree/sources/filesystem/lib/fs_scan.lua:245: scan_dir_async - start
e/lua/neo-tree/sources/filesystem/lib/fs_scan.lua:268: scan_dir_async - finish
e/lua/neo-tree/sources/filesystem/lib/fs_scan.lua:268: scan_dir_async - finish
e/lua/neo-tree/sources/filesystem/lib/fs_scan.lua:268: scan_dir_async - finish
e/lua/neo-tree/sources/filesystem/lib/fs_scan.lua:268: scan_dir_async - finish
e/lua/neo-tree/sources/filesystem/lib/fs_scan.lua:268: scan_dir_async - finish
e/lua/neo-tree/sources/filesystem/lib/fs_scan.lua:268: scan_dir_async - finish
e/lua/neo-tree/sources/filesystem/lib/fs_scan.lua:245: scan_dir_async - start
e/lua/neo-tree/sources/filesystem/lib/fs_scan.lua:245: scan_dir_async - start
e/lua/neo-tree/sources/filesystem/lib/fs_scan.lua:268: scan_dir_async - finish
e/lua/neo-tree/sources/filesystem/lib/fs_scan.lua:245: scan_dir_async - start
e/lua/neo-tree/sources/filesystem/lib/fs_scan.lua:268: scan_dir_async - finish
e/lua/neo-tree/sources/filesystem/lib/fs_scan.lua:268: scan_dir_async - finish
e/lua/neo-tree/sources/filesystem/lib/fs_scan.lua:268: scan_dir_async - finish
e/lua/neo-tree/sources/filesystem/lib/fs_scan.lua:268: scan_dir_async - finish
e/lua/neo-tree/sources/filesystem/lib/fs_scan.lua:268: scan_dir_async - finish
e/lua/neo-tree/sources/filesystem/lib/fs_scan.lua:268: scan_dir_async - finish
followed by
...ckages/start/p_nvim-neotree/lua/neo-tree/git/ignored.lua:143: Failed to load ignored files for
...ckages/start/p_nvim-neotree/lua/neo-tree/git/ignored.lua:143: Failed to load ignored files for
...ckages/start/p_nvim-neotree/lua/neo-tree/git/ignored.lua:143: Failed to load ignored files for
...ckages/start/p_nvim-neotree/lua/neo-tree/git/ignored.lua:143: Failed to load ignored files for
...ckages/start/p_nvim-neotree/lua/neo-tree/git/ignored.lua:143: Failed to load ignored files for
...ckages/start/p_nvim-neotree/lua/neo-tree/git/ignored.lua:143: Failed to load ignored files for
...ckages/start/p_nvim-neotree/lua/neo-tree/git/ignored.lua:143: Failed to load ignored files for
...ckages/start/p_nvim-neotree/lua/neo-tree/git/ignored.lua:143: Failed to load ignored files for
A lot of directories gets rescanned even though they might have been already collapsed.
from neo-tree.nvim.
i recently got #1343 merged to main which should handle the errors more gracefully without causing those mass stacktraces. can you switch branches and try it out?
edit: i don't know if this would fix performance in any way, though.
from neo-tree.nvim.
@Hexdigest123 I don't think your issue is related to this issue.
Your issue is related to UI rerendering of neo-tree, and I believe is caused only when expanding a directory for the first time.
Please make a new issue or please correct me if I'm wrong tho.
OP says there's high CPU usage when a large number of files are updated in the disk, (for example by compiling a project with cmake, a lot of files in build
will be regenerated), and neo-tree tries to catch up to those updates. (right? @ghostbuster91)
This is understandable, and we might have to say this is an expected behavior with the current codebase, as neo-tree has to recreate the tree and rerender the whole buffer for each file update (debounced every 50 ms iirc).
And the performance becomes much worse if the directory is a git repo.
This is a big issue, but it is very difficult to fix at the same time. I'm doing a big rewrite and will incorporate with nvim-nio which will hopefully make the situation better, but it will take time.
from neo-tree.nvim.
Related Issues (20)
- BUG: Neotree reveal puts the selected node on top of the view HOT 4
- FEATURE: Allow changing the `git_root` using `dir` for `git_status`
- BUG: jump to selected item when opening folder HOT 17
- BUG: Neotree can't get icon for Diagnostic HOT 2
- BUG: Document Symbol source break in some special LS. HOT 3
- FEATURE: Focus newly created file HOT 5
- FEATURE: Option for `follow_current_file` to follow into hidden files HOT 4
- BUG: file names are truncated when relative line numbers are enabled HOT 4
- BUG: Error message when adding, deleting, or renaming files or folders HOT 1
- BUG: Re-opening any file lefts `untitled` buffer opened HOT 5
- Help: how can i remove the "padding" colors round the boder? HOT 1
- BUG: renderer.lua:431: '=' expected near 'continue' HOT 3
- FEATURE: Know if the neo-tree window is opened HOT 2
- FEATURE: Short path names for folders HOT 1
- BUG: ignored directories are changing colors
- FEATURE: add mapping to copy absolute path of the file HOT 8
- FEATURE: When help window is open, do not completely close neotree when `q` is pressed HOT 2
- BUG: `close_if_last_window` invalid command to swap to modified buffer HOT 2
- BUG: directories beginning or ending with symbol cause error in filesystem command `set_root` 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 neo-tree.nvim.