[slime-devel] Re: RFC for completion behaviour

Tobias C. Rittweiler tcr at freebits.de
Fri Apr 6 09:26:06 UTC 2007


Thanks Madhu for commenting on this! I've been told on IRC that there
was some issues around this, and thus wanted asked here before doing
work unnecessarily.

I'm a bit disappointed that such things don't seem to get properly
documented in the ChangeLog in the fist place.


Madhu <enometh at meer.net> writes:

> This was debated to death and I provided a patch to support both
> behaviours. I'd rather you commmit a version of that

Summary for those who are too lazy to look at the thread themselves:

  Completion alternatives are provided within the *Completions* buffer,
  clicking on such a completion choice (or switching to the buffer and
  pressing RET) invokes `CHOOSE-COMPLETION' that inserts the chosen
  completion _up to point_.

  If point is set to the place of first mismatch
                          v
       asdf:*compile-file-|-behaviour*
                          ^
  clicking on such a choice will result in the wrong

       asdf:*compile-file-failure-behaviour*-behaviour*

  while typing `f TAB' (asdf:*compile-file-f[TAB]-behaviour*)
  would invoke the Slime specific completion function again which can
  handle this case gracefully and it would be correctly completed to

      asdf:*compile-file-failure-behaviour*


> The patch was sent in the message with the following headers:

Introducing yet another global variable which basically does nothing
else than determining between "Pissing-off Edi" or "Pissing-off Madhu"
is not the way to go. :) Let's stop doing that; Slime's kludgy enough
already.

I can perceive two solutions:

  
  a) We can fix `CHOOSE-COMPLETION' to DTRT by defining an appropriate
     function and hooking up `CHOOSE-COMPLETION-STRING-FUNCTIONS'.


  b) Let's drop that kind of behaviour alltogether. I initially thought
     the behaviour of inserting a common suffix as well as a common
     prefix was kind of cool, but then, if you think about it, it
     doesn't provide any real ergonomic advantage:

        asdf:*com TAB

     will be expanded to

        asdf:*compile-file--behaviour*

     offering as possible completions

        asdf:*compile-file-failure-behaviour*
        asdf:*compile-file-warnings-behaviour*

     So you must press `f' or `w' to decide on it _anyway_;
     it doesn't matter if the initial completion simply expanded to

        asdf:*compile-file-

     since a common suffix means that it _will_ be automatically
     completed anyway!


Comments?

   -T.




More information about the slime-devel mailing list