Aw: Re: Re: Extracting client/server functionality from MacVim
Am Dienstag, 24. Mai 2011 12:32:34 UTC+2 schrieb björn:
Uhm. So vim-remote has nothing to do with the remote* calls that are
built into Vim? That is extremely confusing.I'm sorry for my poor explanation. So another try on clarification: It is exactly about the remote* calls build into Vim. However the remote calls work only with Vim on both ends of the communication. So I can send expressions back and forth between two Vims with the remote_expr call for example. But I want one side to be a non-Vim application, so that I don't have to shell out to external programs. I think Matsumoto-san's answer is exactly on the spot.
What *currently* works:Vim = (shell out to client program) => Clojure server => (response read by client) = Vim
This has the problem that a) it is quite heavy (fork process), and hence may be slow (at least on Windows it's noticeable) and b) Vim is blocked until the client/server communication is done synchronuously.
What *currently could* work:
Vim = (shell out to client program) => Clojure server = shell out: vim --remote-expr => Vim
This would remove the blocking, but still requires shell-out. Now even on both sides (with different client programs, one custom and one vim).
What *does not work at the moment, but basically could* is:
Vim = remote_expr() => Clojure server = remote_expr() => Vim
This is currently not possible, but is the only way how to communicate without shell-out with other processes. (Note, that I don't want to use Perl or Python bindings)
Since I can't setup a socket in Vim for network communication, I'd like to hijack Vim's remote* client/server protocol. But this does currently only work with two vims.
Vim1 = remote_expr() => Vim2 = remote_expr() => Vim1
But Vim2 != Clojure server. :] And here the vim-remote library comes in: it allows to exchange Vim2 with eg. a clojure or python process. However it doesn't support MacVim, yet.
The relevant code is inside gui_macvim.m and MMBackend.m. Try taking a look at that and see if you can mimic it.
I think that is the best help I can provide. Good luck!That is ok. If everything I need is in gui_macvim.m and MMBackend.m, then that's already a good information. If I have a starting point, I can reverse engineer myself through the code. It is important, that I don't have to patch Vim for this to work.--
You received this message from the "vim_mac" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php