:python // executes python code, eg: :python print 1+1
:pyfile // executes a file, eg: :python pyfile test.py
:pydo // applies a python expression on a range, eg: 1,2pydo return int(line)+1
pyeval(...) // returns the value of ..., eg: :echo pyeval("1+1")
A ruby-host would have similar functionality, for example, as would a scheme-host, etc. You name it. My proposal in the tracker was to allow such host-plugins to define the equivalent ex commands and viml functions instead of hardcoding them in neovim itself (like it currently does for the python integration commands and functions). This is currently difficult because of some limitations in vim's structure.A go host, however, would possibly need to work differently. The idea for now is to have a process that checks for go files in a folder, and bundles them into a big executable that registers external functions in vim like a dynamic host would.
Nothing in the above means a plugin couldn't simply talk to neovim by itself, without using the host architecture. All a plugin needs is to talk to neovim thorough the msgpack-rpc api.
> I know that the plugin API is still in flux, but I really wish it was documented anyway. Actually, I'm not even sure how anyone was even able to start coding something like this without a design doc existing first.
Agreed. That's the goal of that discussion (I believe), to come up with a good design.