[slime-devel] [patch] color slime-repl mode line

Tobias C. Rittweiler tcr at freebits.de
Tue Sep 15 09:35:02 UTC 2009


Stas Boukarev <stassats at gmail.com> writes:

> Stanislaw Halik <sthalik at test123.ltd.pl> writes:
>
>> When the REPL is started without lisp-mode windows, the arglist isn't
>> fontified until something is „M-x slime-mode”'d because of this:
>>
>> [slime-autodoc.el]
>> (defun slime-fontify-string (string)
>>   "Fontify STRING as `font-lock-mode' does in Lisp mode."
>>   (with-current-buffer (get-buffer-create " *slime-fontify*")
>>     (erase-buffer)
>>     (unless (eq major-mode 'lisp-mode)
>>       (lisp-mode)
>>       (slime-autodoc-mode -1)
>>       ...)
>>     ...))
>>
>> …and „slime-autodoc-mode” sets „slime-echo-arglist-function” when arg
>> satisfies „minusp”.

Thanks for discovering this, Stanislaw. I think this is the root of
another problem that sometimes pressing SPACE involves
`slime-show-arglist' and not autodoc due to a race condition.

> >
> > So i made an ugly patch to fix it. Here it goes:
>
> I see no reason why slime-autodoc-mode should be turned off in this
> buffer, so I just removed (slime-autodoc-mode -1) line and committed it.

It's the other way around, there's not reason why it should be turned
on; especially because it's used within the autodoc code itself, so
there may have been recursive problems I forgot. Another thing is that
because autodoc is performed periodically involving an RPC request, you
don't want it to happen if you're just vising a .lisp file without
having started slime.


> Another way would be to make slime-echo-arglist-function buffer-local in
> slime-autodoc-mode, but I'm not sure that this is desirable.

The real fix, I think, is to conditionalize on `slime-use-autodoc-mode'
in `slime-compute-autodoc', and binding the variable to nil inside of
`slime-fontify-string'. 

  -T.





More information about the slime-devel mailing list