Hello, I'm a Neovim user and I would like to try porting Geiser to Neovim. From what I understand Geiser consists of two parts: the client (Emacs part) and the servers (the Scheme part, a separate server for each implementation), similar to how Slime works. Obviously the client will have to be rewritten, but I would like to reuse the servers.
My question is, how do the client and server communicate? How does the client start the server? Which messages do they exchange? I know how to read Scheme and Common Lisp, but I don't know Emacs Lisp. The implementations I am most familiar with are Guile and Racket. I want to be able to perform at least a simple handshake for starters, that should be enough to nudge me in the right direction. Just running the server from the command line and exchanging messages over stdio per hand would be all I need, I can figure out the Neovim side of things myself. Thanks in advance for your answer. I really hope that Geiser can be brought to more editors.