GNU bug report logs - #16334
24.3.50; company-capf eats the first char in IELM filename completions

Previous Next

Package: emacs;

Reported by: Dmitry Gutov <dgutov <at> yandex.ru>

Date: Fri, 3 Jan 2014 23:21:02 UTC

Severity: normal

Found in version 24.3.50

Done: Dmitry Gutov <dgutov <at> yandex.ru>

Bug is archived. No further changes may be made.

Full log


Message #31 received at 16334 <at> debbugs.gnu.org (full text, mbox):

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Dmitry Gutov <dgutov <at> yandex.ru>
Cc: 16334 <at> debbugs.gnu.org
Subject: Re: bug#16334: 24.3.50;
 company-capf eats the first char in IELM filename completions
Date: Tue, 07 Jan 2014 22:33:20 -0500
>>>>> `completion-file-name-table' is more of an exception, I think.  But if
>>>>> it was only passed the segment of STRING after the last path
>>>>> separator, it could still look behind it in the buffer and see the
>>>>> full path.
>>>> But the completion may actually want to *change* the text before
>>>> the boundary.  E.g. completion of /u/s/d to /usr/share/doc.
> Maybe I didn't ask the right question. If the completion may want to change
> the text outside of its defined boundaries, doesn't that subvert the meaning
> of the "boundaries"?

There are 2 levels: the level of try-completion, all-completions, an
completion-boundaries.  At that level, the completion should not affect
the text outside of the boundaries.  This is the level at which
completion-tables operate.

Then there's the level of completion-try-completion and
completion-all-completions.  This uses the info from the previous level
to implement completion according to completion-styles.  It can change
things outside of the boundaries.  This is part of the UI, not of
the backends.

>>> In that case, "/usr/share/doc" is the completion candidate, not "doc",
>>> right?
>> Not sure what you mean by "completion candidate":
> Elements returned by the completion table?

Then "/u/s/d" returns no completion candidates.

> Already done:
> https://github.com/company-mode/company-mode/compare/b70540b5fcd062c4670dea7004453de326ff4f70...8ecec3594931ae8e2329fec4b793ad4ba392e4ef

It's not in elpa yet.

> On the other hand, the backend is free to try all completion styles it

The backends know nothing about completion styles.

> We currently deal with that by only using the backends that respond with the
> same prefix as the first one that returned non-nil. Guess we could add the
> boundaries to the comparison list, too...

Exactly.


        Stefan




This bug report was last modified 11 years and 138 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.