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?
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.
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