Hi!
Ah, good point. Budden, your current version completely sidesteps this mechanism. It should be easy to add it as a fallback though.
I looked to a code once again and did some testing. I used emacs code:
(defun show-guessed-readtable () (interactive) (message (slime-eval '(cl:string (editor-hints.named-readtables::readtable-name swank::*buffer-readtable*)))))
and now I'm almost sure that my code uses *readtable-alist* if it does not find (in-readtable) statement in a file. So fallback works already.
I also found a problem: I can't change readtable through (in-readtable) in a slime repl buffer. I guess *readtable* somehow gets bound around real evaluation, but I dont know how to avoid it. Currently I have no idea what to do. It looks like some special actions must be done for repl buffers as we must take *readtable*
So I created a pull request https://github.com/slime/slime/pull/259 (hope I did it right). But code needs fixing.