2011/5/22 Helmut Eller:
What kind of commands do you need? Contribs can add new functions with defslimefun and Emacs can call those without much pain. Slime also has "channels" (see contrib/slime-mrepl.el for an example) which, at least in theory, allow you to run custom protocols that don't match the RPC paradigm.
I'd like to add normal RPC commands that the Lisp implementation could tell the client to handle.
Right now, the only allowed commands are the ones in swank::dispatch-event: There's a huge destructure-case clause in it stating those commands that require no special handling, and it can't be extended.
I didn't understand channels. In the mrepl case, they seem to be temporary or bound to a session. It almost seems to be what I need, but I need some help.
For instance, I want to tell the editor to open a specified file and jump to the first match of a specified string, and right now I'm using the patch I sent just so I can swank::send-to-emacs/swank::send-oob-to-emacs to "support" commands other than the ones that swank::dispatch-event expects. How can I implement this request (or one like it, e.g. Lisp->Slime) using channels?
BTW, slime-mrepl doesn't seem to be working, at least with ACL.
Thanks,
Paulo Madeira