Hi,
Temporary buffers created by Slime will save the current connection in
`slime-buffer-connection'. If you disconnect, and then connect again to
the same Lisp process, the connection stored in the
`slime-buffer-connection' variable will still point to the previous
connection which was closed by the disconnection.
If we keep track of the connections we disconnected from, and look
during slime-connect if the connection attempt is actually a
reconnection (determinable by comparing host, and PID of the Lisp
process, I think), we could make the above scenario work.
How would you be going to implement this?
a) We could grovel all buffers, and just reset slime-buffer-connection
if appropriate.
b) Slime-connections are network processes. We could add a level of
indirection (putting the process in a struct, say), and make
connections reconnectable this way.
The first option is probably simpler, while the latter may be
cleaner. FSVO "cleaner", anyway.
What do you think?
-T.