Hi Slime-hackers,
Two issues related to how completion should behave:
a) As of now, completing on "asdf::" or "asdf::foo" means that it's tried to find any (or the respective) symbols within #<PACKAGE "ASDF"> that is _accessible_.
However, this includes all those symbols that are inherited from other packages, including :CL, as most packages include it.
If you're looking for a symbol that you know is _internal_ to some package, you're forced to search through (possibly) quite a mess.
So what do you think, to change the completion code to only try to match against symbols _internal_ to #<PACKAGE "ASDF"> in the above case?
The downside is that if you've got a package :A that uses some internal packages :B and :C for internal code structure purpose, you won't be able to find the symbols in these internal packages.
So if people want the new bevahiour, I'd implement it in a way that is has to be explicitely enabled by setting some global value.
What's your opinion on this?
b) Slime's standard completion function `SLIME-COMPLETE-SYMBOL*' (i.e. the one that is used at the REPL, for instance) completes "asdf:*Com" to "asdf:*COMPILE-FILE--BEHAVIOUR*", where point is at the end of the completion.
(As opposed to `SLIME-SIMPLE-COMPLETE-SYMBOL', which would complete it to "asdf:*COMPILE-FILE-".)
Traditionally, the point has been set to the place between the two dashes ("asdf:*COMPILE-FILE-|-BEHAVIOUR*", where "|" is supposed to mean the cursor.) It doesn't anymore, rendering that kind of completion pretty much b0rked.
I'd like to restore the traditional behaviour. Comments?
-T.