Neovide: Supporting other editor backends?

Created on 2 Mar 2020  路  3Comments  路  Source: Kethku/neovide

Would it be viable to support multiple backends to this GUI? Notably, if it was possible I'd be interested in seeing Kakoune support. Kakoune _(for example)_ might make this more difficult too, as it does not have windowing/tab/etc support, and relies on tmux to achieve that.

Thoughts?

enhancement help wanted

Most helpful comment

At least in principle it should be possible. I have heard of Kakoune but never used it before. The renderer infrastructure is a probably where I would make the split. Today the editor is used to consume neovim events and turn them into DrawCommands which tell the renderer how and where to draw characters or update the screen. Today they are somewhat coupled but it wouldn't be that hard to split them into separate components so that you could produce any editor which can send draw commands to an editor.

The difficulty would likely be in getting Kakoune to run headless and send any rendering events to the system. An easier first step to get a proof of concept would likely be Xi editor which has a pretty close architecture to Neovim.

I would be totally happy to assist someone if they wanted to attempt this, but I have way more than enough on my plate right now just trying to support one editor :P

All 3 comments

At least in principle it should be possible. I have heard of Kakoune but never used it before. The renderer infrastructure is a probably where I would make the split. Today the editor is used to consume neovim events and turn them into DrawCommands which tell the renderer how and where to draw characters or update the screen. Today they are somewhat coupled but it wouldn't be that hard to split them into separate components so that you could produce any editor which can send draw commands to an editor.

The difficulty would likely be in getting Kakoune to run headless and send any rendering events to the system. An easier first step to get a proof of concept would likely be Xi editor which has a pretty close architecture to Neovim.

I would be totally happy to assist someone if they wanted to attempt this, but I have way more than enough on my plate right now just trying to support one editor :P

For anyone interested in exploring this integration, have a look at this document: https://github.com/mawww/kakoune/blob/master/doc/json_ui.asciidoc as a starting point. Kakoune is designed to process keys and output drawing instructions.

Ok yes. This looks very easy to implement as a drop in replacement. If someone wants to commit some investigation time, I can do the work to make the actual editor swappable.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

verajosemanuel picture verajosemanuel  路  7Comments

nyngwang picture nyngwang  路  4Comments

lijaesela picture lijaesela  路  3Comments

georgebushfourtwenty picture georgebushfourtwenty  路  7Comments

dineshKumar777 picture dineshKumar777  路  6Comments