Tobias C. Rittweiler | 6 Apr 2007 11:26
Picon

Re: RFC for completion behaviour


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.


Gmane