Oni v2 on Revery?


#1

Oni is a great GUI on top of neovim: https://github.com/onivim/oni

This project is built on top of the neovim API and adds cool modern elements: keyboard-centric file tree, VCS integration… hard to emulate clearly within the limitation of a cell-based terminal.

The “problem” with the current version is that it’s an Electron app. This platform is sadly famous for its high memory consumption and suboptimal performance in some case. (I personally found that VsCode works decently on recent machine)

So for their future version, the team behind Oni is experimenting with a new rendering engine based on a combo of WebGL and ReasonML. https://github.com/bryphe/revery

The README on the Revery’s repo explains the motivations better than I could.

I share this project here because it could turn to be a possible candidate to implement a similar Kakoune GUI in the future.


#2

While I liked this project I have serious concerns about it. First is JS plugins. What I love about Emacs, is that 99% of Emacs plugins will work both in GUI and in TUI just right. I understand that Oni is Electron based GUI, and it needs JS for extending interface, but it would be suped great if they could provide a Emacsy way of converting TUI to GUI, like it is done there with completion window. But the plugins should really stay independent thing and work both on Oni and NeoVim (and possibly Vim) which isn’t the case really here.

Both Atom and VSCode hugely improved over the last two years, and now are feeling almost as native apps on semi-modern PCs. Electron is slow, but as slow as any other technology that is based on any kind of interpreter. Emacs is slow too, but still allows great extensibility options with Elisp.

I’d really like to see a Kakoune GUI to be more like how it is implemented in Emacs, because of the fact that it will work the same in TUI, but I don’t think that there ever will be a modern project that shares same UI paradigm as Emacs. I’m fine with Electron as long as it is just UI, and not entire application.


#3

I had a look at OpenGL backend used by recent projects:

So they are all related to https://www.glfw.org one way or another.


#4

More details on both technical and financial sides https://gist.github.com/bryphe/ca3260914818a1293864e9fa6422a69c