qvacua / vimr

VimR — Neovim GUI for macOS in Swift
https://twitter.com/VimRefined
MIT License
6.61k stars 218 forks source link

Remove uibridge, allow basically unmodified nvim binary #1015

Closed georgeharker closed 8 months ago

georgeharker commented 8 months ago

This allows newer versions of neovim which don't have uibridge, recreates the functionality with api commands and autocommands, and assuming the neovim patch gets accepted (minor listen startup difference) would allow externally installed neovim to be used.

qvacua commented 8 months ago

I'm sorry for being mute for some time. I've been inactive due to some private reasons. I'll get slowly get restarted and go through all PRs.

georgeharker commented 8 months ago

Thanks for looking at this.

Most of the changes are code relating to removal of uibridge. I think I did a reasonable job recreating functionality. But some things might not be perfect. I'd kinda like to convert the auto commands to lua and put them in a nice augroup.

I did alter some build and layout to get things running and also to allow a subproject to point at neovim upstream. That meant juggling the packages to point at a stock subproject for neovim.

I'm neither a swift nor react expert- so there's conceivably better or cleaner ways to do a few things.

Lmk if you have any questions on why I did what.

I suspect the string encodings for the messages are non ideal. But that's what you get with the stick messgepack interface. I probably should have converted them to strong enums for cleanliness (which I did for cursor shapes etc).

Happy to help get things sorted / fix stuff up.

georgeharker commented 8 months ago

Upstream neovim changes are in. So from now with the above any Nvim can be pointed at - hopefully avoiding the continual update neovim work.

qvacua commented 8 months ago

@georgeharker and I will continue to work on https://github.com/qvacua/vimr/tree/stock-nvim . Once that branch is merged to master (hopefully soon), I'll release a snapshot version.