Could somebody please help me get an understanding of the advantages a front end has versus something like the terminal I am trying to wrap my head around it.
I noticed that oni plugins can be written in JS which is pretty cool but does that mean my usual plugins (deoplete, fzf, etc...) won't work?
Also are all neovim front ends the same (except for the language they are implemented in)?
Same basic reason why gvim exists in addition to vim. Some people like launching an application in a separate window rather than within a terminal. In fact, some projects (https://github.com/fmoralesc/neovim-gnome-terminal-wrapper and https://github.com/harish2704/neovim-konsole) are literally just wrapping a terminal session in their own application so there really is nothing else added.
For this project though, didn't you see the animated gifs on the project page? This project is attempting to create more of an IDE rather than just neovim in a separate window. I think the intent is to add more capabilities than neovim can provide in a terminal while still allowing you to use all your current neovim plugins.
Sorry, I don't have anything to do with this project but I felt I could answer your question since I'm interested in seeing where this project goes. :smile:
Hey @keforbes,
Cheers for the response, yes I did see the animated gifs but most of that I can achieve in a terminal like environment so I am just trying to get a really solid understanding of what separates a front end from something like a terminal.
Thanks @keforbes, great answer :)
Terminals are usually limited to character-by-character rendering - sometimes there are very creative workarounds to draw more interesting things, like patched fonts, or some of the crazy stuff Emacs does, but in general you're limited to that restriction.
Neovim's architecture is decoupled, meaning you aren't constrained to a terminal anymore, and so there are lots of front-end UIs now that render to places besides a terminal. Whether or not that is actually useful for you is for you to decide :)
If you're interested to see some others, check this out:
https://github.com/neovim/neovim/wiki/Related-projects#gui-projects
And just to give a comparison, this project was a pure-terminal progenitor to this one:
https://github.com/extr0py/vim-electrify-typescript-completion
Thanks for checking out the project!
Hey @extr0py cheers for the respons.
That has helped to clear things up.