Subject: Re: bug#8492: 23.3; Time to use a different binding for completion?

From: Stefan Monnier <[email-masked]>
Date: Wed, 20 Apr 2011 10:18:20 -0300

> This is the problem: unusable defaults. I'm asking if we can have a
> usable default setting.

Currently, the "usable default" is ESC TAB.

It's a bit longwinded, so it'd be good to find a better solution.
Since this problem has been around for a long time and no good key has
popped up during this time, I believe that using TAB is the
way forward, which means we need to figure out ways to make it work in
the cases where it currently doesn't.

Currently the way it works is "try to reindent, and if there was no
change, try to complete".  As mentioned this doesn't work for Python and
Haskell, so for those modes maybe completion should take precedence as
in "see if we're somewhere where completion makes sense and if not try
to reindent", so TAB would complete if point is in an identifier
but not if it's a BOL.

Not sure if it would work well in practice, but it might be worth trying
it out.  There are other cases where TAB has trouble, e.g. in text modes
where TAB doesn't reindent but jumps to the next tab position.
I don't know how/if we can combine this TAB semantics with completion.

        Stefan