3. Window Management Server / Client System #1337
Replies: 2 comments 1 reply
-
I think I already addressed the flickering issues and did add the concept of "acquiring" a window from a central authority that is able to reuse windows as needed without the flickering of recreating them: neo-tree.nvim/lua/neo-tree/ui/renderer.lua Line 948 in c2a9e81 The issue you linked to is something else entirely. That involves re-designing the state management system to not be defined by location, which is your next point about named sessions:
I think it is a great idea but it may create a lot of unexpected bugs so be prepared for a long haul on this one.
All of that is already in the |
Beta Was this translation helpful? Give feedback.
-
I guess I'm not up to date with the codebase now. I'll look into it later.
True. I numbered it to
I think state has too many things involved that (de/)serializing it is very difficult. (ie I can't serialize |
Beta Was this translation helpful? Give feedback.
-
4. Window Management Server / Client System
In order to tackle this issue, I'd like to implement a window (buffer) manager, that manages the creation of windows to display neo-tree sources. Clients will borrow a window from the manager.
i.e. Source asks for an empty buffer id -> Source renders its content to that buffer (in the background) -> Asks the manager to render -> Manager (maybe creates and) switches window's current_buf to the source's buffer.
This hopefully will eliminate flickering when switching sources which is the core problem in many of the remaining issues.
7. Named Sessions
Related to
4.
source may set a name of the current window. The same name could be referenced in a different tab to display the exact same buffer in multiple places.Additionally we might be able to cache and restore the state of the buffer across different neovim instances (like which node is expanded as well).
Beta Was this translation helpful? Give feedback.
All reactions