[slime-devel] Re: no package name on a mode line after 2004-07-19?
Luke Gorrie
luke at bluetail.com
Mon Jul 26 11:37:52 UTC 2004
Chisheng Huang <cph at chi-square-works.com> writes:
> Slime retrieved from CVS on or before 2004-07-19 would print a package
> name on the mode line of a buffer editing a Lisp file. After 2004-07-19,
> Slime stops printing a package name on a mode line. Is this change
> intentional? It's not documented in the change log. Printing a package
> name on a mode line is quite useful.
It's a side-effect of an intentional change.
Historically when we make an RPC to Lisp we optionally update the
package name in the mode-line. I didn't like this for two reasons.
First it makes the RPC calls a bit more complicated and verbose. If we
wanted to update the package we would say:
(slime-eval-async form (slime-buffer-package) cont)
where (slime-buffer-package) does it as a side-effect.
If we didn't want to update the package we'd write:
(slime-eval-async form (slime-buffer-package t) cont)
Now there's no package variable to update, so we always write:
(slime-eval-async form cont)
which is a bit simpler and more concise.
The other reason is that the meaning of the package name in the
modeline was a bit fuzzy. Really it's just saying what package the
last SLIME command used. If you have a file like:
(in-package :cl)
(+ 1 2)
(in-package :cl-user)
(+ 2 3)
Then ideally the modeline should show the package that would be used
for a command at the current point. But since it gets updated lazily
it doesn't necessarily work that way.
Hmm.
Maybe we can put the feature back in a nicer way, e.g. by updating the
package name on an idle timer as with autodocs.
-Luke
More information about the slime-devel
mailing list