If the given instance is not found, we fork nvr.
The parent process gets replaced by a new nvim instance.
The child waits for one second and then tries attaching to the newly started
nvim instance.
Advantage: All options passed to nvr are now correctly handled even by new nvim
instances that were started by nvr.
References https://github.com/mhinz/neovim-remote/issues/44
Small tradeoff: You get no error anymore when you provide no arguments to
--remote and friends.
Internally this results in an empty list instead of None. This is important,
because otherwise you'd get an error with `--remote -- foo`, because `--` and
`foo` would be parsed into the remaining arguments and --remote had no argument.
In return it's now possible to provide files beginning with a dash to any
--remote option. Leading -- before those files is not needed.
Equivalent:
--remote --file
--remote -- --file
Fixes https://github.com/mhinz/neovim-remote/issues/43
nvr is not a real wrapper anymore, for simplicty reasons and because most
people probably didn't alias nvr to nvim anway. If that were the case, you'd
always load the python provider first, even if you not end up using it, which
leads to a certain delay.
nvim startup time is crucial.