Skip to content
This repository was archived by the owner on Apr 1, 2020. It is now read-only.
This repository was archived by the owner on Apr 1, 2020. It is now read-only.

UI: Externalize Window Management #362

@bryphe

Description

@bryphe

There are several shortcomings to how Oni manages windows today.

  • Convoluted code path - the overlay / overlaymanager concepts are unnecessarily complex and confusing
  • Difficult to extend - it's non-trivial to add new functionality, like a git blame marker plugin, or something like markdown preview

For the overlay scenarios, it'd be really nice if each split had its own 'container' div. This really isn't possible today, as Neovim as a whole manages rendering to various splits.

I'd like to look at the possibility of 'multiplexing' Neovim instances to address these shortcomings. In effect, this would allow us to move window management to Oni, and allow us to really build on that experience - we could have first-class animations and much simpler overlay code if we manage the windows explicitly. Each 'split' would be its own Neovim process.

My original concern with this was that it would be difficult to persist settings between the splits - for example, marks, history, etc. @justinmk had a great write up on how this could work:
https://www.reddit.com/r/neovim/comments/5ym9p3/future_of_ui/

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions