[slime-devel] RFC for completion behaviour
Tobias C. Rittweiler
tcr at freebits.de
Thu Apr 5 12:37:22 UTC 2007
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
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?
More information about the slime-devel