[slime-devel] RFC for completion behaviour

Tobias C. Rittweiler tcr at freebits.de
Thu Apr 5 12:37:22 UTC 2007


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.




More information about the slime-devel mailing list